Module: Flex::Result::DocumentLoader

Defined in:
lib/flex/result/document_loader.rb

Overview

adds sugar to documents with the following structure:

{
    "_index" : "twitter",
    "_type" : "tweet",
    "_id" : "1",
}

Defined Under Namespace

Modules: ModelClasses

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.should_extend?(result) ⇒ Boolean

extend if result has a structure like a document

Returns:

  • (Boolean)


34
35
36
# File 'lib/flex/result/document_loader.rb', line 34

def self.should_extend?(result)
  result.is_a? Document
end

Instance Method Details

#loadObject



42
43
44
# File 'lib/flex/result/document_loader.rb', line 42

def load
  model_class.find(self['_id']) if model_class
end

#load!Object

Raises:

  • (DocumentMappingError)


46
47
48
49
50
# File 'lib/flex/result/document_loader.rb', line 46

def load!
  raise DocumentMappingError, "the '#{index_basename}/#{self['_type']}' document cannot be mapped to any class." \
        unless model_class
  model_class.find self['_id']
end

#model_classObject



38
39
40
# File 'lib/flex/result/document_loader.rb', line 38

def model_class
  @model_class ||= ModelClasses.map["#{index_basename}/#{self['_type']}"]
end