Port ::Admin from Moose to Moo+Type::Tiny
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Admin / Types.pm
index c6f37c6..b3d46c7 100644 (file)
@@ -1,17 +1,26 @@
 package # hide from PAUSE
     DBIx::Class::Admin::Types;
 
-# Workaround for https://rt.cpan.org/Public/Bug/Display.html?id=83336
 use warnings;
 use strict;
 
-use MooseX::Types -declare => [qw(
+use Type::Library
+  -base,
+  -declare => qw(
+    Dir File
     DBICConnectInfo
     DBICArrayRef
     DBICHashRef
-)];
-use MooseX::Types::Moose qw/Int HashRef ArrayRef Str Any Bool/;
-use MooseX::Types::JSON qw(JSON);
+);
+use Type::Utils -all;
+use Types::Standard qw/HashRef ArrayRef Str/;
+use Path::Class;
+
+class_type Dir, { class => 'Path::Class::Dir' };
+class_type File, { class => 'Path::Class::File' };
+
+coerce Dir, from Str, via { dir($_) };
+coerce File, from Str, via { file($_) };
 
 subtype DBICArrayRef,
     as ArrayRef;
@@ -20,30 +29,23 @@ subtype DBICHashRef,
     as HashRef;
 
 coerce DBICArrayRef,
-  from JSON,
+  from Str,
   via { _json_to_data ($_) };
 
 coerce DBICHashRef,
-  from JSON,
+  from Str,
   via { _json_to_data($_) };
 
 subtype DBICConnectInfo,
   as ArrayRef;
 
 coerce DBICConnectInfo,
-  from JSON,
-   via { return _json_to_data($_) } ;
-
-coerce DBICConnectInfo,
-  from Str,
-    via { return _json_to_data($_) };
-
-coerce DBICConnectInfo,
-  from HashRef,
-   via { [ $_ ] };
+  from Str, via { _json_to_data($_) },
+  from HashRef, via { [ $_ ] };
 
 sub _json_to_data {
   my ($json_str) = @_;
+  require JSON::Any;
   my $json = JSON::Any->new(allow_barekey => 1, allow_singlequote => 1, relaxed=>1);
   my $ret = $json->jsonToObj($json_str);
   return $ret;