Sha256: 7f376051b185a8bcb02f05400217dc9acb8bcd9494fcbab6634ad8c3f2e26ae1

Contents?: true

Size: 736 Bytes

Versions: 4

Compression:

Stored size: 736 Bytes

Contents

require 'faraday'
require 'faraday_middleware'

module TN
  module HTTP
    ClientError = Class.new(Faraday::ClientError)

    class WrapError < Faraday::Middleware
      def call(env)
        @app.call(env)
      rescue Faraday::ClientError => e
        raise ClientError.new(e)
      end
    end

    def self.default_connection
      Faraday.new do |conn|
        conn.use TN::HTTP::WrapError
        conn.use Faraday::Response::RaiseError
        yield conn if block_given?
        conn.adapter Faraday.default_adapter
      end
    end

    def self.default_json_connection
      default_connection do |conn|
        conn.response :mashify
        conn.response :json
        yield conn if block_given?
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
dino_utils-0.1.11 lib/tn/http.rb
dino_utils-0.1.10 lib/tn/http.rb
dino_utils-0.1.9 lib/tn/http.rb
dino_utils-0.1.8 lib/tn/http.rb