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 | |
998373c2 |
38 | # AUTHOR |
39 | # |
40 | # John Napiorkowski <john.napiorkowski@takkle.com> |
41 | # |
42 | # LICENSE |
43 | # |
44 | # You may distribute this code under the same terms as Perl itself. |
dcdf7b2c |
45 | |
9901aad7 |
46 | 1; |