=head1 METHODS
-=head2 C<< new rules => [ $spec1 => $handler1, $spec2 => $handler2, ... ] >>
+=head2 C<new>
+
+ my $functor = LaTeX::TikZ::Functor->new(
+ rules => [ $spec1 => $handler1, $spec2 => $handler2, ... ],
+ );
Creates a new functor object that will use both the default and the user-specified rules.
The functor is also a code reference that expects to be called against L<LaTeX::TikZ::Set> objects.
my $clone = Tikz->functor;
my $dup = $set->$clone;
-If there is already a default rule for one of the C<$spec>s, it is replaced by the new one ; otherwise, the user rule is appended to the list of default rules.
+If there is already a default rule for one of the C<$spec>s, it is replaced by the new one ; otherwise, the user rule is inserted into the list of default rules after all its descendants' rules and before all its ancestors' rules.
# A translator
my $translate = Tikz->functor(
},
);
-=head2 C<< default_rule $spec => $handler >>
+=head2 C<default_rule>
+
+ LaTeX::TikZ::Functor->default_rule($spec => $handler)
Adds to all subsequently created functors a default rule for the class or role C<$spec>.
-An exception is thrown if there is already a default rule for C<$spec> ; otherwise, the new rule is appended to the current list of default rules.
+An exception is thrown if there is already a default rule for C<$spec> ; otherwise, the new rule is inserted into the current list of default rules after all its descendants' rules and before all its ancestors' rules.
But if C<$spec> begins with C<'+'>, the rule will replace I<all> default rules that apply to subclasses or subroles of C<$spec> (including C<$spec> itself).
Returns true if and only if an existent rule was replaced.
=head1 COPYRIGHT & LICENSE
-Copyright 2010 Vincent Pit, all rights reserved.
+Copyright 2010,2011,2012,2013,2014,2015 Vincent Pit, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.