The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Wikibase::Cache - Wikibase cache class.

SYNOPSIS

 use Wikibase::Cache;

 my $obj = Wikibase::Cache->new(%params);
 my $backend_ret = $obj->get($type, $key);
 my $backend_ret = $obj->save($type, $key, $value);

METHODS

new

 my $obj = Wikibase::Cache->new(%params);

Constructor.

Returns instance of object.

get

 my $backend_ret = $obj->get($type, $key);

Get cached value for $type and $key. Example $type is 'label' and $key is Wikidata QID like 'Q42'. Returns something like 'Douglas Adams'.

Returns backend return value(s).

save

 my $backend_ret = $obj->save($type, $key, $value);

Save cached value for $type and $key. Example $type is 'label' and $key is Wikidata QID like 'Q42' (Douglas Adams). Another example $type is 'description' and $key is Wikidata QID like 'Q42' (English science fiction writer and humourist).

Returns backend return value(s).

ERRORS

 new():
         From Class::Utils::set_params():
                 Unknown parameter '%s'.
         Backend must inherit 'Wikibase::Cache::Backend' abstract class.
         Cannot load module '%s'.
                 Error: %s

EXAMPLE1

 use strict;
 use warnings;

 use Wikibase::Cache;

 if (@ARGV < 1) {
         print STDERR "Usage: $0 qid_or_pid\n";
         exit 1;
 }
 my $qid_or_pid = $ARGV[0];

 # Object.
 my $obj = Wikibase::Cache->new;

 # Get translated QID.
 my $translated_qid_or_pid = $obj->get('label', $qid_or_pid) || $qid_or_pid;

 # Print out.
 print $translated_qid_or_pid."\n";

 # Output for nothing:
 # Usage: ./get_cached_value.pl qid_or_pid

 # Output for 'P31':
 # instance of

 # Output for 'Q42':
 # Q42

EXAMPLE2

 use strict;
 use warnings;

 use Error::Pure qw(err);
 use Wikibase::Cache;

 $Error::Pure::TYPE = 'Error';

 # Object.
 my $obj = Wikibase::Cache->new;

 # Save label for 'Q42'.
 $obj->save('label', 'Q42', 'Douglas Adams');

 # Get translated QID.
 my $translated_qid = $obj->get('label', 'Q42');

 # Print out.
 print $translated_qid."\n";

 # Output:
 # #Error [../Wikibase/Cache/Backend/Basic.pm:60] Wikibase::Cache::Backend::Basic doesn't implement save() method.

DEPENDENCIES

Class::Utils, English, Error::Pure.

SEE ALSO

Wikibase::Cache::Backend

TODO

REPOSITORY

https://github.com/michal-josef-spacek/Wikibase-Cache

AUTHOR

Michal Josef Špaček mailto:skim@cpan.org

http://skim.cz

LICENSE AND COPYRIGHT

© 2021-2023 Michal Josef Špaček

BSD 2-Clause License

VERSION

0.03