[Moose-commits] r7637 - Moose/trunk/lib/Moose/Cookbook/Snack

autarch at code2.0beta.co.uk autarch at code2.0beta.co.uk
Thu Feb 12 17:12:41 GMT 2009


Author: autarch
Date: 2009-02-12 09:12:41 -0800 (Thu, 12 Feb 2009)
New Revision: 7637

Modified:
   Moose/trunk/lib/Moose/Cookbook/Snack/Types.pod
Log:
Revised types snack (and perltidied its code)


Modified: Moose/trunk/lib/Moose/Cookbook/Snack/Types.pod
===================================================================
--- Moose/trunk/lib/Moose/Cookbook/Snack/Types.pod	2009-02-12 17:10:08 UTC (rev 7636)
+++ Moose/trunk/lib/Moose/Cookbook/Snack/Types.pod	2009-02-12 17:12:41 UTC (rev 7637)
@@ -9,44 +9,46 @@
 
   package Point;
   use Moose;
-  	
-  has 'x' => (isa => 'Int', is => 'ro' );
-  has 'y' => (isa => 'Int', is => 'rw' );
-  
+
+  has 'x' => ( isa => 'Int', is => 'ro' );
+  has 'y' => ( isa => 'Int', is => 'rw' );
+
   package main;
 
-  my $point = eval {
-    Point->new(x => 'fifty', y => 'forty');
-  };
+  my $point = eval { Point->new( x => 'fifty', y => 'forty' ); };
 
-  if($@) {
-    print "Oops: $@";
+  if ($@) {
+      print "Oops: $@";
   }
 
   my $point;
-  my $xval = 'forty-two';
-  my $xattribute = Point->meta->find_attribute_by_name('x');
+  my $xval             = 'forty-two';
+  my $xattribute       = Point->meta->find_attribute_by_name('x');
   my $xtype_constraint = $xattribute->type_constraint;
-  if($xtype_constraint->check($xval)) {
-    $point = Point->new(x => $xval, y => 0);
-  } else {
-    print "Value: $xval is not an " . $xtype_constraint->name . "\n";
+
+  if ( $xtype_constraint->check($xval) ) {
+      $point = Point->new( x => $xval, y => 0 );
   }
+  else {
+      print "Value: $xval is not an " . $xtype_constraint->name . "\n";
+  }
 
-
 =head1 DESCRIPTION
 
-This is the Point example from (L<Moose::Cookbook::Basics::Recipe1>) with added
-type checking. 
+This is the Point example from L<Moose::Cookbook::Basics::Recipe1>
+with type checking added.
 
-If we try to assign a string value to an attribute that is defined as
-being of type Int, Moose will die with an explicit error message
-saying which attribute failed which type constraint with which
-value. The eval example catches this message and displays it.
+If we try to assign a string value to an attribute that is an C<Int>,
+Moose will die with an explicit error message. The error will include
+the attribute name, as well as the type constraint name and the value
+which failed the constraint check.
 
-The second example fetches the type constraint instance and asks it to
-check the value we are about to set, before we try and set it.
+We use C<eval> to catch this error message in C<$@>.
 
+Later, we get the L<Moose::Meta::TypeConstraint> object from a
+L<Moose::Meta::Attribute> and use the L<Moose::Meta::TypeConstraint>
+to check a value directly.
+
 =head1 SEE ALSO
 
 =over 4




More information about the Moose-commits mailing list