More (temporary) kwalitee fixups
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Storage / DBI / Replicated / Types.pm
1 package # 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
7 # Workaround for https://rt.cpan.org/Public/Bug/Display.html?id=83336
8 use warnings;
9 use strict;
10
11 use MooseX::Types
12   -declare => [qw/BalancerClassNamePart Weight DBICSchema DBICStorageDBI/];
13 use MooseX::Types::Moose qw/ClassName Str Num/;
14
15 class_type 'DBIx::Class::Storage::DBI';
16 class_type 'DBIx::Class::Schema';
17
18 subtype DBICSchema, as 'DBIx::Class::Schema';
19 subtype DBICStorageDBI, as 'DBIx::Class::Storage::DBI';
20
21 subtype BalancerClassNamePart,
22   as ClassName;
23
24 coerce BalancerClassNamePart,
25   from Str,
26   via {
27     my $type = $_;
28     if($type=~m/^::/) {
29       $type = 'DBIx::Class::Storage::DBI::Replicated::Balancer'.$type;
30     }
31     Class::MOP::load_class($type);
32     $type;
33   };
34
35 subtype Weight,
36   as Num,
37   where { $_ >= 0 },
38   message { 'weight must be a decimal greater than 0' };
39
40 # AUTHOR
41 #
42 #  John Napiorkowski <john.napiorkowski@takkle.com>
43 #
44 # LICENSE
45 #
46 #  You may distribute this code under the same terms as Perl itself.
47
48 1;