Stop using the deprecated Class::MOP::load_class()
[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 use MooseX::Types::LoadableClass qw/LoadableClass/;
15
16 class_type 'DBIx::Class::Storage::DBI';
17 class_type 'DBIx::Class::Schema';
18
19 subtype DBICSchema, as 'DBIx::Class::Schema';
20 subtype DBICStorageDBI, as 'DBIx::Class::Storage::DBI';
21
22 subtype BalancerClassNamePart,
23   as LoadableClass;
24
25 coerce BalancerClassNamePart,
26   from Str,
27   via {
28     my $type = $_;
29     $type =~ s/\A::/DBIx::Class::Storage::DBI::Replicated::Balancer::/;
30     $type;
31   };
32
33 subtype Weight,
34   as Num,
35   where { $_ >= 0 },
36   message { 'weight must be a decimal greater than 0' };
37
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.
45
46 1;