X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FStorage%2FDBI%2FReplicated%2FTypes.pm;h=0fcb9b221f876e74a6de9cec1a004311d41cd979;hb=23b2c49b17262ecf84307c9ffba88ed38ecc90cb;hp=c366ea5d951a764c0e70e2ee2ff5809ab1b74f94;hpb=b88b85e73de8ca03cfd1f7bc2ee43d6403302986;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Storage/DBI/Replicated/Types.pm b/lib/DBIx/Class/Storage/DBI/Replicated/Types.pm index c366ea5..0fcb9b2 100644 --- a/lib/DBIx/Class/Storage/DBI/Replicated/Types.pm +++ b/lib/DBIx/Class/Storage/DBI/Replicated/Types.pm @@ -1,32 +1,33 @@ package # hide from PAUSE DBIx::Class::Storage::DBI::Replicated::Types; -=head1 NAME +# DBIx::Class::Storage::DBI::Replicated::Types - Types used internally by +# L -DBIx::Class::Storage::DBI::Replicated::Types - Types used internally by -L - -=cut +# 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; + $type =~ s/\A::/DBIx::Class::Storage::DBI::Replicated::Balancer::/; + $type; }; subtype Weight, @@ -34,14 +35,12 @@ subtype Weight, where { $_ >= 0 }, message { 'weight must be a decimal greater than 0' }; -=head1 AUTHOR - - John Napiorkowski - -=head1 LICENSE - -You may distribute this code under the same terms as Perl itself. - -=cut +# AUTHOR +# +# John Napiorkowski +# +# LICENSE +# +# You may distribute this code under the same terms as Perl itself. 1;