NAME

Data::AnyXfer::Elastic::Import::Storage - Import storage role

SYNOPSIS

package My::Type::Of::Storage;

use Moo;
use MooX::Types::MooseLike::Base qw(:all);


with 'Data::AnyXfer::Elastic::Import::Storage';


# implement interface

1;

DESCRIPTION

This role represents a Data::AnyXfer::Elastic storage backend for import data.

The interface allows the storage and retrieval of data, persistence, and provides some helper methods.

ATTRIBUTES

METHODS REQUIRED

get_destination_info

my $info = $storage->get_destination_info;

Returns the target information for the save operation. This is relative to the type of storage backend. This could be database information, or a file system location etc. Consult your storage implementation.

list_items

my @item_names = $storage->list_items;

Returns a list of all item names. Takes no arguments.

add_item

unless ( $storage->add_item('test_item', $content) ) {

    croak 'Failed to add test_item';

}

Adds a new item to the storage backend. Fails if this item already exists. Returns a boolean indicating success or failure.

set_item

$storage->set_item('test_item', $content);

Stores content under the specified item name in the storage backend. Clobbers any existing values.

Should always return 1.

remove_item

$storage->remove_item('test_item');

Deletes the specified item from the storage backend.

get_item

my $content = $storage->get('test_item');

Retrieves the contents of an item from the storage backend.

reload

$storage->reload;

Reinitialise the storage backend. Pickup any external changes in the storage for backends where this is relevant.

Does not have to return anything.

May be implemented as a noop.

save

$storage->save;

Persist any changes to storage, beyond the life of this instance, when relevant.

Should die on failure.

cleanup

$storage->cleanup;

Cleans up any working copy, or partial and temporary files that may have been created or in use by this instance.

METHODS PROVIDED

add

$storage->add(
    item_1 => 'Hello',
    item_2 => 'World!',
);

Convenience method. Allows multiple items to be added. Already existing items will silently fail.

Use "add_item" directly if you wish to detect and handle this.

Always returns 1;

set

$storage->set(
    item_1 => 'Hello',
    item_2 => 'World!',
);

Convenience method. Allows multiple items to be set. Already existing items will be clobbered.

Always returns 1;

COPYRIGHT

This software is copyright (c) 2019, Anthony Lucas.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.