Stop using the deprecated Class::MOP::load_class()
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Storage / DBI / Replicated / Types.pm
CommitLineData
dcdf7b2c 1package # 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
8use warnings;
9use strict;
10
9901aad7 11use MooseX::Types
6a151f58 12 -declare => [qw/BalancerClassNamePart Weight DBICSchema DBICStorageDBI/];
ee356d00 13use MooseX::Types::Moose qw/ClassName Str Num/;
d401ab6b 14use MooseX::Types::LoadableClass qw/LoadableClass/;
9901aad7 15
16class_type 'DBIx::Class::Storage::DBI';
41916570 17class_type 'DBIx::Class::Schema';
9901aad7 18
6a151f58 19subtype DBICSchema, as 'DBIx::Class::Schema';
20subtype DBICStorageDBI, as 'DBIx::Class::Storage::DBI';
21
9901aad7 22subtype BalancerClassNamePart,
d401ab6b 23 as LoadableClass;
998373c2 24
9901aad7 25coerce 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 33subtype 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 461;