NAME

EntityModel::Support::Perl::Base - base class for entity instances

VERSION

version 0.003

SYNOPSIS

say $_->name foreach Entity::Thing->find({name=>'test'});

DESCRIPTION

All entities are derived from this base class by default.

new

Instantiate from an ID or a pre-fabricated object (hashref).

  • Create a new, empty object:

    EntityModel::Support::Perl::Base->new(1)
  • Instantiate from ID:

    EntityModel::Support::Perl::Base->new(1)
    EntityModel::Support::Perl::Base->new('123-456')
    EntityModel::Support::Perl::Base->new([123,456])
  • Create an object and assign initial values:

    EntityModel::Support::Perl::Base->new({ x => 1, y => 2 })

Any remaining options indicate callbacks:

  • before_commit - just before commit

  • after_commit - after this has been committed to the database

  • on_load - when the data has been read from storage

  • on_not_found - when storage reports that this item is not found

The before_XXX callbacks are also aliased to on_XXX for convenience.

_event

Pass the given event through to any defined callbacks.

_spec_from_hashref

Private method to generate hashref containing spec information suitable for bless to requested class, given a hashref which represents the keys/values for the object.

This will flatten any Entity objects down to the required ID key+values.

create

Create a new object.

Takes a hashref, and sets the flag so that ->commit does the insert.

_update

Write current values back to storage.

_select

Populate this instance with values from the database.

_pending_insert

Returns true if this instance is due to be committed to the database.

_pending_update

Returns true if this instance is due to be committed to the database.

_insert

Insert this instance into the db.

commit

Commit any pending changes to the database.

revert

Revert any pending changes to the database.

id

Primary key (id) for this instance.

fromID

Instantiate from an ID.

remove

Remove this instance from the database.

_view

Returns the view corresponding to this object.

AUTHOR

Tom Molesworth <cpan@entitymodel.com>

LICENSE

Copyright Tom Molesworth 2008-2011. Licensed under the same terms as Perl itself.