Commit | Line | Data |
---|---|---|
dcdf7b2c | 1 | package # hide from PAUSE |
2 | DBIx::Class::Storage::DBI::Replicated::Types; | |
3 | ||
998373c2 | 4 | # DBIx::Class::Storage::DBI::Replicated::Types - Types used internally by |
5 | # L<DBIx::Class::Storage::DBI::Replicated> | |
9901aad7 | 6 | |
5292b35a | 7 | # Workaround for https://rt.cpan.org/Public/Bug/Display.html?id=83336 |
8 | use warnings; | |
9 | use strict; | |
10 | ||
9901aad7 | 11 | use MooseX::Types |
6a151f58 | 12 | -declare => [qw/BalancerClassNamePart Weight DBICSchema DBICStorageDBI/]; |
ee356d00 | 13 | use MooseX::Types::Moose qw/ClassName Str Num/; |
d401ab6b | 14 | use MooseX::Types::LoadableClass qw/LoadableClass/; |
9901aad7 | 15 | |
16 | class_type 'DBIx::Class::Storage::DBI'; | |
41916570 | 17 | class_type 'DBIx::Class::Schema'; |
9901aad7 | 18 | |
6a151f58 | 19 | subtype DBICSchema, as 'DBIx::Class::Schema'; |
20 | subtype DBICStorageDBI, as 'DBIx::Class::Storage::DBI'; | |
21 | ||
9901aad7 | 22 | subtype BalancerClassNamePart, |
d401ab6b | 23 | as LoadableClass; |
998373c2 | 24 | |
9901aad7 | 25 | coerce BalancerClassNamePart, |
26 | from Str, | |
27 | via { | |
28 | my $type = $_; | |
d401ab6b | 29 | $type =~ s/\A::/DBIx::Class::Storage::DBI::Replicated::Balancer::/; |
998373c2 | 30 | $type; |
9901aad7 | 31 | }; |
32 | ||
ee356d00 | 33 | subtype Weight, |
34 | as Num, | |
b88b85e7 | 35 | where { $_ >= 0 }, |
36 | message { 'weight must be a decimal greater than 0' }; | |
ee356d00 | 37 | |
9901aad7 | 38 | 1; |