Catalyst::Model::DBIC::Schema::Types;
use MooseX::Types -declare => [qw/
- ConnectInfo ConnectInfos Replicants SchemaClass LoadedClass CreateOption
+ ConnectInfo ConnectInfos Replicants SchemaClass CreateOption
+ Schema
/];
use Carp::Clan '^Catalyst::Model::DBIC::Schema';
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 namespace::clean -except => 'meta';
-subtype LoadedClass,
- as ClassName;
-
-coerce LoadedClass,
- from Str,
- via { Class::MOP::load_class($_); $_ };
-
subtype SchemaClass,
- as ClassName,
+ as LoadableClass,
where { $_->isa('DBIx::Class::Schema') };
-SchemaClass->coercion(LoadedClass->coercion);
+class_type Schema, { class => 'DBIx::Class::Schema' };
subtype ConnectInfo,
as HashRef,
via { [ _coerce_connect_info_from_str() ] },
from CodeRef,
via { [ +{ dbh_maker => $_ } ] },
+ from HashRef,
+ via { [ $_ ] },
from ArrayRef,
via { [ map {
!ref $_ ? _coerce_connect_info_from_str()