Sha256: 24455750dcf6f59b7869a429fb91f06357ced468a6352af867c5be82b3bef5cf
Contents?: true
Size: 1.44 KB
Versions: 9
Compression:
Stored size: 1.44 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 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.use FaradayMiddleware::FollowRedirects if @options[:follow_redirects] faraday.adapter Faraday.default_adapter end end def ssl_options daddy_dir = File.expand_path('../../..', __FILE__) ca_path = File.join(daddy_dir, 'ssl') { ca_path: ca_path, ca_file: File.join(ca_path, 'cert.pem'), verify: @options.fetch(:verify_ssl, true) } end end end
Version data entries
9 entries across 9 versions & 1 rubygems