NAME
Zing::Store - Storage Abstraction
ABSTRACT
Data Storage Abstraction
SYNOPSIS
DESCRIPTION
This package provides a data persistence interface to be implemented by data storage abstractions.
INHERITS
This package inherits behaviors from:
LIBRARIES
This package uses type constraints from:
ATTRIBUTES
This package has the following attributes:
encoder
encoder(Encoder)
This attribute is read-only, accepts (Encoder)
values, and is optional.
METHODS
This package implements the following methods:
args
args(Str
$env
) : (Any)
The args method parses strings with key/value data (typically from an environment variable) meant to be used in object construction.
decode
decode(Str
$data
) : HashRef
The decode method should decode the data provided and returns the data as a hashref.
- decode example #1
-
# given: synopsis
$store
->decode(
'{ status => "ok" }'
);
# e.g.
# $ENV{ZING_ENCODER} # Zing::Encoder::Dump
drop
drop(Str
$key
) : Int
The drop method should remove items from the datastore by key.
encode
encode(HashRef
$data
) : Str
The encode method should encode and return the data provided in a format suitable for the underlying storage mechanism.
keys
keys
(Str
@keys
) : ArrayRef[Str]
The keys method should return a list of keys under the namespace provided including itself.
lpull
lpull(Str
$key
) : Maybe[HashRef]
The lpull method should pop data off of the top of a list in the datastore.
lpush
lpush(Str
$key
) : Int
The lpush method should push data onto the top of a list in the datastore.
- lpush example #1
-
# given: synopsis
# $store->rpush('zing:main:global:model:items', { status => '1' });
# $store->rpush('zing:main:global:model:items', { status => '2' });
$store
->lpush(
'zing:main:global:model:items'
, {
status
=>
'0'
});
recv
recv
(Str
$key
) : Maybe[HashRef]
The recv method should fetch and return data from the datastore by its key.
rpull
rpull(Str
$key
) : Maybe[HashRef]
The rpull method should pop data off of the bottom of a list in the datastore.
rpush
rpush(Str
$key
, HashRef
$val
) : Int
The rpush method should push data onto the bottom of a list in the datastore.
- rpush example #1
-
# given: synopsis
$store
->rpush(
'zing:main:global:model:items'
, {
status
=>
'ok'
});
send
send
(Str
$key
, HashRef
$val
) : Str
The send method should commit data to the datastore with its key and return truthy (or falsy if not).
size
size(Str
$key
) : Int
The size method should return the size of a list in the datastore.
slot
slot(Str
$key
, Int
$pos
) : Maybe[HashRef]
The slot method should return the data from a list in the datastore by its position in the list.
test
test(Str
$key
) : Int
The test method should return truthy if the specific key exists in the datastore.
- test example #1
-
# given: synopsis
# $store->rpush('zing:main:global:model:items', { status => 'ok' });
$store
->test(
'zing:main:global:model:items'
);
AUTHOR
Al Newkirk, awncorp@cpan.org
LICENSE
Copyright (C) 2011-2019, Al Newkirk, et al.
This is free software; you can redistribute it and/or modify it under the terms of the The Apache License, Version 2.0, as elucidated in the "license file".