| MooseX-Types-UUID documentation | Contained in the MooseX-Types-UUID distribution. |
MooseX::Types::UUID - UUID type for Moose classes
package Class; use Moose; use MooseX::Types::UUID qw(UUID); has 'uuid' => ( is => 'ro', isa => UUID ); package main; Class->new( uuid => '77C71F92-0EC7-11DD-B986-DF138EE79F6F' );
This module lets you constrain attributes to only contain UUIDs (in their usual human-readable form). No coercion is attempted.
None by default, you'll usually want to request UUID explicitly.
Jonathan Rockway <jrockway@cpan.org>
Infinity Interactive (http://www.iinteractive.com/)
This program is Free software, you may redistribute it under the same terms as Perl itself.
| MooseX-Types-UUID documentation | Contained in the MooseX-Types-UUID distribution. |
package MooseX::Types::UUID; use strict; use warnings; our $VERSION = '0.02'; our $AUTHORITY = 'CPAN:JROCKWAY'; use MooseX::Types -declare => ['UUID']; use MooseX::Types::Moose qw(Str); sub _validate_uuid { my ($str) = @_; return $str =~ /^[A-F0-9]{8}-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{12}$/; } subtype UUID, as Str, where { _validate_uuid($_) }; coerce UUID, # i've never seen lowercase UUIDs, but someone's bound to try it from Str, via { uc }; 1; __END__