class Esearch::Presenter

Abstract base class for json response presenters

Private Class Methods

expose_primitive(key, method_name = key) click to toggle source

Define primitive exposer

@param [Symbol] key @param [Symbol] method_name

@return [undefined]

@api private

# File lib/esearch/presenter.rb, line 36
def self.expose_primitive(key, method_name = key)
  key = key.to_s # caches string in closure ;)
  define_method(method_name) do ||
    raw.fetch(key)
  end
end
expose_tagged_collection(key, presenter) click to toggle source

Define tagged collection exposer

@param [Symbol] name @param [Class:Presenter] presenter

@return [undefined]

@api private

# File lib/esearch/presenter.rb, line 17
def self.expose_tagged_collection(key, presenter)
  key = key.to_s # caches string in closure ;)
  define_method(key) do ||
    raw.fetch(key).map do |name, element|
      presenter.new(element.merge('name' => name))
    end
  end
end