minor fixups
[dbsrgits/DBIx-Class-Historic.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
6)];
7use MooseX::Types::Moose qw/Int HashRef ArrayRef Str Any Bool/;
8use MooseX::Types::JSON qw(JSON);
9
10coerce ArrayRef,
11 from JSON,
12 via { _json_to_data ($_) };
13
14coerce HashRef,
15 from JSON,
16 via { _json_to_data($_) };
17
18subtype DBICConnectInfo,
19 as ArrayRef;
20
21coerce DBICConnectInfo,
22 from JSON,
23 via { return _json_to_data($_) } ;
24
25coerce DBICConnectInfo,
26 from Str,
27 via { return _json_to_data($_) };
28
29coerce DBICConnectInfo,
30 from HashRef,
31 via { [ $_ ] };
32
33sub _json_to_data {
34 my ($json_str) = @_;
35 my $json = JSON::Any->new(allow_barekey => 1, allow_singlequote => 1, relaxed=>1);
36 my $ret = $json->jsonToObj($json_str);
37 return $ret;
38}
39
401;