MooseX::AttributeIndexes - Advertise metadata about your Model-Representing Classes to Any Database tool.
version 1.0.3
package My::Package; use Moose; use MooseX::AttributeIndexes; use MooseX::Types::Moose qw( :all ); has 'id' => ( isa => Str, is => 'rw', primary_index => 1, ); has 'name' => ( isa => Str, is => 'rw', indexed => 1, ); has 'foo' => ( isa => Str, is => 'rw', );
package TestScript; use My::Package; my $foo = My::Package->new( id => "Bob", name => "Smith", foo => "Bar", ); $foo->attribute_indexes # { id => 'Bob', name => 'Smith' }
Search::GIN::Extract::Callback( extract => sub { my ( $obj, $callback, $args ) = @_; if( $obj->does( 'MooseX::AttributeIndexes::Provider') ){ return $obj->attribute_indexes; } } );
Since 0.01001007, the following notation is also supported:
has 'name' => ( ... indexed => sub { my ( $attribute_meta, $object, $value ) = @_; return "$_" ; # $_ == $value } );
Noting of course, $value is populated by the meta-accessor.
This is a simple way to add exceptions for weird cases for things you want to index that don't behave like they should.
Search::GIN::Extract::AttributeIndexes
Kent Fredric <kentnl@cpan.org>
Jesse Luehrs <doy@cpan.org>
This software is copyright (c) 2013 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.
To install MooseX::AttributeIndexes, copy and paste the appropriate command in to your terminal.
cpanm
cpanm MooseX::AttributeIndexes
CPAN shell
perl -MCPAN -e shell install MooseX::AttributeIndexes
For more information on module installation, please visit the detailed CPAN module installation guide.