MARC-Field008-Print
view release on metacpan or search on metacpan
push @ret, $self->_key('Government publication').
$self->_print($material, 'government_publication');
push @ret, $self->_key('Form of item').
$self->_print($material, 'form_of_item');
push @ret, $self->_key('Type of visual material').
$self->_print($material, 'type_of_visual_material', 'visual_material');
push @ret, $self->_key('Technique').
$self->_print($material, 'technique', 'visual_material');
}
# TODO Translate?
push @ret, $self->_key('Language').$field008_obj->language;
push @ret, $self->_key('Modified record').
$self->_print($field008_obj, 'modified_record');
push @ret, $self->_key('Cataloging source').
$self->_print($field008_obj, 'cataloging_source');
return wantarray ? @ret : (join $self->{'output_separator'}, @ret);
}
sub _key {
my ($self, $key) = @_;
my $ret;
my $value = $self->{'_l'}->maketext($key);
if ($self->{'mode_ansi'}) {
$ret = Term::ANSIColor::color('cyan').$value.Term::ANSIColor::color('reset');
} else {
$ret = $value;
}
$ret .= ': ';
return $ret;
}
sub _print {
my ($self, $obj, $method_name, $prefix, $lang_key) = @_;
my $ret_value = $obj->$method_name;
my $ret;
if ($self->{'mode_desc'}) {
if (! defined $lang_key) {
my $ret_value_fixed = $ret_value;
$ret_value_fixed =~ s/\ /_/msg;
$lang_key = $method_name.'.'.$ret_value_fixed;
if (defined $prefix) {
$lang_key = $prefix.'.'.$lang_key;
}
}
$ret = $self->{'_l'}->maketext($lang_key);
} else {
$ret = $ret_value;
}
return $ret;
}
sub _print_multi {
my ($self, $obj, $method_name, $prefix) = @_;
my $ret_value = $obj->$method_name;
my @ret_values = split m//ms, $ret_value;
my @ret;
my $not_coded = 0;
foreach my $process_ret_value (@ret_values) {
if ($process_ret_value eq ' ') {
next;
}
if ($process_ret_value eq '|') {
if (! $not_coded) {
$not_coded = 1;
} else {
next;
}
}
if ($self->{'mode_desc'}) {
my $ret_value_fixed = $process_ret_value;
$ret_value_fixed =~ s/\ /_/msg;
my $lang_key = $method_name.'.'.$ret_value_fixed;
if (defined $prefix) {
$lang_key = $prefix.'.'.$lang_key;
}
push @ret, $self->{'_l'}->maketext($lang_key);
} else {
push @ret, $process_ret_value;
}
}
return wantarray ? @ret : (join ', ', @ret);
}
1;
__END__
=pod
=encoding utf8
=head1 NAME
MARC::Field008::Print - MARC 008 field class for print.
=head1 SYNOPSIS
use MARC::Field008::Print;
my $obj = MARC::Field008::Print->new(%params);
my @ret = $obj->print($field008_obj);
my $ret = $obj->print($field008_obj);
=head1 METHODS
=head2 C<new>
my $obj = MARC::Field008::Print->new(%params);
Constructor.
=over 8
=item * C<lang>
( run in 0.603 second using v1.01-cache-2.11-cpan-71847e10f99 )