Ignore:
Timestamp:
1999-07-14T14:54:20+12:00 (25 years ago)
Author:
sjboddie
Message:

moved string formatting for sorting into it's own module

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl/perllib/classify/AZList.pm

    r360 r385  
    22
    33package AZList;
     4
     5use sorttools;
    46
    57sub new {
     
    3436    if (defined $metavalue && $metavalue =~ /\w/) {
    3537    if ($self->{'metaname'} eq 'Creator') {
    36         $self->format_string_name_english (\$metavalue);
     38        &sorttools::format_string_name_english (\$metavalue);
    3739    } else {
    38         $self->format_string_english (\$metavalue);
     40        &sorttools::format_string_english (\$metavalue);
    3941    }
    4042    if (defined $self->{'list'}->{$doc_OID}) {
     
    201203}
    202204
    203 # format an english name for sorting
    204 # i.e. convert to lowercase, put surname before
    205 # first names etc.   
    206 sub format_string_name_english {
    207     my $self = shift (@_);
    208     my ($stringref) = @_;
    209 
    210     $$stringref =~ tr/A-Z/a-z/;
    211     $$stringref =~ s/[^a-z0-9 ]//g;
    212     $$stringref =~ s/\s+/ /g;
    213     $$stringref =~ s/^\s+//;
    214     my @names = split / /, $$stringref;
    215     my $surname = pop @names;
    216     while (scalar @names && $surname =~ /^(jnr|snr)$/i) {
    217     $surname = pop @names;
    218     }
    219     $$stringref = $surname . " " . $$stringref;
    220 }
    221 
    222 # format an english string for sorting
    223 # i.e. convert to lowercase, remove the, a or an
    224 # from beginning of string etc.
    225 sub format_string_english {
    226     my $self = shift (@_);
    227     my ($stringref) = @_;
    228 
    229     $$stringref =~ tr/A-Z/a-z/;
    230     $$stringref =~ s/[^a-z0-9 ]//g;
    231     $$stringref =~ s/^\s*(the|a|an)\b//;
    232     $$stringref =~ s/^\s+//;
    233 }
    234 
    2352051;
Note: See TracChangeset for help on using the changeset viewer.