NAME ElasticSearchX::Model::Generator - Create a suite of ESX::Model classes from an existing mapping. VERSION version 0.1.8 SYNOPSIS use ElasticSearchX::Model::Generator qw( generate_model ); my $instance = generate_model( mapping_url => 'http://someserver:port/path/_mapping', generated_base_class => 'MyModel', base_dir => "../path/to/export/dir/" ); for my $document ( $instance->documents ) { # Write the document to disk $document->write(); # Alternatively, load the generated document into memory avoiding writing to disk $document->evaluate(); } DESCRIPTION ALPHA Code: This class at present only contains code sufficient for very simple package generation for use in creating a model from an existing mapping for the purposes of search. EXPORTS generate_model this is just a sugar syntax for ESX:M:G->new() you can elect to import to make your code slightly shorter. METHODS index_names @names = $esmg->index_names returns the names of all indexes specified in the "_mapping" index $data = $esmg->index('') # If indexes are not in the data set $data = $esmg->index('cpan_v1') # if indexes are in the data set Returns the data set nested under the specified index. type_names @names = $esmg->type_names( $index ) @names = $esmg->type_names('') # return all types defined in an index-free dataset. @names = $esmg->type_names('cpan_v1') # return all types in the cpan_v1 index. type $data = $esmg->type( $index, $type ) $data = $esmg->type( '', 'File' ) # get type 'File' from an index-free dataset $data = $esmg->type( 'cpan_v1', 'File' ) # get type 'File' from the cpan_v1 index property_names @names = $esmg->property_names( $index, $type ) properties $properties = $esmg->properties( $index, $type ) property $property = $esmg->property( $index, $type, $propertyname ) documents @documents = $esmg->documents(); # all documents for all indexes @documents = $esmg->documents('cpan_v1'); # all documents for cpan_v1 @documents = $esmg->documents(''); # all documents for an index-free dataset. ATTRIBUTES mapping_url rw, required base_dir rw, required generator_base_class rw, default: ElasticSearchX::Model::Generator generated_base_class rw, default: MyModel document_generator_class lazy attribute_generator_class lazy typename_translator_class lazy document_generator lazy attribute_generator lazy typename_translator lazy PRIVATE ATTRIBUTES _mapping_content lazy _ua lazy _mapping_data lazy PRIVATE METHODS _build__ua returns an "HTTP::Tiny" instance. _build_document_generator_class generator_base_class + '::DocumentGenerator' _build_document_generator returns an instance of $document_generator_class _build_attribute_generator_class generator_base_class + '::AttributeGenerator' _build_attribute_generator returns an instance of $attribute_generator_class _build_typename_translator_class generator_base_class + '::TypenameTranslator' _build_typename_translator returns an instance of $typename_translator_class _build__mapping_content returns the content of the URL at "mapping_url" _build__mapping_data returns the decoded data from "JSON" stored in "_mapping_content" AUTHOR Kent Fredric COPYRIGHT AND LICENSE 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.