Badger::Codec::Chain

NAME

Top Close Open

Badger::Codec::Chain - encode/decode data using multiple codecs

SYNOPSIS

Top Close Open
use Badger::Codec::Chain;

# compact form
my $codec = Badger::Codec::Chain->new('storable+base64');

# explicit form
my $codec = Badger::Codec::Chain->new('storable', 'base64');

# encode/decode data using codec chain
my $enc   = $codec->encode({ pi => 3.14, e => 2.718 });
my $dec   = $codec->decode($encoded);

DESCRIPTION

Top Close Open

This module implements a subclass of Badger::Codec which chains together any number of other codec modules.

METHODS

Top Close Open

new(@codecs)

Top Close Open

Constructor method to create a new codec chain. The codecs can be specified by name or as references to Badger::Codec objects.

# by name
my $codec = Badger::Codec::Chain->new('storable', 'base64');

# by object reference
my $codec = Badger::Codec::Chain->new(
    Badger::Codec->codec('storable'), 
    Badger::Codec->codec('base64'), 
);

You can also use the compact form where multiple codec names are separated by +.

# compact form
my $codec = Badger::Codec::Chain->new('storable+base64');

encode($data)

Top Close Open

Encodes the data referenced by the first argument using all the codecs in the chain.

$encoded = $codec->encode($data);

decode($html)

Top Close Open

Decodes the encoded data passed as the first argument using all the codecs in the chain in reverse order.

$decoded = $codec->decode($encoded);

encoder()

Top Close Open

Returns a reference to a subroutine which performs the encoding operation.

decoder()

Top Close Open

Returns a reference to a subroutine which performs the decoding operation.

INTERNAL METHODS

Top Close Open

coder(@coders)

Top Close Open

Internal method to construct an encoder or decoder subroutine for a codec chain.

AUTHOR

Top Close Open

Andy Wardley http://wardley.org/

COPYRIGHT

Top Close Open

Copyright (C) 2005-2009 Andy Wardley. All rights reserved.

Fork Me on Github