]> git.vpit.fr Git - perl/modules/LaTeX-TikZ.git/commitdiff
Enforce the non-negativity of some attributes with anonymous types
authorVincent Pit <vince@profvince.com>
Thu, 22 Jul 2010 19:45:37 +0000 (21:45 +0200)
committerVincent Pit <vince@profvince.com>
Thu, 22 Jul 2010 19:45:37 +0000 (21:45 +0200)
lib/LaTeX/TikZ/Mod/Pattern/Dots.pm
lib/LaTeX/TikZ/Mod/Pattern/Lines.pm
lib/LaTeX/TikZ/Set/Circle.pm
t/12-geo.t

index b029915d02c60b3b506ebcd4c2780ee9a6b1892d..45714b1f3b0a5c71d1949594b0329067e85f8f48 100644 (file)
@@ -18,18 +18,19 @@ our $VERSION = '0.01';
 use Sub::Name ();
 
 use Any::Moose;
+use Any::Moose 'Util::TypeConstraints';
 
 extends 'LaTeX::TikZ::Mod::Pattern';
 
 has 'dot_width' => (
  is      => 'ro',
- isa     => 'Int',
+ isa     => subtype('Num' => where { LaTeX::TikZ::Tools::numcmp($_, 0) >= 0 }),
  default => 1,
 );
 
 has 'space_width' => (
  is      => 'ro',
- isa     => 'Int',
+ isa     => subtype('Num' => where { LaTeX::TikZ::Tools::numcmp($_, 0) >= 0 }),
  default => 1,
 );
 
index d38222c576f2b6e9980ff44deb26eb10ce47467c..a86844020ded2e165e087dea465d31adf8fe87f5 100644 (file)
@@ -36,13 +36,13 @@ has 'direction' => (
 
 has 'line_width' => (
  is      => 'ro',
- isa     => 'Int',
+ isa     => subtype('Num' => where { LaTeX::TikZ::Tools::numcmp($_, 0) >= 0 }),
  default => 1,
 );
 
 has 'space_width' => (
  is      => 'ro',
- isa     => 'Int',
+ isa     => subtype('Num' => where { LaTeX::TikZ::Tools::numcmp($_, 0) >= 0 }),
  default => 1,
 );
 
index 06a692aec4f8149a2ac3475b104083b406eb6889..8efdd9841155eb25a12275eac0522ab9a368bd49 100644 (file)
@@ -34,14 +34,9 @@ has 'center' => (
  coerce   => 1,
 );
 
-subtype 'LaTeX::TikZ::Set::Circle::Radius'
-     => as 'Num'
-     => where { LaTeX::TikZ::Tools::numcmp($_, 0) >= 1 }
-     => message { "$_ isn't a non-negative real number" };
-
 has 'radius' => (
  is       => 'ro',
- isa      => 'LaTeX::TikZ::Set::Circle::Radius',
+ isa      => subtype('Num' => where { LaTeX::TikZ::Tools::numcmp($_, 0) > 0 }),
  required => 1,
 );
 
index 7ce5d643a2414d94b3d43658c4c37614ea5c1c07..f36d00273163957417ea3bd1b3923e853d5560ba 100644 (file)
@@ -206,7 +206,7 @@ RES
 eval {
  Tikz->circle($o => -1);
 };
-like $@, qr/isn't a non-negative real number/,
+like $@, failed_valid('__ANON__'),
                               'creating a circle with a negative radius croaks';
 
 # Arc