Port to Moo
[dbsrgits/DBIx-Class-DeploymentHandler.git] / lib / DBIx / Class / DeploymentHandler / Types.pm
index c4946c9..eed11bd 100644 (file)
@@ -2,14 +2,38 @@ package DBIx::Class::DeploymentHandler::Types;
 use strict;
 use warnings;
 
-use Moose::Util::TypeConstraints;
-subtype 'DBIx::Class::DeploymentHandler::Databases'
- => as 'ArrayRef[Str]';
-
-coerce 'DBIx::Class::DeploymentHandler::Databases'
- => from 'Str'
- => via { [$_] };
-no Moose::Util::TypeConstraints;
+# ABSTRACT: Types internal to DBIx::Class::DeploymentHandler
+
+use Sub::Quote 'quote_sub';
+
+use Sub::Exporter -setup => {
+  exports => [ qw(Storage ResultSet StrSchemaVersion) ],
+};
+
+sub ResultSet {
+quote_sub(q{
+     use Check::ISA;
+     obj($_[0], 'DBIx::Class::ResultSet')
+        or die 'version_rs should be a DBIx::Class::ResultSet!'
+  })
+}
+
+sub Storage {
+quote_sub(q{
+     use Check::ISA;
+     obj($_[0], 'DBIx::Class::Storage')
+        or die 'storage should be a DBIx::Class::Storage!'
+  })
+}
+
+sub StrSchemaVersion {
+  quote_sub(q{
+    die(defined $_[0]
+      ? "Schema version (currently '$_[0]') must be a string"
+      : 'Schema version must be defined'
+    ) unless ref(\$_[0]) eq 'SCALAR'
+  })
+}
 
 1;