Skip to content
Automatically collect index metadata from MooseX::AttributeIndexes consuming models
Perl Perl6
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib/Search/GIN/Extract
maint
misc
t
xt/smoke
.gitignore
.mailmap
.perltidyrc
.travis.yml
CONTRIBUTING.pod
Changes
INSTALL.SKIP
LICENSE
MANIFEST.SKIP
Makefile.PL
README.mkdn
dist.ini
dist.ini.meta
perlcritic.rc
weaver.ini

README.mkdn

NAME

Search::GIN::Extract::AttributeIndexes - Automatically collect index metadata from MooseX::AttributeIndexes consuming models.

VERSION

version 2.000001

SYNOPSIS

On your models

use MooseX::Declare;

class Model::Item {
  use MooseX::Types::Moose qw(:all ):
  use MooseX::AttributeIndexes;

  has 'attr' => (
    isa => Str,
    is => 'rw',
    indexed => 1
  );
  has 'attr_bar' => (
    isa => Str,
    is => 'rw',
    primary_index => 1
  );
}

In KiokuX::Model extensions

use MooseX::Declare;

class Foo extends KiokuX::Model {
  use Search::GIN::Extract::AttributeIndexes;

  around _build_connect_args ( Any @args ) {

    my $args = $self->$orig( @args );
    push @{ $args }, extract => Search::GIN::Extract::AttributeIndexes->new();
    return $args;

  }
}

In Instantiations of KiokuDB

my $dir = KiouDB->new(
  backend => KiokuDB::Backend::BDB::GIN->new(
    extract => Search::GIN::Extract::AttributeIndexes->new()
  )
);

DESCRIPTION

This module is an extension for the Search::GIN search and index framework which allows one to operate objects of any class consuming MooseX::AttributeIndexes, and extracting values from those objects for use in indexing.

This allows people to define how an object should be indexed on the class definition itself by adding properties to attributes.

AUTHOR

Kent Fredric kentnl@cpan.org

COPYRIGHT AND LICENSE

This software is copyright (c) 2015 by Kent Fredric kentfredric@gmail.com.

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

Something went wrong with that request. Please try again.