1package # hide from PAUSE 2 DBIx::Class::Storage::DBI::Replicated::Types; 3 4# DBIx::Class::Storage::DBI::Replicated::Types - Types used internally by 5# L<DBIx::Class::Storage::DBI::Replicated> 6 7use MooseX::Types 8 -declare => [qw/BalancerClassNamePart Weight DBICSchema DBICStorageDBI/]; 9use MooseX::Types::Moose qw/ClassName Str Num/; 10 11class_type 'DBIx::Class::Storage::DBI'; 12class_type 'DBIx::Class::Schema'; 13 14subtype DBICSchema, as 'DBIx::Class::Schema'; 15subtype DBICStorageDBI, as 'DBIx::Class::Storage::DBI'; 16 17subtype BalancerClassNamePart, 18 as ClassName; 19 20coerce BalancerClassNamePart, 21 from Str, 22 via { 23 my $type = $_; 24 if($type=~m/^::/) { 25 $type = 'DBIx::Class::Storage::DBI::Replicated::Balancer'.$type; 26 } 27 Class::MOP::load_class($type); 28 $type; 29 }; 30 31subtype Weight, 32 as Num, 33 where { $_ >= 0 }, 34 message { 'weight must be a decimal greater than 0' }; 35 36# AUTHOR 37# 38# John Napiorkowski <john.napiorkowski@takkle.com> 39# 40# LICENSE 41# 42# You may distribute this code under the same terms as Perl itself. 43 441; 45