Mixin::ExtraFields::Driver::HashGuts

Mixin::ExtraFields::Driver::HashGuts module can store extras in a hashy object's guts.
Download

Mixin::ExtraFields::Driver::HashGuts Ranking & Summary

Advertisement

  • Rating:
  • License:
  • Perl Artistic License
  • Price:
  • FREE
  • Publisher Name:
  • Ricardo Signes
  • Publisher web site:
  • http://search.cpan.org/~rjbs/

Mixin::ExtraFields::Driver::HashGuts Tags


Mixin::ExtraFields::Driver::HashGuts Description

Mixin::ExtraFields::Driver::HashGuts module can store extras in a hashy object's guts. Mixin::ExtraFields::Driver::HashGuts module can store extras in a hashy object's guts.SYNOPSIS package Your::HashBased::Class; use Mixin::ExtraFields -fields => { driver => 'HashGuts' };This driver class implements an extremely simple storage mechanism: extras are stored on the object on which the mixed-in methods are called. By default, they are stored under the key returned by the "default_has_key" method, but this can be changed by providing a hash_key argument to the driver configuration, like so: use Mixin::ExtraFields -fields => { driver => { class => 'HashGuts', hash_key => " Something Wicked " } };METHODSIn addition to the methods required by Mixin::ExtraFields::Driver, the following methods are provided:hash_key my $key = $driver->hash_key;This method returns the key where the driver will store its extras.default_hash_keyIf no hash_key argument is given for the driver, this method is called during driver initialization. It will return a unique string to be used as the hash key.storageThis method returns the hashref of storage used for extras. Individual objects get weak references to their id within this hashref.storage_for my $stash = $driver->storage_for($object, $id);This method returns the hashref to use to store extras for the given object and id. This hashref is stored on both the hash-based object (in its hash_key entry) and on the driver (in the entry for $id in its storage hash).All objects with the same id should end up with the same hash in their hash_key field. None of these references are weakened, which means two things: first, even if all objects with a given id go out of scope, future objects with that id will retain the original extras; secondly, memory used to store extras is never reclaimed. If this is a problem, use a more sophisticated driver. Requirements: · Perl


Mixin::ExtraFields::Driver::HashGuts Related Software