class RESTinPeace::DefinitionProxy::CollectionMethodDefinitions

Public Class Methods

new(target) click to toggle source
# File lib/rest_in_peace/definition_proxy/collection_method_definitions.rb, line 7
def initialize(target)
  @target = target
end

Public Instance Methods

get(method_name, url_template, default_params = {}) click to toggle source
# File lib/rest_in_peace/definition_proxy/collection_method_definitions.rb, line 11
def get(method_name, url_template, default_params = {})
  @target.rip_registry[:collection] << { method: :get, name: method_name, url: url_template }
  @target.send(:define_singleton_method, method_name) do |given_params = {}|
    raise RESTinPeace::DefinitionProxy::InvalidArgument unless given_params.respond_to?(:merge)
    params = default_params.merge(given_params)

    call = RESTinPeace::ApiCall.new(api, url_template, self, params)
    call.extend(params.delete(:paginate_with)) if params[:paginate_with]
    call.get
  end
end