module Rapidash::HTTPClient

Attributes

connection[W]
login[RW]
password[RW]
request_default_options[RW]

Public Class Methods

new(options = {}) click to toggle source

Provide login and password fields for basic HTTP authentication Provide request_default_options field for default options to be provided on each http request To set a default User-agent which identifies your application, provide { request_default_options: { header: { user_agent: ‘My great new App V.0.1 Contact: me@me.com’} } }

# File lib/rapidash/http_client.rb, line 14
def initialize(options = {})
  [:login, :password, :request_default_options].each do |key|
    self.send("#{key.to_s}=".to_sym, options[key])
  end
end

Public Instance Methods

connection() click to toggle source
# File lib/rapidash/http_client.rb, line 20
def connection
  raise ConfigurationError.new "Site is required" unless site

  @connection ||= Faraday.new(site) do |builder|
    if login || password
      builder.use Faraday::Request::BasicAuthentication, login, password
    end

    connection_builder.call(builder)
  end
end
request(verb, url, options = {}) click to toggle source
# File lib/rapidash/http_client.rb, line 32
def request(verb, url, options = {})
  options.merge!(self.request_default_options) if self.request_default_options
  url = connection.build_url(normalize_url(url), options[:params]).to_s
  response = connection.run_request(verb, url, options[:body], options[:header])

  response.body
end