]> git.vpit.fr Git - perl/modules/LaTeX-TikZ.git/blobdiff - lib/LaTeX/TikZ/Set/Path.pm
This is 0.02
[perl/modules/LaTeX-TikZ.git] / lib / LaTeX / TikZ / Set / Path.pm
index 11ea1064e11b2b118c8a4f0caf989fc1db7a03b9..8cd762c34ef55df37281ddcacb3d8a75e5bc1d0a 100644 (file)
@@ -9,59 +9,82 @@ LaTeX::TikZ::Set::Path - A set object representing a path.
 
 =head1 VERSION
 
-Version 0.01
+Version 0.02
 
 =cut
 
-our $VERSION = '0.01';
+our $VERSION = '0.02';
 
+use LaTeX::TikZ::Interface;
 use LaTeX::TikZ::Functor;
 
+use LaTeX::TikZ::Tools;
+
 use Any::Moose;
-use Any::Moose 'Util::TypeConstraints'
-               => [ qw/subtype as where find_type_constraint/ ];
+
+=head1 RELATIONSHIPS
+
+This class consumes the L<LaTeX::TikZ::Set::Op> and L<LaTeX::TikZ::Set::Mutable> roles, and as such implements the L</path> and L</add> methods.
+
+=cut
 
 with qw(
  LaTeX::TikZ::Set::Op
  LaTeX::TikZ::Set::Mutable
 );
 
-subtype 'LaTeX::TikZ::Set::Path::Elements'
-     => as 'Object'
-     => where { $_->does('LaTeX::TikZ::Set::Op') };
+=head1 ATTRIBUTES
+
+=head2 C<ops>
+
+The L<LaTeX::TikZ::Set::Op> objects that from the path.
+
+=cut
 
 has '_ops' => (
  is       => 'ro',
- isa      => 'Maybe[ArrayRef[LaTeX::TikZ::Set::Path::Elements]]',
+ isa      => 'Maybe[ArrayRef[LaTeX::TikZ::Set::Op]]',
  init_arg => 'ops',
  default  => sub { [ ] },
 );
 
 sub ops { @{$_[0]->_ops} }
 
-my $ltspe_tc = find_type_constraint('LaTeX::TikZ::Set::Path::Elements');
+=head1 METHODS
+
+=head2 C<add>
+
+=cut
+
+my $ltso_tc = LaTeX::TikZ::Tools::type_constraint('LaTeX::TikZ::Set::Op');
 
 sub add {
  my $set = shift;
 
- $ltspe_tc->assert_valid($_) for @_;
+ $ltso_tc->assert_valid($_) for @_;
 
  push @{$set->_ops}, @_;
 
  $set;
 }
 
+=head2 C<path>
+
+=cut
+
 sub path {
  my $set = shift;
 
  join ' ', map $_->path(@_), $set->ops;
 }
 
-use LaTeX::TikZ::Interface path => sub {
- shift;
+LaTeX::TikZ::Interface->register(
+ path => sub {
+  shift;
 
- __PACKAGE__->new(ops => \@_);
-};
+  __PACKAGE__->new(ops => \@_);
+ },
+);
 
 LaTeX::TikZ::Functor->default_rule(
  (__PACKAGE__) => sub {
@@ -72,6 +95,10 @@ LaTeX::TikZ::Functor->default_rule(
 
 __PACKAGE__->meta->make_immutable;
 
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>, L<LaTeX::TikZ::Set::Op>, L<LaTeX::TikZ::Set::Mutable>.
+
 =head1 AUTHOR
 
 Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.