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