point out where in the docs a user is most likely to spend reading time
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Admin / Types.pm
CommitLineData
71ef99d5 1package # hide from PAUSE
2 DBIx::Class::Admin::Types;
3
5292b35a 4# Workaround for https://rt.cpan.org/Public/Bug/Display.html?id=83336
5use warnings;
6use strict;
7
71ef99d5 8use MooseX::Types -declare => [qw(
9 DBICConnectInfo
a62dec82 10 DBICArrayRef
11 DBICHashRef
71ef99d5 12)];
13use MooseX::Types::Moose qw/Int HashRef ArrayRef Str Any Bool/;
14use MooseX::Types::JSON qw(JSON);
15
a62dec82 16subtype DBICArrayRef,
17 as ArrayRef;
18
19subtype DBICHashRef,
20 as HashRef;
21
22coerce DBICArrayRef,
71ef99d5 23 from JSON,
24 via { _json_to_data ($_) };
25
a62dec82 26coerce DBICHashRef,
71ef99d5 27 from JSON,
28 via { _json_to_data($_) };
29
30subtype DBICConnectInfo,
31 as ArrayRef;
32
33coerce DBICConnectInfo,
34 from JSON,
35 via { return _json_to_data($_) } ;
36
37coerce DBICConnectInfo,
38 from Str,
39 via { return _json_to_data($_) };
40
41coerce DBICConnectInfo,
42 from HashRef,
43 via { [ $_ ] };
44
45sub _json_to_data {
46 my ($json_str) = @_;
47 my $json = JSON::Any->new(allow_barekey => 1, allow_singlequote => 1, relaxed=>1);
48 my $ret = $json->jsonToObj($json_str);
49 return $ret;
50}
51
521;