Sha256: 75f9b12a2e22adc4660c42f64b916c58c3b74330ad97e089473402d724d762b0
Contents?: true
Size: 1.18 KB
Versions: 4
Compression:
Stored size: 1.18 KB
Contents
module Screenbeacon module APIOperations module Request module ClassMethods OPTS_KEYS_TO_PERSIST = Set[:api_id, :api_token, :api_base, :screenbeacon_version] def request(method, url, params={}, opts={}) opts = Util.normalize_opts(opts) headers = opts.clone api_id = headers.delete(:api_id) api_token = headers.delete(:api_token) api_base = headers.delete(:api_base) # Assume all remaining opts must be headers response, opts[:api_id], opts[:api_token] = Screenbeacon.request(method, url, api_id, api_token, params, headers, api_base) # Hash#select returns an array before 1.9 opts_to_persist = {} opts.each do |k, v| if OPTS_KEYS_TO_PERSIST.include?(k) opts_to_persist[k] = v end end [response, opts_to_persist] 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
4 entries across 4 versions & 1 rubygems