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 $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};
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>
use strict;
use blib;
-use Test::More tests => 176;
+use Test::More tests => 181;
use File::Spec;
BEGIN {
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) = @_;