Jifty::CAS::Blob - An object in Jifty's content-addressed store


Jifty documentation Contained in the Jifty distribution.

Index


Code Index:

NAME

Top

Jifty::CAS::Blob - An object in Jifty's content-addressed store

SYNOPSIS

Top

  my $blob = Jifty::CAS->retrieve('js', $key);
  my $content = $blob->content;
  my $meta = $blob->metadata;
  my $key = $blob->key;

DESCRIPTION

Top

Objects in the content-addressed store can have arbitrary metadata associated with them, in addition to storing their contents.

METHODS

Top

new HASHREF

Takes a HASHREF, with possible keys content and metadata, and creates a new object. Possible special keys in the metadata include:

hash_with

Provides the data to hash to generate the address. If no hash_with is provided, the content itself is hashed.

content

Returns the content of the blob.

metadata

Returns a hashref of metadata.

key

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;