Sha256: 368a478e822766a041f5a39e290796e0e433883be4f4e4b3fa7038548d12c93c
Contents?: true
Size: 915 Bytes
Versions: 1
Compression:
Stored size: 915 Bytes
Contents
require 'rest_in_peace/template_sanitizer' require 'rest_in_peace/api_call' module RESTinPeace class DefinitionProxy class CollectionMethodDefinitions def initialize(target) @target = target end def get(method_name, url_template, default_params = {}) @target.send(:define_singleton_method, method_name) do |*args| if args.last.is_a?(Hash) params = default_params.merge(args.pop) else params = default_params.dup tokens = RESTinPeace::TemplateSanitizer.new(url_template, {}).tokens tokens.each do |token| params.merge!(token.to_sym => args.shift) end end call = RESTinPeace::ApiCall.new(api, url_template, self, params) call.extend(params.delete(:paginate_with)) if params[:paginate_with] call.get end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rest-in-peace-1.0.0 | lib/rest_in_peace/definition_proxy/collection_method_definitions.rb |