Sha256: d9518faae3b4a3efe7efca9718a5c3d3bda1d22acf3b287bcb76c9df3dc6845d

Contents?: true

Size: 1.4 KB

Versions: 85

Compression:

Stored size: 1.4 KB

Contents

require 'faraday'

module Daddy
  
  class HttpClient
  
    def initialize(url, options = {})
      @url = url
      @options = options
      @cookie = options[:cookie]
    end
    
    def get(path, params = {})
      response = connection.get(path, params) do |request|
        if @options[:auth_user] and @options[:auth_password]
          basic = 'Basic ' + Base64.encode64(@options[:auth_user] + ':' + @options[:auth_password])
          request.headers['Authorization'] = basic
        end

        if @cookie
          request.headers['Cookie'] = @cookie
        end

        params.each do |key, value|
          request.params[key] = value
        end
      end

      @cookie = response.headers['set-cookie']

      if block_given?
        yield response
      else
        response.body.force_encoding('UTF-8')
      end
    end

    def post(path, params = {})
      response = connection.post(path, params)
    end

    private

    def connection
      Faraday.new(:url => @url, :ssl => ssl_options) do |faraday|
        faraday.request :url_encoded
        faraday.adapter Faraday.default_adapter
      end
    end
    
    def ssl_options
      daddy_dir = File.expand_path('../../..', __FILE__)
      ca_path = File.join(daddy_dir, 'ssl')

      ret = {
        :ca_path => ca_path,
        :ca_file => File.join(ca_path, 'cert.pem'),
        :verify => @options[:verify_ssl] || false,
      }
    end

  end
end

Version data entries

85 entries across 85 versions & 1 rubygems

Version Path
daddy-0.8.0 lib/daddy/http_client.rb
daddy-0.7.9 lib/daddy/http_client.rb
daddy-0.7.8 lib/daddy/http_client.rb
daddy-0.7.7 lib/daddy/http_client.rb
daddy-0.7.6 lib/daddy/http_client.rb
daddy-0.7.5 lib/daddy/http_client.rb
daddy-0.7.4 lib/daddy/http_client.rb
daddy-0.7.3 lib/daddy/http_client.rb
daddy-0.7.2 lib/daddy/http_client.rb
daddy-0.7.1 lib/daddy/http_client.rb
daddy-0.7.0 lib/daddy/http_client.rb
daddy-0.6.6 lib/daddy/http_client.rb
daddy-0.6.5 lib/daddy/http_client.rb
daddy-0.6.4 lib/daddy/http_client.rb
daddy-0.6.3 lib/daddy/http_client.rb
daddy-0.6.2 lib/daddy/http_client.rb
daddy-0.6.1 lib/daddy/http_client.rb
daddy-0.6.0 lib/daddy/http_client.rb
daddy-0.5.34 lib/daddy/http_client.rb
daddy-0.5.33 lib/daddy/http_client.rb