Sha256: e22e8545fd59c209f3b5d53aa1a69ff52b850d01bb56ee55a1a8e8d5e6d0d61d
Contents?: true
Size: 1.06 KB
Versions: 1
Compression:
Stored size: 1.06 KB
Contents
# encoding: UTF-8 module Esearch # Abstract base class for json response presenters class Presenter include Adamantium::Flat, AbstractType, Concord.new(:raw) # Define tagged collection exposer # # @param [Symbol] name # @param [Class:Presenter] presenter # # @return [undefined] # # @api private # 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 private_class_method :expose_tagged_collection # Define primitive exposer # # @param [Symbol] key # @param [Symbol] method_name # # @return [undefined] # # @api private # 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 private_class_method :expose_primitive end # Presenter end # Esearch
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
esearch-0.2.2 | lib/esearch/presenter.rb |