Mason
view release on metacpan or search on metacpan
lib/Mason/Compilation.pm view on Meta::CPAN
__END__
=pod
=head1 NAME
Mason::Compilation - Performs compilation of a single component
=head1 DESCRIPTION
A new C<Mason::Compilation> object is created by L<Mason::Interp> to compile
each component.
This class has no public API at this time.
=head1 MODIFIABLE METHODS
These methods are not intended to be called externally, but may be useful to
modify with method modifiers in L<plugins|Mason::Manual::Plugins> and
L<subclasses|Mason::Manual::Subclasses>. Their APIs will be kept as stable as
possible.
=over
=item bad_attribute_names ()
A list of attribute names that should not be used because they are reserved for
built-in attributes or methods: C<args>, C<m>, C<cmeta>, C<render>, C<main>,
etc.
=item bad_method_names ()
A list of method names that should not be used because they are reserved for
built-in attributes: C<args>, C<m>, C<cmeta>, etc. Not as extensive as
bad_attribute_names above because methods like C<render> and C<main> can be
overridden but make no sense as attributes.
=item compile ()
The top-level method called to compile the component. Returns the generated
component class.
=item named_block_types ()
An arrayref of valid named block types: C<after>, C<filter>, C<method>, etc.
Add to this list if you want to create your own named blocks (i.e. blocks that
take a name argument).
=item output_class_footer ()
Perl code to be added at the bottom of the class. Empty by default.
=item output_class_header ()
Perl code to be added at the top of the class, just after initialization of
Moose, C<$m> and other required pieces. By default it consults the
L<class_header parameter|Mason::Interp/class_header>.
# Add to the top of every component class:
# use Modern::Perl;
# use JSON::XS qw(encode_json decode_json);
#
override 'output_class_header' => sub {
return join( "\n",
super(),
'use Modern::Perl;',
'use JSON::XS qw(encode_json decode_json);' );
};
=item process_perl_code ($coderef)
This method is called on each distinct piece of Perl code in the component.
I<$coderef> is a reference to a string containing the code; the method can
modify the code as desired. See L<Mason::Plugin::DollarDot> for a sample usage.
=item unnamed_block_types ()
An arrayref of valid unnamed block types: C<args>, C<class>, C<init>, etc. Add
to this list if you want to create your own unnamed blocks.
=item valid_flags ()
An arrayref of valid flags: contains only C<extends> at time of writing. Add to
this list if you want to create your own flags.
=back
=head1 SEE ALSO
L<Mason|Mason>
=head1 AUTHOR
Jonathan Swartz <swartz@pobox.com>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Jonathan Swartz.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut
( run in 2.565 seconds using v1.01-cache-2.11-cpan-0bb4e1dffa6 )