1 package MooseX::Types::UUID;
6 our $AUTHORITY = 'CPAN:JROCKWAY';
8 use MooseX::Types -declare => ['UUID'];
9 use MooseX::Types::Moose qw(Str);
13 return $str =~ /^[A-F0-9]{8}-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{12}$/;
17 as Str, where { _validate_uuid($_) };
20 # i've never seen lowercase UUIDs, but someone's bound to try it
29 MooseX::Types::UUID - UUID type for Moose classes
35 use MooseX::Types::UUID qw(UUID);
37 has 'uuid' => ( is => 'ro', isa => UUID );
40 Class->new( uuid => '77C71F92-0EC7-11DD-B986-DF138EE79F6F' );
44 This module lets you constrain attributes to only contain UUIDs (in
45 their usual human-readable form). No coercion is attempted.
49 None by default, you'll usually want to request C<UUID> explicitly.
53 Jonathan Rockway C<< <jrockway@cpan.org> >>
55 Infinity Interactive (L<http://www.iinteractive.com/>)
59 This program is Free software, you may redistribute it under the same