Files
perl-HTML-Template-Compiled/perl-HTML-Template-Compiled.spec

128 lines
4.7 KiB
RPMSpec
Raw Normal View History

#
# spec file for package perl-HTML-Template-Compiled
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: perl-HTML-Template-Compiled
Version: 1.003
Release: 0
%define cpan_name HTML-Template-Compiled
Summary: Template System Compiles HTML::Template files to Perl code
License: Artistic-1.0 or GPL-1.0+
Group: Development/Libraries/Perl
Url: http://search.cpan.org/dist/HTML-Template-Compiled/
Source0: http://www.cpan.org/authors/id/T/TI/TINITA/%{cpan_name}-%{version}.tar.gz
Source1: cpanspec.yml
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
BuildRequires: perl(HTML::Entities)
BuildRequires: perl(Parse::RecDescent)
BuildRequires: perl(URI::Escape)
Requires: perl(HTML::Entities)
Requires: perl(Parse::RecDescent)
Requires: perl(URI::Escape)
%{perl_requires}
%description
HTML::Template::Compiled is a template system which can be used for
HTML::Template templates with almost the same API. It offers more flexible
template delimiters, additional tags and features, and by compiling the
template into perl code it can run significantly faster in persistent
environments such as FastCGI or mod_perl.
The goal is to offer more features for flexibility but keep the basic
syntax as easy as it is.
Features at a glance:
* Dot notation for objects, hashes and arrays
* Use expressions without any disadvantages like those in
HTML::Template::Expr
* Write escaping plugins and plugins for new tags
* Alternate delimiters, e.g. '[%if %]' and '<%if %>'
* Avoid 'global_vars' option by using the 'SET_VAR' tag to create aliases.
* Tags ELSIF, EACH, WHILE, COMMENT, WRAPPER, SWITCH/CASE, INCLUDE_VAR
* Chomp newlines/whitespace
For a quick reference, see HTML::Template::Compiled::Reference.
As the basic features work like in HTML::Template, please get familiar with
its documentation before.
HTML::Template::Compiled (HTC) does not implement all features of
HTML::Template (see "COMPATIBILITY"), and it has got some additional
features which are explained below: "ADDITIONAL FEATURES"
See "BENCHMARKS" for some examples on the performance. Since it depends
highly on the options used and on the template size there can be no general
statement on its performance.
You might want to use HTML::Template::Compiled::Lazy for CGI environments
as it doesn't parse the template before calling output. But note that
HTC::Lazy isn't much tested, and I don't use it myself, so there's a lack
of experience. If you use it and have problems, please report.
HTC will use a lot of memory because it keeps all template objects in
memory. If you are on mod_perl, and have a lot of templates, you should
preload them at server startup to be sure that it is in shared memory. At
the moment HTC is not fully tested for keeping all data in shared memory
(e.g. when a copy-on-write occurs), but it seems like it's behaving well.
For preloading you can use HTML::Template::Compiled->preload($cache_dir).
Generating code, writing it on disk and later eval() it can open security
holes, for example if you have more users on the same machine that can
access the same files (usually an http server running as 'www' or
'nobody'). See "SECURITY" for details what you can do to safe yourself.
NOTE: If you don't need any of the additional features listed below and if
you don't need the speed (in many cases it's probably not worth trading
speed for memory), then you might be better off with just using
HTML::Template.
NOTE2: If you have any questions, bug reports, send them to me and not to
Sam Tregar. This module is developed by me at the moment, independently
from HTML::Template, although I try to get most of the tests from it
passing for HTC. See "RESOURCES" for current information.
%prep
%setup -q -n %{cpan_name}-%{version}
%build
%{__perl} Makefile.PL INSTALLDIRS=vendor
%{__make} %{?_smp_mflags}
%check
%{__make} test
%install
%perl_make_install
%perl_process_packlist
%perl_gen_filelist
%files -f %{name}.files
%defattr(-,root,root,755)
%doc Changes examples LICENSE README
%changelog