--- trunk/lib/WebPAC/Store.pm 2006/09/26 12:47:52 714 +++ trunk/lib/WebPAC/Store.pm 2006/09/26 14:03:12 715 @@ -14,11 +14,11 @@ =head1 VERSION -Version 0.11 +Version 0.12 =cut -our $VERSION = '0.11'; +our $VERSION = '0.12'; =head1 SYNOPSIS @@ -258,6 +258,44 @@ } +=head2 load_lookup + + $data = $db->load_lookup( + database => $database, + input => $input, + key => $key, + ); + +=cut + +sub load_lookup { + my $self = shift; + my $args = {@_}; + + my $log = $self->_get_logger; + + foreach my $r (qw/input key/) { + $log->logconfess("need '$r'") unless defined($args->{$r}); + } + + my $database = $args->{database} || $self->{database} || $log->logconfess("no database?"); + + my $path = $self->{path} . "/lookup/$database/" . $args->{input} . '/' . $args->{key}; + + if (! -e $path) { + $log->warn("lookup $path doesn't exist, skipping"); + return; + } + + if (my $data = retrieve($path)) { + $log->info("loaded lookup $path"); + return $data; + } else { + $log->logwarn("can't load lookup $database/", $args->{input}, "/", $args->{key}, " from $path: $!"); + return undef; + } +} + =head2 save_lookup $db->save_lookup( @@ -291,7 +329,7 @@ $log->info("saved lookup $path"); return 1; } else { - $log->logwarn("can't store lookup $database/", $args->{input}, "/", $args->{key}, " in $path: $!"); + $log->logwarn("can't save lookup $database/", $args->{input}, "/", $args->{key}, " in $path: $!"); return undef; } }