-Dump a B<lot> of debugging output.
+Dump a B<lot> of debugging output even at level 1. For even more increase level.
return $self->{'record'};
}
return $self->{'record'};
}
+=head2 mfn
+
+Returns current MFN position
+
+ my $mfn = $isis->mfn;
+
+=cut
+
+# This function should be simple return $self->{current_mfn},
+# but if new is called with _hack_mfn it becomes setter.
+# It's useful in tests when setting $isis->{record} directly
+
+sub mfn {
+ my $self = shift;
+ return $self->{current_mfn};
+};
+
+
=head2 to_ascii
Returns ASCII output of record with specified MFN
=head2 to_ascii
Returns ASCII output of record with specified MFN
foreach my $t (split(/\^/,$l)) {
next if (! $t);
my ($sf,$v) = (substr($t,0,1), substr($t,1));
foreach my $t (split(/\^/,$l)) {
next if (! $t);
my ($sf,$v) = (substr($t,0,1), substr($t,1));
- warn "### $k^$sf:$v",$/ if ($self->{debug} > 1);
+ # FIXME make this option !
+ next unless ($v);
+# warn "### $k^$sf:$v",$/ if ($self->{debug} > 1);
+
+ # FIXME array return optional, by default unroll to ' ; '
if (ref( $val->{$sf} ) eq 'ARRAY') {
if (ref( $val->{$sf} ) eq 'ARRAY') {
push @{ $val->{$sf} }, $v;
} elsif (defined( $val->{$sf} )) {
# convert scalar field to array
push @{ $val->{$sf} }, $v;
} elsif (defined( $val->{$sf} )) {
# convert scalar field to array
tested this against ouput of one C<isis.dll>-based application, but I don't
know any details about it's version.
tested this against ouput of one C<isis.dll>-based application, but I don't
know any details about it's version.
+=head1 VERSIONS
+
+You can find version dependencies documented here
+
+=over 8
+
+=item 0.20
+
+Added C<< $isis->mfn >> and support for repeatable subfields
+
+=back
+
=head1 AUTHOR
Dobrica Pavlinusic
=head1 AUTHOR
Dobrica Pavlinusic
-use Test::More tests => 112;
+use Test::More tests => 124;
-my $debug = shift @ARGV;
+my $debug = length( shift @ARGV );
my $isis;
my $path_winisis = File::Spec->catfile('data', 'winisis', 'BIBL');
my $isis;
my $path_winisis = File::Spec->catfile('data', 'winisis', 'BIBL');
my $rec;
ok($rec = $isis->fetch($mfn), "fetch $mfn");
my $rec;
ok($rec = $isis->fetch($mfn), "fetch $mfn");
-
- diag "<<<<< rec: ",Dumper( $rec ), "\n>>>>> row:", Dumper( $data->[$mfn-1] ) if ($debug);
+ diag "<<<<< rec = ",Dumper( $rec ), "\n>>>>> data = ", Dumper( $data->[$mfn-1] ) if ($debug);
foreach my $f (keys %{$data->[$mfn-1]}) {
my $i = 0;
foreach my $f (keys %{$data->[$mfn-1]}) {
my $i = 0;
+
+ cmp_ok($isis->mfn, '==', $mfn, 'mfn');
+
$isis = Biblio::Isis->new (
isisdb => $path_winisis,
include_deleted => 1,
$isis = Biblio::Isis->new (
isisdb => $path_winisis,
include_deleted => 1,
+ debug => $debug > 1 ? ($debug - 1) : 0,
);
diag "new Biblio::Isis = ", Dumper($isis) if ($debug);
);
diag "new Biblio::Isis = ", Dumper($isis) if ($debug);
ok($isis->fetch(3), "deleted found");
cmp_ok($isis->{deleted}, '==', 3, "MFN 3 is deleted");
ok($isis->fetch(3), "deleted found");
cmp_ok($isis->{deleted}, '==', 3, "MFN 3 is deleted");
+ok($isis->{record}, "record exists");
+
+diag "record = ",Dumper($isis->{record});
$isis = Biblio::Isis->new (
isisdb => $path_winisis,
$isis = Biblio::Isis->new (
isisdb => $path_winisis,
ok(! $isis->fetch(3), "deleted not found");
cmp_ok($isis->{deleted}, '==', 3, "MFN 3 is deleted");
ok(! $isis->fetch(3), "deleted not found");
cmp_ok($isis->{deleted}, '==', 3, "MFN 3 is deleted");
+ok(! $isis->{record}, 'no record');
+
+$isis->{record} = {
+ 900 => [ '^a900a^b900b^c900c' ],
+ 901 => [
+ '^a901a-1^b901b-1^c901c-1',
+ '^a901a-2^b901b-2',
+ '^a901a-3',
+ ],
+ 902 => [
+ '^aa1^aa2^aa3^bb1^aa4^bb2^cc1^aa5',
+ ],
+};
+$isis->{current_mfn} = 42;
+
+diag "to_hash = ",Dumper( $isis->to_hash( $isis->mfn ) );
+diag "to_ascii = \n", $isis->to_ascii( $isis->mfn );