1package # hide from PAUSE 2 DBIx::Class::Admin::Types; 3 4use MooseX::Types -declare => [qw( 5 DBICConnectInfo 6 DBICArrayRef 7 DBICHashRef 8)]; 9use MooseX::Types::Moose qw/Int HashRef ArrayRef Str Any Bool/; 10use MooseX::Types::JSON qw(JSON); 11 12subtype DBICArrayRef, 13 as ArrayRef; 14 15subtype DBICHashRef, 16 as HashRef; 17 18coerce DBICArrayRef, 19 from JSON, 20 via { _json_to_data ($_) }; 21 22coerce DBICHashRef, 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; 49