ver bump
[migration-tools.git] / Equinox-Migration / lib / Equinox / Migration / SubfieldMapper.pm
index a282ca9..8d6a0f9 100644 (file)
@@ -9,11 +9,11 @@ Equinox::Migration::SubfieldMapper - Generate named-field to MARC tag map from f
 
 =head1 VERSION
 
-Version 1.001
+Version 1.002
 
 =cut
 
-our $VERSION = '1.001';
+our $VERSION = '1.002';
 
 
 =head1 SYNOPSIS
@@ -176,7 +176,7 @@ Returns the modifiers set on a mapping.
 
     $self->mods('fieldname')
 
-If there are no modifiers, C<undef> will be returned. Else a listref
+If there are no modifiers, C<undef> will be returned. Else a hashref
 will be returned.
 
 =cut
@@ -184,6 +184,7 @@ will be returned.
 sub mods {
     my ($self, $field) = @_;
     return undef unless $self->has($field);
+    return undef unless (%{ $self->{fields}{$field}{mods} });
     return $self->{fields}{$field}{mods};
 }
 
@@ -271,12 +272,12 @@ sub add {
     my ($self, $map) = @_;
 
     # trim the mods and filters
-    my $mods = []; my %mods = ();
+    my $mods = {};
     my $filt = []; my %filt = ();
     for my $m (@{$map->{mods}}) {
-        die "Modifier collision '$m' at line $." if $mods{$m};
+        die "Modifier collision '$m' at line $." if $mods->{$m};
         $m =~ s/^m://;
-        push @{$mods}, $m; $mods{$m} = 1;
+        $mods->{$m} = 1;
     }
     for my $f (@{$map->{filt}}) {
         die "Modifier collision '$f' at line $." if $filt{$f};
@@ -334,7 +335,7 @@ sub validate {
 
     # test mod names if we have a set to check against
     if (defined $self->{conf}{mods}) {
-        for my $mod ( @{$map->{mods}} ) {
+        for my $mod ( keys %{$map->{mods}} ) {
             die "Modifier '$mod' not allowed\n"
               unless $self->{conf}{mods}{$mod};
         }