Module: Flex::Result::ActiveModel

Includes:
Scope
Defined in:
lib/flex/result/active_model.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.should_extend?(result) ⇒ Boolean

extend if the context include a Flex::ActiveModel

Returns:

  • (Boolean)


8
9
10
# File 'lib/flex/result/active_model.rb', line 8

def self.should_extend?(result)
  result.variables[:context] && result.variables[:context].include?(Flex::ActiveModel)
end

Instance Method Details

#get_docsObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/flex/result/active_model.rb', line 12

def get_docs
  # super is from flex-scopes
  docs = super
  return docs if variables[:raw_result]
  raw_result = self
  if docs.is_a?(Array)
    res = docs.map {|doc| build_object(doc)}
    res.extend(Struct::Paginable).setup(raw_result['hits']['total'], variables)
    class << res; self end.class_eval do
      define_method(:raw_result){ raw_result }
      define_method(:method_missing) do |meth, *args, &block|
        raw_result.respond_to?(meth) ? raw_result.send(meth, *args, &block) : super(meth, *args, &block)
      end
    end
    res
  else
    build_object docs
  end
end