NAME

DustyDB::Record - role for DustyDB models

VERSION

version 0.06

SYNOPSIS

package MyModel;
use DustyDB::Object;

has key name => (
    is  => 'rw',
    isa => 'Str',
);
has description => (
    is => 'rw',
    isa => 'Str',
);

DESCRIPTION

Do not use this class directly. Use DustyDB::Object instead. The attributes and methods shown here are available in any class that uses DustyDB::Object because such classes do this role.

ATTRIBUTES

db

This is a required attribute that must be set to a DustyDB object that will be used to save this. In general, you will never need to set this yourself.

However, if you want to construct your record class directly, you can do something like this.

my $db = DustyDB->new( path => 'foo.db' );
my $object = MyModel->new( db => $db, name => 'foo', description => 'bar' );

METHODS

save

my $key = $self->save;

This method saves the object into the database and returns a key identifying the object. The key is a hash reference created using the attributes that have the DustyDB::Key trait set.

delete

$self->delete;

This method delets the object from the database. This does not invalidate the object in memory or alter it in any other way.

CAVEATS

When creating your models you cannot have an attribute named db or an attribute named class_name. The db name is used directly as an attribute by this role and class_name may be used when storing the data in some cases.