NAME

Mojolicious::Plugin::AnyData

VERSION

version 1.1

DESCRIPTION

Mojolicious::Plugin::AnyData — using your perl-data in memory like a database source.

SYNOPSIS

    use Mojolicious::Plugin::AnyData
    
    sub startup {
	my $self = shift;
	
	$self->plugin(any_data => {
	    load_data => {
                cars => [
		    ['id', 'model'],
		    [ 1, 'Honda'], ],
		},
	    },
	    helper => 'db',
	});
	
	# ... or
	$self->plugin(any_data => {
	    func => ['cars', 'XML', 'cars.xml', 'ad_import'],
	});
	
	# ... or
	$self->plugin(any_data => {
	    load_data => 'my_test_data.conf'
	});
    }

CONFIGURATION

There is no need to required option, you can load data in every moment in your code, and helper turns to default value 'db' if not specified.

You can change DBD::AnyData instance to your production database handler, just by changing a development mode to production in your project:

app->mode('production');

METHOD/HELPERS

Mojolicious::Plugin::AnyData provides all method available from DBD::AnyData and DBI.

A helper will be created with your specified name or 'db' by default.

On startup available two additional methods:

load_data

Load data from perl-struct (hashref) into the memory. Supports several tables at the same time.

    $self->plugin(any_data => {
	load_data => {
	    artists => [
		['id_artist', 'artist_name'],
		[          1, 'Metallica'],
		[          2, 'Dire Staits'],
	    ],
	    releases => [
		['id_release', 'release_name',  'id_artist'],
		[           1, 'Death Magnetic',          1],
		[           2, 'Load',                    1],
	    ],
	},
    });
    

You also can load data stuctures from separate config using Mojolicious::Plugin::Config:

    $self->plugin(any_data => {
	load_data => 'test_data.conf',
	helper    => 'db'
    });

Plugin automatically checks data type (hashref or simple scalar) and then, if it simple scalar, tries to use this as a file name to load data by Mojolicious::Plugin::Config.

func

Runs DBD::AnyData::func method after creating AnyData-object with params:

    $self->plugin(any_data => {
	func => ['cars', 'XML', 'cars.xml', 'ad_import'],
    });

SEE ALSO

Mojolicious, DBI, DBD::AnyData

AUTHOR

Alexander Ponomarev, <shootnix@gmail.com>

BUGS/CONTRIBUTING

Please report any bugs or feature requests to through the web interface at https://github.com/shootnix/Mojolicious-Plugin-AnyData/issues. If you want to contribute changes or otherwise involve yourself in development, feel free to fork the Git repository from https://github.com/shootnix/Mojolicious-Plugin-AnyData/.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 66:

Non-ASCII character seen before =encoding in '—'. Assuming UTF-8