class ResponseMate::Connection
This class provides a layer above the HTTP client
Attributes
client[RW]
Public Class Methods
new()
click to toggle source
# File lib/response_mate/connection.rb, line 8 def initialize @client = Faraday.new do |c| c.use FaradayMiddleware::FollowRedirects, limit: 5 c.adapter Faraday.default_adapter end end
Public Instance Methods
fetch(request)
click to toggle source
Performs the supplied request @param {ResponseMate::Request} The request to be performed
# File lib/response_mate/connection.rb, line 17 def fetch(request) # rubocop:disable Metrics/AbcSize uri = URI.parse(request[:url]) if request[:params] query = request[:params].to_query query = uri.query ? uri.query << '&' << query : query uri.query = query end client.headers = request[:headers] if request[:headers] client.send request[:verb].downcase.to_sym, uri.to_s rescue Faraday::Error::ConnectionFailed puts "Is a server up and running at #{request[:path]}?".red exit 1 end