NAME
Inline::Mason::OO - Inline OO Mason
SYNOPSIS
MY::Mason file:
package
MY::Mason;
# or
# use Inline::Mason::OO qw(no_autoload);
# to escape from loading __CARDINALS__
our
@ISA
=
qw(Inline::Mason::OO)
;
1;
__END__
__CARDINALS__
% my @cardinals = qw(eins zwei drei);
<% join q/ /, @cardinals %>
My perl script:
use
MY::Mason
my
$m
= new MY::Mason (
't/external_mason'
);
$m
->HELLO();
$m
->NIFTY(
lang
=>
'Perl'
);
$m
->CARDINALS();
__END__
__HELLO__
% my $noun = 'World';
Hello <% $noun %>!
How are ya?
t/external_mason
__NIFTY__
<%
$ARGS
{lang} %> is nifty!
DESCRIPTION
This module extends the power of Inline::Mason to an OO level. You may use it to build a module specific for generating documents, like help documentation, etc.
ON IMPORTING
On importing the module, by default, the inline-mason will be loaded. However, you can still pass 'no_autoload' stating that you don't want the module to automatically load inline-mason scripts dwelling in the module file.
Besides, you can call 'to_load_files' in the parent module, and the files will be loaded every time when you instantiate a new object.
package
MY::Mason;
use
Inline::Mason::OO;
our
@ISA
=
qw(Inline::Mason::OO)
;
Inline::Mason::OO::to_load_files(
@files
);
1;
__END__
And, of course, you can do this superfluous and redundant action.
package
MY::Mason;
our
@ISA
=
qw(Inline::Mason::OO)
;
Inline::Mason::OO::to_load_files(__FILE__);
1;
__END__
METHODS
new
The constructor takes a list of file's names in which mason scripts reside and will load them to the instance. The file where the constructor is called is always loaded by default.
load_mason
Create mason scripts in place, and you can pass a list of pairs.
Load mason script in place:
my
$m
= new MY::Mason;
$m
->load_mason
(
BEATLES
=>
'Nothing\'s gonna change my <% $ARGS{what} %>'
,
# ... ... ...
);
$m
->BEATLES(
what
=>
'world'
);
load_file
Load an external file manually and explicitly.
my
$m
= new MY::Mason;
$m
->load_file(
'external_mason.txt'
);
SEE ALSO
COPYRIGHT AND LICENSE
Copyright (C) 2004 by Yung-chung Lin (a.k.a. xern) <xern@cpan.org>
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself