View on
MetaCPAN
search.cpan.org is shutting down
For details read Perl NOC. After June 25th this page will redirect to MetaCPAN.org
Andy Wardley > Badger > Badger::Data

Download:
Badger-0.12.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  5
Open  2
View/Report Bugs
Source  

NOTE ^

This is being merged in from Template::TT3::Type. The documentation still refers to the old name and relates to TT-specific use.

NAME ^

Badger::Data - base class for data object

SYNOPSIS ^

    # defining a subclass data type
    package Badger::Data::Thing;
    use base 'Badger::Data';
    
    our $METHODS = {
        wibble => \&wibble,
        wobble => \&wobble,
    };
    
    sub wibble {
        my $self = shift;
        # some wibble code...
    }
    
    sub wobble {
        my $self = shift;
        # some wobble code...
    }

PLEASE NOTE ^

This module is being merged in from the prototype Template-TT3 code. The implementation is subject to change and the documentation may be incomplete or incorrect in places.

DESCRIPTION ^

The Badger::Data module implements a base class for the Badger::Data::Text, Badger::Data::List and Badger::Data::Hash data objects.

METHODS ^

The following methods are defined in addition to those inherited from Badger::Prototype and Badger::Base.

init(\%config)

Initialialisation method to handle any per-object initialisation. This is called by the new() method inherited from Badger::Base . In this base class, the method simply copies all items in the $config hash array into the $self object.

clone()

Create a copy of the current object.

    my $clone = $object->clone();

Additional named parameters can be provided. These are merged with the items defined in the parent object and passed to the cloned object's init() method.

    my $clone = $object->clone( g => 0.577 );

methods()

Returns a reference to a hash array containing the content of the $METHODS package variable in the current class and any base classes.

    my $methods = $object->methods;

method($name)

Returns a reference to a particular method from the hash reference returned by the methods() method.

    my $method = $object->method('ref');

When called without any arguments, it returns a reference to the entire hash reference, as per methods().

    my $method = $object->method->{ foo };

metadata($name,$value)

This method provides access to an out-of-band (i.e. stored separately from the data itself) hash array of metadata for the data item. It returns a reference to a hash array when called without arguments.

    # fetch metadata hash and add an entry
    my $metadata = $data->metadata;
    $metadata->{ author } = 'Arthur Dent';
    
    # later... print the metadata
    print $data->metadata->{ author };

It returns the value of an item in the metadata hash when called with a single argument.

    print $data->metadata('author');

It sets the value of an item when called with two arguments.

    $data->metadata( author => 'Ford Prefect' );

ref()

Returns the name of the object type, e.g. Template::TT3::Type, Template::TT3::Type::Text, Template::TT3::Type::List, etc., exactly as Perl's ref() function does.

defined()

Returns a true/false (1/0) value to indicate if the target data is defined.

undefined()

Returns a true/false (1/0) value to indicate if the target data is undefined.

true()

Returns a true/false (1/0) value to indicate if the target data has a true value (using by Perl's definition of what constitutes truth).

false()

Returns a true/false (1/0) value to indicate if the target data has a false value (using by Perl's definition of what constitutes truth).

AUTHOR ^

Andy Wardley http://wardley.org/

COPYRIGHT ^

Copyright (C) 1996-2008 Andy Wardley. All Rights Reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO. ^

Template::TT3::Type::Text, Template::TT3::Type::List and Template::TT3::Type::Hash.

syntax highlighting: