--- trunk/lib/WebPAC/Normalize.pm 2007/11/19 16:33:09 1048 +++ trunk/lib/WebPAC/Normalize.pm 2007/11/27 22:31:09 1066 @@ -7,6 +7,7 @@ _debug _pack_subfields_hash + to search_display search display sorted rec1 rec2 rec @@ -52,7 +53,7 @@ =cut -our $VERSION = '0.35'; +our $VERSION = '0.36'; =head1 SYNOPSIS @@ -269,13 +270,30 @@ Those functions generally have to first in your normalization file. +=head2 to + +Generic way to set values for some name + + to('field-name', 'name-value' => rec('200','a') ); + +There are many helpers defined below which might be easier to use. + +=cut + +sub to { + my $type = shift or confess "need type -- BUG?"; + my $name = shift or confess "needs name as first argument"; + my @o = grep { defined($_) && $_ ne '' } @_; + return unless (@o); + $out->{$name}->{$type} = \@o; +} + =head2 search_display Define output for L and L at the same time search_display('Title', rec('200','a') ); - =cut sub search_display { @@ -288,7 +306,7 @@ =head2 tag -Old name for L, but supported +Old name for L, it will probably be removed at one point. =cut @@ -304,15 +322,7 @@ =cut -sub _field { - my $type = shift or confess "need type -- BUG?"; - my $name = shift or confess "needs name as first argument"; - my @o = grep { defined($_) && $_ ne '' } @_; - return unless (@o); - $out->{$name}->{$type} = \@o; -} - -sub display { _field( 'display', @_ ) } +sub display { to( 'display', @_ ) } =head2 search @@ -322,7 +332,7 @@ =cut -sub search { _field( 'search', @_ ) } +sub search { to( 'search', @_ ) } =head2 sorted @@ -332,8 +342,7 @@ =cut -sub sorted { _field( 'sorted', @_ ) } - +sub sorted { to( 'sorted', @_ ) } =head1 Functions to extract data from input