Restore ability to handle underdefined root (t/prefetch/incomplete.t)
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Admin / Types.pm
CommitLineData
71ef99d5 1package # hide from PAUSE
2 DBIx::Class::Admin::Types;
3
4use MooseX::Types -declare => [qw(
5 DBICConnectInfo
a62dec82 6 DBICArrayRef
7 DBICHashRef
71ef99d5 8)];
9use MooseX::Types::Moose qw/Int HashRef ArrayRef Str Any Bool/;
10use MooseX::Types::JSON qw(JSON);
11
a62dec82 12subtype DBICArrayRef,
13 as ArrayRef;
14
15subtype DBICHashRef,
16 as HashRef;
17
18coerce DBICArrayRef,
71ef99d5 19 from JSON,
20 via { _json_to_data ($_) };
21
a62dec82 22coerce DBICHashRef,
71ef99d5 23 from JSON,
24 via { _json_to_data($_) };
25
26subtype DBICConnectInfo,
27 as ArrayRef;
28
29coerce DBICConnectInfo,
30 from JSON,
31 via { return _json_to_data($_) } ;
32
33coerce DBICConnectInfo,
34 from Str,
35 via { return _json_to_data($_) };
36
37coerce DBICConnectInfo,
38 from HashRef,
39 via { [ $_ ] };
40
41sub _json_to_data {
42 my ($json_str) = @_;
43 my $json = JSON::Any->new(allow_barekey => 1, allow_singlequote => 1, relaxed=>1);
44 my $ret = $json->jsonToObj($json_str);
45 return $ret;
46}
47
481;