#
# spec file for package perl-HTML-Template-Compiled
#
# Copyright (c) 2015 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.001
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/
Source: http://www.cpan.org/authors/id/T/TI/TINITA/%{cpan_name}-%{version}.tar.gz
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
BuildRequires: perl(Module::Build) >= 0.28
BuildRequires: perl(URI::Escape)
Requires: perl(URI::Escape)
Recommends: perl(Parse::RecDescent)
%{perl_requires}
%description
HTML::Template::Compiled is a template system which can be used for the
HTML::Template manpage 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 the
HTML::Template::Expr manpage
* 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 the HTML::Template::Compiled::Reference manpage.
As the basic features work like in the HTML::Template manpage, please get
familiar with its documentation before.
HTML::Template::Compiled (HTC) does not implement all features of the
HTML::Template manpage (see the "COMPATIBILITY" manpage), and it has got
some additional features which are explained below: the "ADDITIONAL
FEATURES" manpage
See the "BENCHMARKS" manpage 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 the HTML::Template::Compiled::Lazy manpage 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 the "SECURITY" manpage 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 the "RESOURCES" manpage for current information.
%prep
%setup -q -n %{cpan_name}-%{version}
%build
%{__perl} Build.PL installdirs=vendor
./Build build flags=%{?_smp_mflags}
%check
./Build test
%install
./Build install destdir=%{buildroot} create_packlist=0
%perl_gen_filelist
%files -f %{name}.files
%defattr(-,root,root,755)
%doc Changes examples README
%changelog