X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMooseX%2FTypes%2FCommon%2FString.pm;fp=lib%2FMooseX%2FTypes%2FCommon%2FString.pm;h=add28aacb28bae86d443e6784d43a382d276e018;hb=d2461fdae3ea97b18a2b85487bb46cfc1934aa87;hp=7e6a8314fed6e2e342614338a0102989b6fc8f65;hpb=cb7c09660f41e68c95073b8cb3e9444a6445a573;p=gitmo%2FMooseX-Types-Common.git diff --git a/lib/MooseX/Types/Common/String.pm b/lib/MooseX/Types/Common/String.pm index 7e6a831..add28aa 100644 --- a/lib/MooseX/Types/Common/String.pm +++ b/lib/MooseX/Types/Common/String.pm @@ -14,28 +14,63 @@ use MooseX::Types::Moose qw/Str/; subtype SimpleStr, as Str, where { (length($_) <= 255) && ($_ !~ m/\n/) }, - message { "Must be a single line of no more than 255 chars" }; + message { "Must be a single line of no more than 255 chars" }, + ( $Moose::VERSION >= 2.0200 + ? inline_as { + $_[0]->parent()->_inline_check( $_[1] ) . ' && ' + . qq{ ( (length($_[1]) <= 255) && ($_[1] !~ m/\n/) ) }; + } + : () + ); subtype NonEmptySimpleStr, as SimpleStr, where { length($_) > 0 }, - message { "Must be a non-empty single line of no more than 255 chars" }; + message { "Must be a non-empty single line of no more than 255 chars" }, + ( $Moose::VERSION >= 2.0200 + ? inline_as { + $_[0]->parent()->_inline_check( $_[1] ) . ' && ' + . qq{ (length($_[1]) > 0) }; + } + : () + ); # XXX duplicating constraint msges since moose only uses last message subtype Password, as NonEmptySimpleStr, where { length($_) > 3 }, - message { "Must be between 4 and 255 chars" }; + message { "Must be between 4 and 255 chars" }, + ( $Moose::VERSION >= 2.0200 + ? inline_as { + $_[0]->parent()->_inline_check( $_[1] ) . ' && ' + . qq{ (length($_[1]) > 3) }; + } + : () + ); subtype StrongPassword, as Password, where { (length($_) > 7) && (m/[^a-zA-Z]/) }, - message {"Must be between 8 and 255 chars, and contain a non-alpha char" }; + message {"Must be between 8 and 255 chars, and contain a non-alpha char" }, + ( $Moose::VERSION >= 2.0200 + ? inline_as { + $_[0]->parent()->_inline_check( $_[1] ) . ' && ' + . qq{ ( (length($_[1]) > 7) && ($_[1] =~ m/[^a-zA-Z]/) ) }; + } + : () + ); subtype NonEmptyStr, as Str, where { length($_) > 0 }, - message { "Must not be empty" }; + message { "Must not be empty" }, + ( $Moose::VERSION >= 2.0200 + ? inline_as { + $_[0]->parent()->_inline_check( $_[1] ) . ' && ' + . qq{ (length($_[1]) > 0) }; + } + : () + ); 1;