Sha256: 91c5742cd02dc532703825f4270cbedfef6c0e0f8371cc26340410228810c630

Contents?: true

Size: 895 Bytes

Versions: 4

Compression:

Stored size: 895 Bytes

Contents

require 'faraday'
require 'faraday_middleware'
require 'faraday_middleware/multi_json'

module Rapidash
  module HTTPClient
    attr_accessor :login, :password
    attr_writer :connection

    def initialize(options = {})
      [:login, :password].each do |key|
        self.send("#{key.to_s}=".to_sym, options[key])
      end
    end

    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

    def request(verb, url, 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
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rapidash-0.3.1 lib/rapidash/http_client.rb
rapidash-0.3.0 lib/rapidash/http_client.rb
rapidash-0.3.0.beta2 lib/rapidash/http_client.rb
rapidash-0.3.0.beta lib/rapidash/http_client.rb