class Elasticsearch::Rails2::Response::Result

Encapsulates the “hit” returned from the Elasticsearch client

Wraps the raw Hash with in a ‘Hashie::Mash` instance, providing access to the Hash properties by calling Ruby methods.

@see github.com/intridea/hashie

Public Class Methods

new(attributes={}) click to toggle source

@param attributes [Hash] A Hash with document properties

# File lib/elasticsearch/rails2/response/result.rb, line 16
def initialize(attributes={})
  @result = Hashie::Mash.new(attributes)
end

Public Instance Methods

as_json(options={}) click to toggle source
# File lib/elasticsearch/rails2/response/result.rb, line 55
def as_json(options={})
  @result.as_json(options)
end
id() click to toggle source

Return document ‘_id` as `id`

# File lib/elasticsearch/rails2/response/result.rb, line 22
def id
  @result['_id']
end
method_missing(name, *arguments) click to toggle source

Delegate methods to ‘@result` or `@result._source`

Calls superclass method
# File lib/elasticsearch/rails2/response/result.rb, line 34
def method_missing(name, *arguments)
  case
  when name.to_s.end_with?('?')
    @result.__send__(name, *arguments) || ( @result._source && @result._source.__send__(name, *arguments) )
  when @result.respond_to?(name)
    @result.__send__ name, *arguments
  when @result._source && @result._source.respond_to?(name)
    @result._source.__send__ name, *arguments
  else
    super
  end
end
respond_to?(method_name, include_private = false) click to toggle source

Respond to methods from ‘@result` or `@result._source`

Calls superclass method
# File lib/elasticsearch/rails2/response/result.rb, line 49
def respond_to?(method_name, include_private = false)
  @result.respond_to?(method_name.to_sym) || \
  @result._source && @result._source.respond_to?(method_name.to_sym) || \
  super
end
type() click to toggle source

Return document ‘_type` as `_type`

# File lib/elasticsearch/rails2/response/result.rb, line 28
def type
  @result['_type']
end