Provided by: libtemplate-declare-perl_0.46-1_all bug

NAME

       Template::Declare::TagSet - Base class for tag sets used by Template::Declare::Tags

SYNOPSIS

           package My::TagSet;
           use base 'Template::Declare::TagSet';

           # returns an array ref for the tag names
           sub get_tag_list {
               [ qw(
                   html body tr td table
                   base meta link hr
               )]
           }

           # prevents potential naming conflicts:
           sub get_alternate_spelling {
               my ($self, $tag) = @_;
               return 'row'  if $tag eq 'tr';
               return 'cell' if $tag eq 'td';
           }

           # Specifies whether "<tag></tag>" can be
           # combined to "<tag />":
           sub can_combine_empty_tags {
               my ($self, $tag) = @_;
               $tag =~ /^ (?: base | meta | link | hr ) $/x;
           }

DESCRIPTION

       Template::Declare::TagSet is the base class for declaring packages of Template::Delcare
       tags. If you need to create new tags for use in your templates, this is the base class for
       you! Review the source code of Template::Declare::TagSet::HTML for a useful example.

METHODS

   new( PARAMS )
           my $tag_set = Template::Declare::TagSet->new({
               package   => 'Foo::Bar',
               namespace => undef,
           });

       Constructor created by "Class::Accessor::Fast", accepting an optional hash reference of
       parameters.

   get_tag_list
           my $list = $tag_set->get_tag_list();

       Returns an array ref for the tag names offered by a tag set.

   get_alternate_spelling( TAG )
           $bool = $obj->get_alternate_spelling($tag);

       Returns true if a tag has an alternative spelling. Basically it provides a way to work
       around naming conflicts. For example, the "tr" tag in HTML conflicts with Perl's "tr"
       operator, and the "template" tag in XUL conflicts with the "template" sub exported by
       "Template::Declare::Tags".

   can_combine_empty_tags( TAG )
           $bool = $obj->can_combine_empty_tags($tag);

       Specifies whether "<tag></tag>" can be combined into a single token, "<tag />". By
       default, all tags can be combined into a single token; override in a subclass to change
       this value where appropriate. For example,
       "Template::Declare::TagSet::HTML->can_combine_empty_tags('img')" returns true since "<img
       src="..." />" is always required for HTML pages.
       "Template::Declare::TagSet::HTML->can_combine_empty_tags('script')", on the other hand,
       returns false, since some browsers can't handle a single script token.

ACCESSORS

       This class has two read-only accessors:

   package
           my $package = $obj->package();

       Retrieves the value of the "package" option set via the constructor.

   namespace
           my $namespace = $obj->namespace();

       Retrieves the value of the "namespace" option set via the constructor.

AUTHOR

       Agent Zhang <agentzh@yahoo.cn>.

SEE ALSO

       Template::Declare::TagSet::HTML, Template::Declare::TagSet::XUL, Template::Declare::Tags,
       Template::Declare.