fixed conflicts after merging
[gitmo/MooseX-Types.git] / t / lib / DecoratorLibrary.pm
CommitLineData
f235df49 1package DecoratorLibrary;
2
3use MooseX::Types::Moose qw( Str ArrayRef HashRef Int );
4use MooseX::Types
5 -declare => [qw(
6 MyArrayRefBase
7 MyArrayRefInt01
8 MyArrayRefInt02
9 MyHashRefOfInts
10 MyHashRefOfStr
11 StrOrArrayRef
12 AtLeastOneInt
13 Jobs
14 SubOfMyArrayRefInt01
15 BiggerInt
16 )];
17
18subtype MyArrayRefBase,
19 as ArrayRef;
20
21coerce MyArrayRefBase,
22 from Str,
23 via {[split(',', $_)]};
24
25subtype MyArrayRefInt01,
26 as ArrayRef[Int];
27
28subtype BiggerInt,
29 as Int,
30 where {$_>10};
31
32subtype SubOfMyArrayRefInt01,
33 as MyArrayRefInt01[BiggerInt];
34
35coerce MyArrayRefInt01,
36 from Str,
37 via {[split('\.',$_)]},
38 from HashRef,
39 via {[sort values(%$_)]};
40
41subtype MyArrayRefInt02,
42 as MyArrayRefBase[Int];
43
44subtype MyHashRefOfInts,
45 as HashRef[Int];
46
47subtype MyHashRefOfStr,
48 as HashRef[Str];
49
50coerce MyArrayRefInt02,
51 from Str,
52 via {[split(':',$_)]},
53 from MyHashRefOfInts,
54 via {[sort values(%$_)]},
55 from MyHashRefOfStr,
56 via {[ sort map { length $_ } values(%$_) ]},
57 from HashRef[ArrayRef],
58 via {[ sort map { @$_ } values(%$_) ]};
59
60subtype StrOrArrayRef,
61 as Str|ArrayRef;
62
63subtype AtLeastOneInt,
64 as ArrayRef[Int],
65 where { @$_ > 0 };
66
67enum Jobs,
68 (qw/Programming Teaching Banking/);
69
701;