| Jifty documentation | Contained in the Jifty distribution. |
Jifty::CAS::Blob - An object in Jifty's content-addressed store
my $blob = Jifty::CAS->retrieve('js', $key);
my $content = $blob->content;
my $meta = $blob->metadata;
my $key = $blob->key;
Objects in the content-addressed store can have arbitrary metadata associated with them, in addition to storing their contents.
Takes a HASHREF, with possible keys content and metadata, and creates a new object. Possible special keys in the metadata include:
Provides the data to hash to generate the address. If no hash_with
is provided, the content itself is hashed.
Returns the content of the blob.
Returns a hashref of metadata.
Returns the key calculated for this content.
| Jifty documentation | Contained in the Jifty distribution. |
package Jifty::CAS::Blob; use strict; use base 'Class::Accessor::Fast'; use Digest::MD5 'md5_hex'; use Compress::Zlib ();
__PACKAGE__->mk_accessors(qw(content metadata key)); sub new { my $class = shift; my $args = shift; my $self = $class->SUPER::new( { content => "", metadata => {}, %$args, } ); $self->key( md5_hex( $self->metadata->{hash_with} || $self->content ) ); return $self; } 1;