Sha256: a388877b308b815f54ad977617dabd75fd87efc0b2ddcf29c95d42b4619625f5
Contents?: true
Size: 1.47 KB
Versions: 1
Compression:
Stored size: 1.47 KB
Contents
module Helio module APIOperations module Request module ClassMethods def request(method, url, params = {}, opts = {}) warn_on_opts_in_params(params) opts = Util.normalize_opts(opts) opts[:client] ||= HelioClient.active_client headers = opts.clone api_token = headers.delete(:api_token) api_base = headers.delete(:api_base) client = headers.delete(:client) # Assume all remaining opts must be headers resp, opts[:api_token] = client.execute_request( method, url, api_base: api_base, api_token: api_token, headers: headers, params: params ) # Hash#select returns an array before 1.9 opts_to_persist = {} opts.each do |k, v| opts_to_persist[k] = v if Util::OPTS_PERSISTABLE.include?(k) end [resp, opts_to_persist] end private def warn_on_opts_in_params(params) Util::OPTS_USER_SPECIFIED.each do |opt| if params.key?(opt) $stderr.puts("WARNING: #{opt} should be in opts instead of params.") end end end end def self.included(base) base.extend(ClassMethods) end protected def request(method, url, params = {}, opts = {}) opts = @opts.merge(Util.normalize_opts(opts)) self.class.request(method, url, params, opts) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
helio-ruby-0.1.0 | lib/helio/api_operations/request.rb |