Introduce GOVERNANCE document and empty RESOLUTIONS file.
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Storage / DBI / Replicated / Types.pm
index 4e75aa2..0782a6e 100644 (file)
@@ -4,9 +4,14 @@ package # hide from PAUSE
 # DBIx::Class::Storage::DBI::Replicated::Types - Types used internally by
 # L<DBIx::Class::Storage::DBI::Replicated>
 
+# Workaround for https://rt.cpan.org/Public/Bug/Display.html?id=83336
+use warnings;
+use strict;
+
 use MooseX::Types
   -declare => [qw/BalancerClassNamePart Weight DBICSchema DBICStorageDBI/];
 use MooseX::Types::Moose qw/ClassName Str Num/;
+use MooseX::Types::LoadableClass qw/LoadableClass/;
 
 class_type 'DBIx::Class::Storage::DBI';
 class_type 'DBIx::Class::Schema';
@@ -15,16 +20,13 @@ subtype DBICSchema, as 'DBIx::Class::Schema';
 subtype DBICStorageDBI, as 'DBIx::Class::Storage::DBI';
 
 subtype BalancerClassNamePart,
-  as ClassName;
+  as LoadableClass;
 
 coerce BalancerClassNamePart,
   from Str,
   via {
     my $type = $_;
-    if($type=~m/^::/) {
-      $type = 'DBIx::Class::Storage::DBI::Replicated::Balancer'.$type;
-    }
-    Class::MOP::load_class($type);
+    $type =~ s/\A::/DBIx::Class::Storage::DBI::Replicated::Balancer::/;
     $type;
   };
 
@@ -33,12 +35,4 @@ subtype Weight,
   where { $_ >= 0 },
   message { 'weight must be a decimal greater than 0' };
 
-# AUTHOR
-#
-#  John Napiorkowski <john.napiorkowski@takkle.com>
-#
-# LICENSE
-#
-#  You may distribute this code under the same terms as Perl itself.
-
 1;