module Excon
def stub_for(request_params={})
-
(Hash
- response params to return from matched request or block to call with params)
Parameters:
-
request
(Hash
) -- params to match against, omitted params match all
def stub_for(request_params={}) if method = request_params.delete(:method) request_params[:method] = method.to_s.downcase.to_sym end Excon.stubs.each do |stub, response_params| captures = { :headers => {} } headers_match = !stub.has_key?(:headers) || stub[:headers].keys.all? do |key| case value = stub[:headers][key] when Regexp if match = value.match(request_params[:headers][key]) captures[:headers][key] = match.captures end match else value == request_params[:headers][key] end end non_headers_match = (stub.keys - [:headers]).all? do |key| case value = stub[key] when Regexp if match = value.match(request_params[key]) captures[key] = match.captures end match else value == request_params[key] end end if headers_match && non_headers_match request_params[:captures] = captures return [stub, response_params] end end nil end