1 package Reaction::Types::Core;
4 -declare => [qw/SimpleStr NonEmptySimpleStr Password StrongPassword
5 NonEmptyStr PositiveNum PositiveInt SingleDigit URI/];
7 use MooseX::Types::Moose qw/Str Num Int Object/;
11 where { (length($_) <= 255) && ($_ !~ m/\n/) },
12 message { "Must be a single line of no more than 255 chars" };
14 subtype NonEmptySimpleStr,
16 where { length($_) > 0 },
17 message { "Must be a non-empty single line of no more than 255 chars" };
19 # XXX duplicating constraint msges since moose only uses last message
23 where { length($_) > 3 },
24 message { "Must be between 4 and 255 chars" };
26 subtype StrongPassword,
28 where { (length($_) > 7) && (m/[^a-zA-Z]/) },
30 "Must be between 8 and 255 chars, and contain a non-alpha char" };
34 where { length($_) > 0 },
35 message { "Must not be empty" };
40 message { "Must be a positive number" };
45 message { "Must be a positive integer" };
50 message { "Must be a single digit" };
52 #message will require moose 0.39
54 #class_type 'URI', message { 'Must be an URI object'};
55 coerce 'URI', from 'Str', via { URI->new($_) };
67 Reaction uses the L<Moose> attributes as a base and adds a few of it's own.
73 A Str with no new-line characters.
75 =item * NonEmptySimpleStr
77 Does what it says on the tin.
81 =item * StrongPassword
97 =item * L<Moose::Util::TypeConstraints>
99 =item * L<Reaction::Types::DBIC>
101 =item * L<Reaction::Types::DateTime>
103 =item * L<Reaction::Types::Email>
105 =item * L<Reaction::Types::File>
111 See L<Reaction::Class> for authors.
115 See L<Reaction::Class> for the license.