Renamed Visitor to Validator::Visitor to conform with Data::DPath::Validator and...
[catagits/Catalyst-Controller-DBIC-API.git] / lib / Catalyst / Controller / DBIC / API / Types.pm
CommitLineData
d2739840 1package Catalyst::Controller::DBIC::API::Types;
2
3#ABSTRACT: Provides shortcut types and coercions for DBIC::API
4use warnings;
5use strict;
6
7use MooseX::Types -declare => [qw/OrderedBy GroupedBy Prefetch SelectColumns AsAliases ResultSource ResultSet Model SearchParameters JoinBuilder/];
8use MooseX::Types::Moose(':all');
9
10=type Prefetch as Maybe[ArrayRef[Str|HashRef]]
11
12Represents the structure of the prefetch argument.
13
14Coerces Str and HashRef.
15
16=cut
17
18subtype Prefetch, as Maybe[ArrayRef[Str|HashRef]];
19coerce Prefetch, from Str, via { [$_] }, from HashRef, via { [$_] };
20
21=type GroupedBy as Maybe[ArrayRef[Str]]
22
23Represents the structure of the grouped_by argument.
24
25Coerces Str.
26
27=cut
28
29subtype GroupedBy, as Maybe[ArrayRef[Str]];
30coerce GroupedBy, from Str, via { [$_] };
31
32=type OrderedBy as Maybe[ArrayRef[Str|HashRef|ScalarRef]]
33
34Represents the structure of the ordered_by argument
35
36Coerces Str.
37
38=cut
39
40subtype OrderedBy, as Maybe[ArrayRef[Str|HashRef|ScalarRef]];
1bd2d315 41coerce OrderedBy, from Str, via { [$_] }, from HashRef, via { [$_] };
d2739840 42
43=type SelectColumns as Maybe[ArrayRef[Str|HashRef]]
44
45Represents the structure of the select argument
46
47Coerces Str.
48
49=cut
50
51subtype SelectColumns, as Maybe[ArrayRef[Str|HashRef]];
1bd2d315 52coerce SelectColumns, from Str, via { [$_] }, from HashRef, via { [$_] };
d2739840 53
54=type SearchParameters as Maybe[ArrayRef[HashRef]]
55
56Represents the structure of the search argument
57
58Coerces HashRef.
59
60=cut
61
62subtype SearchParameters, as Maybe[ArrayRef[HashRef]];
63coerce SearchParameters, from HashRef, via { [$_] };
64
65=type AsAliases as Maybe[ArrayRef[Str]]
66
67Represents the structure of the as argument
68
69=cut
70
71subtype AsAliases, as Maybe[ArrayRef[Str]];
72
73=type ResultSet as class_type('DBIx::Class::ResultSet')
74
75Shortcut for DBIx::Class::ResultSet
76
77=cut
78
79subtype ResultSet, as class_type('DBIx::Class::ResultSet');
80
81=type ResultSource as class_type('DBIx::Class::ResultSource')
82
83Shortcut for DBIx::Class::ResultSource
84
85=cut
86
87subtype ResultSource, as class_type('DBIx::Class::ResultSource');
88
89=type JoinBuilder as class_type('Catalyst::Controller::DBIC::API::JoinBuilder')
90
91Shortcut for Catalyst::Controller::DBIC::API::JoinBuilder
92
93=cut
94
95subtype JoinBuilder, as class_type('Catalyst::Controller::DBIC::API::JoinBuilder');
96
97=type Model as class_type('DBIx::Class')
98
99Shortcut for model objects
100
101=cut
102
103subtype Model, as class_type('DBIx::Class');
104
1051;