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