X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2FLaTeX-TikZ.git;a=blobdiff_plain;f=lib%2FLaTeX%2FTikZ%2FFunctor.pm;h=344816438038170d7a7f5668f9929fc14b67ade9;hp=e302d3fbf591e31f9417555aa463f7367c5162ab;hb=e6c6fbca8df4f8df7bbce2eb98dd260ed51d9141;hpb=92147217516a40b35ca00c8e08939e8aa5478426 diff --git a/lib/LaTeX/TikZ/Functor.pm b/lib/LaTeX/TikZ/Functor.pm index e302d3f..3448164 100644 --- a/lib/LaTeX/TikZ/Functor.pm +++ b/lib/LaTeX/TikZ/Functor.pm @@ -15,10 +15,18 @@ Version 0.01 our $VERSION = '0.01'; +=head1 DESCRIPTION + +A functor takes a L tree and clones it according to certain rules. + +=cut + use Carp (); use Sub::Name (); +use LaTeX::TikZ::Interface; + use LaTeX::TikZ::Tools; use Any::Moose 'Util' => [ 'does_role' ]; @@ -74,6 +82,12 @@ BEGIN { }); } +=head1 METHODS + +=head2 C + +=cut + sub default_rule { shift; @@ -82,6 +96,10 @@ sub default_rule { $insert_rule->($rule, $rule->[2] ? \@default_set_rules : \@default_mod_rules); } +=head2 C<< new rules => [ $class_name => sub { ... }, ... ] >> + +=cut + sub new { my ($class, %args) = @_; @@ -134,11 +152,13 @@ MOD: }, $class; } -use LaTeX::TikZ::Interface functor => sub { - shift; +LaTeX::TikZ::Interface->register( + functor => sub { + shift; - __PACKAGE__->new(rules => \@_); -}; + __PACKAGE__->new(rules => \@_); + }, +); =head1 AUTHOR