a few more Moose Type related fixes and added diag to the replication test to report...
[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 use MooseX::Types
8   -declare => [qw/BalancerClassNamePart Weight DBICSchema DBICStorageDBI/];
9 use MooseX::Types::Moose qw/ClassName Str Num/;
10
11 class_type 'DBIx::Class::Storage::DBI';
12 class_type 'DBIx::Class::Schema';
13
14 subtype DBICSchema, as 'DBIx::Class::Schema';
15 subtype DBICStorageDBI, as 'DBIx::Class::Storage::DBI';
16
17 subtype BalancerClassNamePart,
18   as ClassName;
19
20 coerce 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
31 subtype 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
44 1;