NAME
    DBIx::NoSQL::Store::Manager - DBIx::NoSQL as a Moose object store

VERSION
    version 0.2.2

SYNOPSIS
        package MyStore;

        use Moose;

        extends 'DBIx::NoSQL::Store::Manager';

        __PACKAGE__->meta->make_immutable;

DESCRIPTION
    Just like DBIx::NoSQL is a layer providing the flexibility of a NoSQL
    store on top of DBIx::Class, *DBIx::NoSQL::Store::Manager* provides a
    mechanism to drop and retrieve Moose objects from that store.

    As can be seen in the "SYNOPSIS", the store class itself is typically
    fairly bare; most of the work is done by
    DBIx::NoSQL::Store::Manager::Model, the role the models (i.e., the
    classes to be stored in the database) must consume.

    *DBIx::NoSQL::Store::Manager* extends DBIx::NoSQL and inherits all its
    methods.

METHODS
  new( models => \@classes )
    Creates a new store manager.

   Arguments
    models => \@classes
    models => $class
        Classes to be imported as models for the store. Namespaces can also
        be given with a trailing "::", in which case all modules found under
        that namespace will be imported. If only one class is to be used, it
        can be passed as a single string.

        If not given, defaults to the "Model" sub-namespace under the
        store's (e.g., for store class "MyStore", that would be
        "MyStore::Model::").

            my $store = MyStore->new; 
                # will import MyStore::Model::*
    
            my $store = MyStore->new( models => [ 'Foo::Bar', 'Something::Else' ] );
                # imports specific classes
        
            my $store = MyStore->new( models => [ 'Foo::Bar', 'MyStore::Model::' ] );
                # imports Foo::Bar and all classes under MyStore::Model::*

  model_names()
    Returns the name of all models known to the store.

  model_classes()
    Returns the full class name of all models known to the store.

  model_class( $name )
    Returns the full class name of the given model.

  create( $model_name, @args )
  new_model_object( $model_name, @args )
    Shortcut constructor for a model class of the store. Equivalent to

        my $class = $store->model_class( $model_name );
        my $thingy = $class->new( store_db => $store, @args );

SEE ALSO
    * Original blog entry introducing the module:
    <http://babyl.dyndns.org/techblog/entry/shaving-the-white-whale>

  Similar Modules
    * KiokuDB

    * Elastic::Model

AUTHOR
    Yanick Champoux <yanick@babyl.dyndns.org>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2012 by Yanick Champoux.

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

