Mixin::ExtraFields::Driver::HashGutsMixin::ExtraFields::Driver::HashGuts module can store extras in a hashy object's guts. | |
Download |
Mixin::ExtraFields::Driver::HashGuts Ranking & Summary
Advertisement
- 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