Files
perl-Template-Alloy/perl-Template-Alloy.spec
2025-08-12 18:17:30 +02:00

131 lines
5.2 KiB
RPMSpec

#
# spec file for package perl-Template-Alloy
#
# Copyright (c) 2024 SUSE LLC
#
# 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 https://bugs.opensuse.org/
#
%define cpan_name Template-Alloy
Name: perl-Template-Alloy
Version: 1.22.0
Release: 0
# 1.022 -> normalize -> 1.22.0
%define cpan_version 1.022
License: Artistic-1.0 OR GPL-1.0-or-later
Summary: TT2/3, HT, HTE, Tmpl, and Velocity Engine
URL: https://metacpan.org/release/%{cpan_name}
Source0: https://cpan.metacpan.org/authors/id/R/RH/RHANDOM/%{cpan_name}-%{cpan_version}.tar.gz
Source1: cpanspec.yml
Source100: README.md
BuildArch: noarch
BuildRequires: perl
BuildRequires: perl-macros
Provides: perl(Template::Alloy) = %{version}
Provides: perl(Template::Alloy::Compile)
Provides: perl(Template::Alloy::Context)
Provides: perl(Template::Alloy::EvalPerlHandle)
Provides: perl(Template::Alloy::Exception)
Provides: perl(Template::Alloy::HTE)
Provides: perl(Template::Alloy::Iterator)
Provides: perl(Template::Alloy::Operator)
Provides: perl(Template::Alloy::Parse)
Provides: perl(Template::Alloy::Perl)
Provides: perl(Template::Alloy::Play)
Provides: perl(Template::Alloy::Stream)
Provides: perl(Template::Alloy::TT)
Provides: perl(Template::Alloy::Tmpl)
Provides: perl(Template::Alloy::VMethod)
Provides: perl(Template::Alloy::Velocity)
Provides: perl(Template::Alloy::_ContextStash)
%undefine __perllib_provides
%{perl_requires}
%description
"An alloy is a homogeneous mixture of two or more elements"
(http://en.wikipedia.org/wiki/Alloy).
Template::Alloy represents the mixing of features and capabilities from all
of the major mini-language based template systems (support for
non-mini-language based systems will happen eventually). With
Template::Alloy you can use your favorite template interface and syntax and
get features from each of the other major template systems. And
Template::Alloy is fast - whether your using mod_perl, CGI, or running from
the commandline. There is even Template::Alloy::JS for getting a little
more speed when that is necessary.
Template::Alloy happened by accident (accidentally on purpose). The
Template::Alloy (Alloy hereafter) was originally a part of the CGI::Ex
suite that performed simple variable interpolation. It used TT2 style
variables in TT2 style tags "[% foo.bar %]". That was all the original
Template::Alloy did. This was fine and dandy for a couple of years. In
winter of 2005-2006 Alloy was revamped to add a few features. One thing led
to another and soon Alloy provided for most of the features of TT2 as well
as some from TT3. Template::Alloy now provides a full-featured
implementation of the Template::Toolkit language.
After a move to a new company that was using HTML::Template::Expr and
Text::Tmpl templates, support was investigated and interfaces for
HTML::Template, HTML::Template::Expr, Text::Tmpl, and Velocity (VTL) were
added. All of the various engines offer the same features - each using a
different syntax and interface.
More recently, the Template::Alloy::JS capabilities were introduced to
bring Javascript templates to the server side (along with an increase in
speed if ran in persistent environments).
Template::Toolkit brought the most to the table. HTML::Template brought the
LOOP directive. HTML::Template::Expr brought more vmethods and using
vmethods as top level functions. Text::Tmpl brought the COMMENT directive
and encouraged speed matching (Text::Tmpl is almost entirely C based and is
very fast). The Velocity engine brought AUTO_EVAL and
SHOW_UNDEFINED_INTERP.
Most of the standard Template::Toolkit documentation covering directives,
variables, configuration, plugins, filters, syntax, and vmethods should
apply to Alloy just fine (This pod tries to explain everything - but there
is too much). See Template::Alloy::TT for a listing of the differences
between Alloy and TT.
Most of the standard HTML::Template and HTML::Template::Expr documentation
covering methods, variables, expressions, and syntax will apply to Alloy
just fine as well.
Most of the standard Text::Tmpl documentation applies, as does the
documentation covering Velocity (VTL).
So should you use Template::Alloy ? Well, try it out. It may give you no
visible improvement. Or it could.
%prep
%autosetup -n %{cpan_name}-%{cpan_version}
find . -type f ! -path "*/t/*" ! -name "*.pl" ! -path "*/bin/*" ! -path "*/script/*" ! -path "*/scripts/*" ! -name "configure" -print0 | xargs -0 chmod 644
%build
perl Makefile.PL INSTALLDIRS=vendor
%make_build
%check
make test
%install
%perl_make_install
%perl_process_packlist
%perl_gen_filelist
%files -f %{name}.files
%doc Changes README samples
%changelog