mirror of
https://github.com/stripe/stripe-ruby.git
synced 2025-06-09 00:00:31 -04:00
* Bump Rubocop to 0.57.2 * Style/StderrPuts: Use warn instead of .puts * Style/ExpandPathArguments: Use expand_path('../test_helper', __dir__) instead of expand_path('../../test_helper', __FILE__) * Style/Encoding: Unnecessary utf-8 encoding comment * Style/StringLiterals: Prefer double-quoted strings * Style/AccessModifierDeclarations * Style/FormatStringToken: Prefer annotated tokens * Naming/UncommunicativeMethodParamName * Metrics/LineLength: set maximum line length to 100 characters * Style/IfUnlessModifier: Favor modifier if usage when having a single-line body * Style/ClassVars * Metrics/LineLength: set maximum line length to 80 characters (default) * Style/AccessModifierDeclarations: EnforcedStyle: inline
54 lines
1.5 KiB
Ruby
54 lines
1.5 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module Stripe
|
|
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] ||= StripeClient.active_client
|
|
|
|
headers = opts.clone
|
|
api_key = headers.delete(:api_key)
|
|
api_base = headers.delete(:api_base)
|
|
client = headers.delete(:client)
|
|
# Assume all remaining opts must be headers
|
|
|
|
resp, opts[:api_key] = client.execute_request(
|
|
method, url,
|
|
api_base: api_base, api_key: api_key,
|
|
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)
|
|
warn("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
|