fixed bug with documented, but unimplemented new( join_subfields_with => 'foo' )
authorDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 29 Oct 2006 15:37:43 +0000 (15:37 +0000)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 29 Oct 2006 15:37:43 +0000 (15:37 +0000)
git-svn-id: file:///home/dpavlin/svn/Biblio-Isis/trunk@69 4670fa4d-42ec-0310-ab5b-a66af6943492

lib/Biblio/Isis.pm
t/2_isis.t

index 3f70647..d897400 100644 (file)
@@ -139,8 +139,8 @@ sub new {
 
        croak "new needs database name (isisdb) as argument!" unless ({@_}->{isisdb});
 
 
        croak "new needs database name (isisdb) as argument!" unless ({@_}->{isisdb});
 
-       foreach my $v (qw{isisdb debug include_deleted hash_filter}) {
-               $self->{$v} = {@_}->{$v};
+       foreach my $v (qw{isisdb debug include_deleted hash_filter join_subfields_with}) {
+               $self->{$v} = {@_}->{$v} if defined({@_}->{$v});
        }
 
        my @isis_files = grep(/\.(FDT|MST|XRF|CNT)$/i,glob($self->{isisdb}."*"));
        }
 
        my @isis_files = grep(/\.(FDT|MST|XRF|CNT)$/i,glob($self->{isisdb}."*"));
@@ -576,7 +576,7 @@ sub to_hash {
 
        my $row = $self->fetch($mfn) || return;
 
 
        my $row = $self->fetch($mfn) || return;
 
-       my $j_rs = $arg->{join_subfields_with};
+       my $j_rs = $arg->{join_subfields_with} || $self->{join_subfields_with};
        $j_rs = $self->{join_subfields_with} unless(defined($j_rs));
        my $i_sf = $arg->{include_subfields};
 
        $j_rs = $self->{join_subfields_with} unless(defined($j_rs));
        my $i_sf = $arg->{include_subfields};
 
@@ -762,6 +762,9 @@ older versions if you really have to):
 
 Added C<hash_filter> to L</to_hash>
 
 
 Added C<hash_filter> to L</to_hash>
 
+Fixed bug with documented C<join_subfields_with> in L</new> which wasn't
+implemented
+
 =item 0.22
 
 Added field number when calling C<hash_filter>
 =item 0.22
 
 Added field number when calling C<hash_filter>
index 2d23c2a..6ed4e85 100755 (executable)
@@ -3,7 +3,7 @@
 use strict;
 use blib;
 
 use strict;
 use blib;
 
-use Test::More tests => 176;
+use Test::More tests => 181;
 use File::Spec;
 
 BEGIN {
 use File::Spec;
 
 BEGIN {
@@ -280,6 +280,27 @@ is_deeply( $hash, {
    902   => [{ a => "a1 ; a2 ; a3 ; a4 ; a5", b => "b1 ; b2", c => "c1" }],
 }, 'hash is_deeply');
 
    902   => [{ a => "a1 ; a2 ; a3 ; a4 ; a5", b => "b1 ; b2", c => "c1" }],
 }, 'hash is_deeply');
 
+my $isis2;
+ok($isis2 = Biblio::Isis->new (
+       isisdb => $path_winisis,
+       join_subfields_with => ' ; ',
+),"new( join_subfields_with )");
+ok($isis2->{record} = $isis->{record}, "copy record");
+ok($isis2->{current_mfn} = $isis->{current_mfn}, "copy current_mfn");
+
+ok($hash = $isis2->to_hash( $isis->mfn ), 'to_hash(mfn)');
+diag "to_hash = ",Dumper( $hash ) if ($debug);
+is_deeply( $hash, {
+   "000" => [42],
+   900   => [{ a => "900a", b => "900b", c => "900c" }],
+   901   => [
+              { a => "901a-1", b => "901b-1", c => "901c-1" },
+              { a => "901a-2", b => "901b-2" },
+              { a => "901a-3" },
+            ],
+   902   => [{ a => "a1 ; a2 ; a3 ; a4 ; a5", b => "b1 ; b2", c => "c1" }],
+}, 'hash is_deeply');
+
 # test to_hash( hash_filter )
 ok($hash = $isis->to_hash({ mfn => $isis->mfn, hash_filter => sub {
        my ($l,$f) = @_;
 # test to_hash( hash_filter )
 ok($hash = $isis->to_hash({ mfn => $isis->mfn, hash_filter => sub {
        my ($l,$f) = @_;