Fix broken POD links found by App::PodLinkChecker
[dbsrgits/SQL-Translator.git] / lib / SQL / Translator / Schema / Constraint.pm
index 0fd43c1..7742bf7 100644 (file)
@@ -27,7 +27,7 @@ use Moo;
 use SQL::Translator::Schema::Constants;
 use SQL::Translator::Utils qw(ex2err throw);
 use SQL::Translator::Role::ListAttr;
-use SQL::Translator::Types qw(schema_obj);
+use SQL::Translator::Types qw(schema_obj enum);
 use Sub::Quote qw(quote_sub);
 
 extends 'SQL::Translator::Schema::Object';
@@ -80,7 +80,7 @@ around BUILDARGS => sub {
 
 Get or set whether the constraint is deferrable.  If not defined,
 then returns "1."  The argument is evaluated by Perl for True or
-False, so the following are eqivalent:
+False, so the following are equivalent:
 
   $deferrable = $field->deferrable(0);
   $deferrable = $field->deferrable('');
@@ -88,7 +88,11 @@ False, so the following are eqivalent:
 
 =cut
 
-has deferrable => ( is => 'rw', coerce => sub { $_[0] ? 1 : 0 }, default => quote_sub(q{ 1 }) );
+has deferrable => (
+    is => 'rw',
+    coerce => quote_sub(q{ $_[0] ? 1 : 0 }),
+    default => quote_sub(q{ 1 }),
+);
 
 =head2 expression
 
@@ -175,7 +179,7 @@ names and keep them in order by the first occurrence of a field name.
 
 The fields are returned as Field objects if they exist or as plain
 names if not. (If you just want the names and want to avoid the Field's overload
-magic use L<field_names>).
+magic use L</field_names>).
 
 Returns undef or an empty list if the constraint has no fields set.
 
@@ -192,9 +196,9 @@ Returns undef or an empty list if the constraint has no fields set.
 sub fields {
     my $self = shift;
     my $table = $self->table;
-    my @tables = map { $table->get_field($_) || $_ } @{$self->field_names(@_) || []};
-    return wantarray ? @tables
-        : @tables ? \@tables
+    my @fields = map { $table->get_field($_) || $_ } @{$self->field_names(@_) || []};
+    return wantarray ? @fields
+        : @fields ? \@fields
         : undef;
 }
 
@@ -222,12 +226,10 @@ Get or set the constraint's match_type.  Only valid values are "full"
 has match_type => (
     is => 'rw',
     default => quote_sub(q{ '' }),
-    coerce => sub { lc $_[0] },
-    isa => sub {
-        my $arg = $_[0];
-        throw("Invalid match type: $arg")
-            if $arg && !($arg eq 'full' || $arg eq 'partial' || $arg eq 'simple');
-    },
+    coerce => quote_sub(q{ lc $_[0] }),
+    isa => enum([qw(full partial simple)], {
+        msg => "Invalid match type: %s", allow_false => 1,
+    }),
 );
 
 around match_type => \&ex2err;
@@ -364,11 +366,10 @@ Get or set the constraint's type.
 has type => (
     is => 'rw',
     default => quote_sub(q{ '' }),
-    isa => sub {
-        throw("Invalid constraint type: $_[0]")
-            if $_[0] && !$VALID_CONSTRAINT_TYPE{ $_[0] };
-    },
-    coerce => sub { (my $t = $_[0]) =~ s/_/ /g; uc $t },
+    coerce => quote_sub(q{ (my $t = $_[0]) =~ s/_/ /g; uc $t }),
+    isa => enum([keys %VALID_CONSTRAINT_TYPE], {
+        msg => "Invalid constraint type: %s", allow_false => 1,
+    }),
 );
 
 around type => \&ex2err;