Zing::Store::Disk - Disk Storage
Disk Storage Abstraction
use Zing::Store::Disk; use Zing::Encoder::Dump; my $disk = Zing::Store::Disk->new( encoder => Zing::Encoder::Dump->new ); # $disk->drop;
This package provides an in-memory (only) storage adapter for use with data persistence abstractions.
This package inherits behaviors from:
Zing::Store
This package uses type constraints from:
Zing::Types
This package has the following attributes:
root(Str)
This attribute is read-only, accepts (Str) values, and is optional.
(Str)
This package implements the following methods:
decode(Str $data) : HashRef
The decode method decodes the JSON data provided and returns the data as a hashref.
# given: synopsis $disk->decode('{"status"=>"ok"}');
drop(Str $key) : Int
The drop method removes (drops) the item from the datastore.
# given: synopsis $disk->drop('zing:main:global:model:temp');
encode(HashRef $data) : Str
The encode method encodes and returns the data provided as JSON.
# given: synopsis $disk->encode({ status => 'ok' });
keys(Str @keys) : ArrayRef[Str]
The keys method returns a list of keys under the namespace of the datastore or provided key.
# given: synopsis my $keys = $disk->keys('zing:main:global:model:temp');
# given: synopsis $disk->send('zing:main:global:model:temp', { status => 'ok' }); my $keys = $disk->keys('zing:main:global:model:temp');
lpull(Str $key) : Maybe[HashRef]
The lpull method pops data off of the top of a list in the datastore.
# given: synopsis $disk->lpull('zing:main:global:model:items');
# given: synopsis $disk->rpush('zing:main:global:model:items', { status => 'ok' }); $disk->lpull('zing:main:global:model:items');
lpush(Str $key, HashRef $val) : Int
The lpush method pushed data onto the top of a list in the datastore.
# given: synopsis $disk->lpush('zing:main:global:model:items', { status => '1' });
# given: synopsis $disk->lpush('zing:main:global:model:items', { status => '0' });
recv(Str $key) : Maybe[HashRef]
The recv method fetches and returns data from the datastore by its key.
# given: synopsis $disk->recv('zing:main:global:model:temp');
# given: synopsis $disk->send('zing:main:global:model:temp', { status => 'ok' }); $disk->recv('zing:main:global:model:temp');
rpull(Str $key) : Maybe[HashRef]
The rpull method pops data off of the bottom of a list in the datastore.
# given: synopsis $disk->rpull('zing:main:global:model:items');
# given: synopsis $disk->rpush('zing:main:global:model:items', { status => 1 }); $disk->rpush('zing:main:global:model:items', { status => 2 }); $disk->rpull('zing:main:global:model:items');
rpush(Str $key, HashRef $val) : Int
The rpush method pushed data onto the bottom of a list in the datastore.
# given: synopsis $disk->rpush('zing:main:global:model:items', { status => 'ok' });
# given: synopsis $disk->rpush('zing:main:global:model:items', { status => 'ok' }); $disk->rpush('zing:main:global:model:items', { status => 'ok' });
send(Str $key, HashRef $val) : Str
The send method commits data to the datastore with its key and returns truthy.
# given: synopsis $disk->send('zing:main:global:model:temp', { status => 'ok' });
size(Str $key) : Int
The size method returns the size of a list in the datastore.
# given: synopsis my $size = $disk->size('zing:main:global:model:items');
# given: synopsis $disk->rpush('zing:main:global:model:items', { status => 'ok' }); my $size = $disk->size('zing:main:global:model:items');
slot(Str $key, Int $pos) : Maybe[HashRef]
The slot method returns the data from a list in the datastore by its index.
# given: synopsis my $model = $disk->slot('zing:main:global:model:items', 0);
# given: synopsis $disk->rpush('zing:main:global:model:items', { status => 'ok' }); my $model = $disk->slot('zing:main:global:model:items', 0);
test(Str $key) : Int
The test method returns truthy if the specific key (or datastore) exists.
# given: synopsis $disk->rpush('zing:main:global:model:items', { status => 'ok' }); $disk->test('zing:main:global:model:items');
# given: synopsis $disk->drop('zing:main:global:model:items'); $disk->test('zing:main:global:model:items');
Al Newkirk, awncorp@cpan.org
awncorp@cpan.org
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".
Wiki
Project
Initiatives
Milestones
Contributing
Issues
To install Zing, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Zing
CPAN shell
perl -MCPAN -e shell install Zing
For more information on module installation, please visit the detailed CPAN module installation guide.