fixed busted replication trait
[catagits/Catalyst-Model-DBIC-Schema.git] / lib / Catalyst / Model / DBIC / Schema / Types.pm
index 0356482..c48f22c 100644 (file)
@@ -3,7 +3,7 @@ package  # hide from PAUSE
 
 use MooseX::Types -declare => [qw/
     ConnectInfo ConnectInfos Replicants SchemaClass CreateOption
-    Schema
+    Schema LoadedClass
 /];
 
 use Carp::Clan '^Catalyst::Model::DBIC::Schema';
@@ -11,9 +11,21 @@ use MooseX::Types::Moose qw/ArrayRef HashRef CodeRef Str ClassName/;
 use MooseX::Types::LoadableClass qw/LoadableClass/;
 use Scalar::Util 'reftype';
 use List::MoreUtils 'all';
+use Module::Runtime;
 
 use namespace::clean -except => 'meta';
 
+# So I restored the custom Type LoadedClass because 'LoadableClass' doesn't really
+# exactly do the same thing, which busted the Replication trait.  Please don't
+# "clean this up" -JNAP
+
+subtype LoadedClass,
+    as ClassName;
+
+coerce LoadedClass,
+    from Str, # N.B. deliberate paranoia against $_ clobbering below
+    via { my $classname = $_; Module::Runtime::use_module($classname); $classname };
+
 subtype SchemaClass,
     as LoadableClass,
     where { $_->isa('DBIx::Class::Schema') };