]> git.vpit.fr Git - perl/modules/LaTeX-TikZ.git/blobdiff - lib/LaTeX/TikZ/Mod/Pattern.pm
Fix cover for Mod::Pattern and Mod::Raw
[perl/modules/LaTeX-TikZ.git] / lib / LaTeX / TikZ / Mod / Pattern.pm
index 426098224b321a1670d5adb08a7f18e2e3fbc725..c3ed9c11c8a06fc014a34ffcefce726bd872c29b 100644 (file)
@@ -15,10 +15,24 @@ Version 0.01
 
 our $VERSION = '0.01';
 
+use LaTeX::TikZ::Interface;
+
 use Any::Moose;
 
+=head1 RELATIONSHIPS
+
+This class consumes the L<LaTeX::TikZ::Mod> role, and as such implements the L</tag>, L</cover>, L</declare> and L</apply> methods.
+
+=cut
+
 with 'LaTeX::TikZ::Mod';
 
+=head1 ATTRIBUTES
+
+=head2 C<template>
+
+=cut
+
 has 'template' => (
  is       => 'ro',
  isa      => 'ArrayRef[Str]',
@@ -32,6 +46,12 @@ has '_cache' => (
  default  => sub { +{ } },
 );
 
+=head1 METHODS
+
+=head2 C<name>
+
+=cut
+
 sub name {
  my ($pat, $tikz) = @_;
 
@@ -48,9 +68,21 @@ my %handlers = (
  width => sub { sprintf '%0.1fpt', $_[1]->thickness($_[2]) },
 );
 
+=head2 C<tag>
+
+=cut
+
 sub tag { ref $_[0] }
 
-sub cover { 1 }
+=head2 C<cover>
+
+=cut
+
+sub cover { 0 }
+
+=head2 C<declare>
+
+=cut
 
 sub declare {
  my ($pat, $tikz) = @_;
@@ -73,25 +105,35 @@ sub declare {
  return @$template;
 }
 
-sub apply { 'fill', 'pattern=' . $_[0]->name($_[1]) }
+=head2 C<apply>
 
-use LaTeX::TikZ::Interface pattern => sub {
- my $class = shift;
+=cut
 
- my %args = @_;
- if (exists $args{class}) {
-  $class = delete $args{class};
-  $class = __PACKAGE__ . '::' . $class unless $class =~ /::/;
-  (my $pm = $class) =~ s{::}{/}g;
-  $pm .= '.pm';
-  require $pm;
- }
+sub apply { 'fill', 'pattern=' . $_[0]->name($_[1]) }
 
- $class->new(%args);
-};
+LaTeX::TikZ::Interface->register(
+ pattern => sub {
+  my $class = shift;
+
+  my %args = @_;
+  if (exists $args{class}) {
+   $class = delete $args{class};
+   $class = __PACKAGE__ . '::' . $class unless $class =~ /::/;
+   (my $pm = $class) =~ s{::}{/}g;
+   $pm .= '.pm';
+   require $pm;
+  }
+
+  $class->new(%args);
+ },
+);
 
 __PACKAGE__->meta->make_immutable;
 
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>, L<LaTeX::TikZ::Mod>.
+
 =head1 AUTHOR
 
 Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.