From: Dobrica Pavlinusic Date: Sun, 29 Oct 2006 15:37:43 +0000 (+0000) Subject: fixed bug with documented, but unimplemented new( join_subfields_with => 'foo' ) X-Git-Url: http://git.rot13.org/?p=Biblio-Isis;a=commitdiff_plain;h=c2de9c378f2f3f9f7a489f1e266e978dd8952bfe fixed bug with documented, but unimplemented new( join_subfields_with => 'foo' ) git-svn-id: file:///home/dpavlin/svn/Biblio-Isis/trunk@69 4670fa4d-42ec-0310-ab5b-a66af6943492 --- diff --git a/lib/Biblio/Isis.pm b/lib/Biblio/Isis.pm index 3f70647..d897400 100644 --- a/lib/Biblio/Isis.pm +++ b/lib/Biblio/Isis.pm @@ -139,8 +139,8 @@ sub new { 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}."*")); @@ -576,7 +576,7 @@ sub to_hash { 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}; @@ -762,6 +762,9 @@ older versions if you really have to): Added C to L +Fixed bug with documented C in L which wasn't +implemented + =item 0.22 Added field number when calling C diff --git a/t/2_isis.t b/t/2_isis.t index 2d23c2a..6ed4e85 100755 --- a/t/2_isis.t +++ b/t/2_isis.t @@ -3,7 +3,7 @@ use strict; use blib; -use Test::More tests => 176; +use Test::More tests => 181; 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'); +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) = @_;