trying to get some tests in place that reflect the desired effect and got a start...
[gitmo/MooseX-Types.git] / t / lib / DecoratorLibrary.pm
1 package DecoratorLibrary;
2
3 use warnings;
4 use strict;
5
6 use MooseX::Types::Moose qw( Str ArrayRef HashRef Int );
7 use MooseX::Types
8     -declare => [qw(
9         MyArrayRefBase
10         MyArrayRefInt01
11         MyArrayRefInt02
12     )];
13
14 subtype MyArrayRefBase,
15     as ArrayRef;
16     
17 coerce MyArrayRefBase,
18     from Str,
19     via {[split(',', $_)]};
20     
21 subtype MyArrayRefInt01,
22     as ArrayRef[Int];
23
24 coerce MyArrayRefInt01,
25     from Str,
26     via {[split('\.',$_)]},
27     from HashRef,
28     via {[values(%$_)]};
29     
30 subtype MyArrayRefInt02,
31     as MyArrayRefBase[Int];
32
33 coerce MyArrayRefInt02,
34     from Str,
35     via {[split(':',$_)]};
36     from HashRef[Int],
37     via {[values(%$_)]},
38     from HashRef[Str],
39     via {[ map { length $_ } values(%_) ]};
40 1;