X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FStorage%2FDBI%2FReplicated%2FTypes.pm;h=0782a6edad7e11e421fb84b9cb0a14786d5ddacb;hb=12a184d0a0c1868708e43aaabefe08f9e7ac9ec4;hp=7a1ba3edbc5d03f0aa7d6ec304d9c8c1400759b0;hpb=998373c25685c23dda3db90ecf5420e8157bc332;p=dbsrgits%2FDBIx-Class-Historic.git diff --git a/lib/DBIx/Class/Storage/DBI/Replicated/Types.pm b/lib/DBIx/Class/Storage/DBI/Replicated/Types.pm index 7a1ba3e..0782a6e 100644 --- a/lib/DBIx/Class/Storage/DBI/Replicated/Types.pm +++ b/lib/DBIx/Class/Storage/DBI/Replicated/Types.pm @@ -4,24 +4,29 @@ package # hide from PAUSE # DBIx::Class::Storage::DBI::Replicated::Types - Types used internally by # L +# Workaround for https://rt.cpan.org/Public/Bug/Display.html?id=83336 +use warnings; +use strict; + use MooseX::Types - -declare => [qw/BalancerClassNamePart Weight/]; + -declare => [qw/BalancerClassNamePart Weight DBICSchema DBICStorageDBI/]; use MooseX::Types::Moose qw/ClassName Str Num/; +use MooseX::Types::LoadableClass qw/LoadableClass/; class_type 'DBIx::Class::Storage::DBI'; class_type 'DBIx::Class::Schema'; +subtype DBICSchema, as 'DBIx::Class::Schema'; +subtype DBICStorageDBI, as 'DBIx::Class::Storage::DBI'; + subtype BalancerClassNamePart, - as ClassName; + as LoadableClass; coerce BalancerClassNamePart, from Str, via { my $type = $_; - if($type=~m/^::/) { - $type = 'DBIx::Class::Storage::DBI::Replicated::Balancer'.$type; - } - Class::MOP::load_class($type); + $type =~ s/\A::/DBIx::Class::Storage::DBI::Replicated::Balancer::/; $type; }; @@ -30,12 +35,4 @@ subtype Weight, where { $_ >= 0 }, message { 'weight must be a decimal greater than 0' }; -# AUTHOR -# -# John Napiorkowski -# -# LICENSE -# -# You may distribute this code under the same terms as Perl itself. - 1;