]> git.vpit.fr Git - perl/modules/LaTeX-TikZ.git/blobdiff - lib/LaTeX/TikZ/Set/Sequence.pm
This is 0.03
[perl/modules/LaTeX-TikZ.git] / lib / LaTeX / TikZ / Set / Sequence.pm
index ca7143f8e3f1bce3a26cf5664409a7489660d080..0537bd14b539872bf0f7319e36b2c4443d1e5d7a 100644 (file)
@@ -9,11 +9,11 @@ LaTeX::TikZ::Set::Sequence - A set object grouping a sequence of objects.
 
 =head1 VERSION
 
-Version 0.01
+Version 0.03
 
 =cut
 
-our $VERSION = '0.01';
+our $VERSION = '0.03';
 
 use List::Util ();
 
@@ -22,25 +22,24 @@ use LaTeX::TikZ::Scope;
 use LaTeX::TikZ::Interface;
 use LaTeX::TikZ::Functor;
 
-use Any::Moose;
-use Any::Moose 'Util::TypeConstraints'
-               => [ qw/subtype as where find_type_constraint/ ];
+use Mouse;
+use Mouse::Util::TypeConstraints qw<subtype as where find_type_constraint>;
 
 =head1 RELATIONSHIPS
 
-This class consumes the L<LaTeX::TikZ::Set> and L<LaTeX::TikZ::Set::Mutable> roles, and as such implements the L</draw> and L</add> methods.
+This class consumes the L<LaTeX::TikZ::Set> and L<LaTeX::TikZ::Set::Container> roles, and as such implements the L</draw>, L</kids> and L</add> methods.
 
 =cut
 
-with qw(
+with qw<
  LaTeX::TikZ::Set
- LaTeX::TikZ::Set::Mutable
-);
+ LaTeX::TikZ::Set::Container
+>;
 
 subtype 'LaTeX::TikZ::Set::Sequence::Elements'
      => as 'Object'
      => where {
-             $_->does('LaTeX::TikZ::Set::Op')
+             $_->does('LaTeX::TikZ::Set::Path')
           or $_->isa('LaTeX::TikZ::Set::Sequence')
      };
 
@@ -48,7 +47,7 @@ subtype 'LaTeX::TikZ::Set::Sequence::Elements'
 
 =head2 C<kids>
 
-The L<LaTeX::TikZ::Set::Op> or L<LaTeX::TikZ::Set::Sequence> objects that from the sequence.
+The L<LaTeX::TikZ::Set::Path> or L<LaTeX::TikZ::Set::Sequence> objects that from the sequence.
 
 =cut
 
@@ -86,9 +85,12 @@ sub add {
 sub draw {
  my $set = shift;
 
+ my @kids = $set->kids;
+ return [ ] unless @kids;
+
  List::Util::reduce { LaTeX::TikZ::Scope::fold($a, $b) }
   map $_->draw(@_),
-   $set->kids;
+   @kids;
 }
 
 LaTeX::TikZ::Interface->register(
@@ -108,6 +110,10 @@ LaTeX::TikZ::Functor->default_rule(
 
 __PACKAGE__->meta->make_immutable;
 
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>, L<LaTeX::TikZ::Set::Path>, L<LaTeX::TikZ::Set::Container>.
+
 =head1 AUTHOR
 
 Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
@@ -127,7 +133,7 @@ You can find documentation for this module with the perldoc command.
 
 =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.