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