Sha256: 569366bb89291fee30a89d64ed2e68f23661c3f765586c8553b7cc218caecb83
Contents?: true
Size: 1.02 KB
Versions: 5
Compression:
Stored size: 1.02 KB
Contents
# frozen_string_literal: true require "http" module Mihari module HTTP class BetterError < ::HTTP::Feature def wrap_response(response) unless response.status.success? raise StatusCodeError.new( "Unsuccessful response code returned: #{response.code}", response.code, response.body.to_s ) end response end def on_error(_request, error) raise TimeoutError, error if error.is_a?(::HTTP::TimeoutError) raise NetworkError, error if error.is_a?(::HTTP::Error) end ::HTTP::Options.register_feature(:better_error, self) end class Factory class << self # # @param [Integer, nil] timeout # @param [Hash] headers # # @return [::HTTP::Client] # def build(headers: {}, timeout: nil) client = ::HTTP.use(:better_error).headers(headers) client.timeout(timeout) unless timeout.nil? client end end end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
mihari-5.6.2 | lib/mihari/http.rb |
mihari-5.6.1 | lib/mihari/http.rb |
mihari-5.6.0 | lib/mihari/http.rb |
mihari-5.5.0 | lib/mihari/http.rb |
mihari-5.4.9 | lib/mihari/http.rb |