Class: RESTinPeace::DefinitionProxy::CollectionMethodDefinitions

Inherits:
Object
  • Object
show all
Defined in:
lib/rest_in_peace/definition_proxy/collection_method_definitions.rb

Instance Method Summary collapse

Constructor Details

#initialize(target) ⇒ CollectionMethodDefinitions

Returns a new instance of CollectionMethodDefinitions.



7
8
9
# File 'lib/rest_in_peace/definition_proxy/collection_method_definitions.rb', line 7

def initialize(target)
  @target = target
end

Instance Method Details

#get(method_name, url_template, default_params = {}) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
# 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