docs about type constraint error messages
Jesse Luehrs [Thu, 5 May 2011 15:12:04 +0000 (10:12 -0500)]
lib/Moose/Manual/Types.pod
lib/Moose/Util/TypeConstraints.pm

index b4fda78..c314168 100644 (file)
@@ -166,7 +166,9 @@ A subtype can also define its own constraint failure message. This
 lets you do things like have an error "The value you provided (20),
 was not a valid rating, which must be a number from 1-10." This is
 much friendlier than the default error, which just says that the value
-failed a validation check for the type.
+failed a validation check for the type. The default error can, however,
+be made more friendly by installing L<Devel::PartialDump> (version 0.14 or
+higher), which Moose will use if possible to display the invalid value.
 
 Here's a simple (and useful) subtype example:
 
index 4600592..74d73ff 100644 (file)
@@ -1042,6 +1042,22 @@ related C<eq_deeply> function.
 For a complete example see the
 F<t/200_examples/005_example_w_TestDeep.t> test file.
 
+=head2 Error messages
+
+Type constraints can also specify custom error messages, for when they fail to
+validate. This is provided as just another coderef, which receives the invalid
+value in C<$_>, as in:
+
+  subtype 'PositiveInt',
+       as 'Int',
+       where { $_ > 0 },
+       message { "$_ is not a positive integer!" };
+
+If no message is specified, a default message will be used, which indicates
+which type constraint was being used and what value failed. If
+L<Devel::PartialDump> (version 0.14 or higher) is installed, it will be used to
+display the invalid value, otherwise it will just be printed as is.
+
 =head1 FUNCTIONS
 
 =head2 Type Constraint Constructors