Why not adopt me?
NAME
Search::GIN::Extract::ClassMap - Delegate Extraction based on class.
VERSION
version 0.01060815
SYNOPSIS
my $extractor = Search::GIN::Extract::ClassMap->new(
extract_isa => {
'Foo' => [qw( bar baz quux )],
'Bar' => Search::GIN::Extract::AttributeIndex->new(),
'Baz' => sub { shift; my $object = shift; { a => $object->a() } },
},
extract_does => {
},
extract => {
/* either ISA or DOES */
},
);
In reality, the form is more like this:
my $extractor = Search::GIN::Extract::ClassMap->new(
extract_isa => {
'Foo' => Search::GIN::Extract::*,
'Bar' => Search::GIN::Extract::*,
'Baz' => Search::GIN::Extract::*,
},
extract_does => {
},
extract => {
/* either ISA or DOES */
},
);
With the minor exception of the 2 exception cases, passing an array ref, or a coderef, which internally are typecasted to Search::GIN::Extract::Attributes and Search::GIN::Extract::Callback automatically.
WARNING
This is an early release, API is prone to change without much warning, but best attempts will be made to avoid the need.
ROLES
Search::GIN::Extract
ATTRIBUTES
extract_isa
Applied on all objects where $object->isa( $classname );
types:
HashRef[ "Extractor" in Search::GIN::Extract::ClassMap::Types ] ->
"CoercedClassMap" in Search::GIN::Extract::ClassMap::Types ->
Search::GIN::Extract::ClassMap::Isa
HashRef's are automatically type-cast.
extract_does
Applied on all objects where $object->does( $classname );
types:
HashRef[ "Extractor" in Search::GIN::Extract::ClassMap::Types ] ->
"CoercedClassMap" in Search::GIN::Extract::ClassMap::Types ->
Search::GIN::Extract::ClassMap::Does
HashRef's are automatically type-cast.
extract_does
Applied on all objects where $object->does( $classname ) OR $object->isa( $classname );
this doesn't make complete sense, but its handy for lazy people.
types:
HashRef[ "Extractor" in Search::GIN::Extract::ClassMap::Types ]
"CoercedClassMap" in Search::GIN::Extract::ClassMap::Types ->
Search::GIN::Extract::ClassMap::Like
HashRef's are automatically type-cast.
METHODS
extract_values
for: Search::GIN::Extract
AUTHOR
Kent Fredric <kentnl@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2011 by Kent Fredric.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.