mirror of
https://github.com/HoneyryderChuck/httpx.git
synced 2025-10-16 00:01:48 -04:00
53 lines
1.0 KiB
Ruby
53 lines
1.0 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module HTTPX
|
|
Error = Class.new(StandardError)
|
|
|
|
UnsupportedSchemeError = Class.new(Error)
|
|
|
|
TimeoutError = Class.new(Error) do
|
|
attr_reader :timeout
|
|
|
|
def initialize(timeout, message)
|
|
@timeout = timeout
|
|
super(message)
|
|
end
|
|
|
|
def to_connection_error
|
|
ex = ConnectTimeoutError.new(@timeout, message)
|
|
ex.set_backtrace(backtrace)
|
|
ex
|
|
end
|
|
end
|
|
|
|
TotalTimeoutError = Class.new(TimeoutError)
|
|
|
|
ConnectTimeoutError = Class.new(TimeoutError)
|
|
|
|
ResolveError = Class.new(Error)
|
|
|
|
NativeResolveError = Class.new(ResolveError) do
|
|
attr_reader :connection, :host
|
|
def initialize(connection, host, message = "Can't resolve #{host}")
|
|
@connection = connection
|
|
@host = host
|
|
super(message)
|
|
end
|
|
end
|
|
|
|
HTTPError = Class.new(Error) do
|
|
attr_reader :response
|
|
|
|
def initialize(response)
|
|
@response = response
|
|
super("HTTP Error: #{@response.status}")
|
|
end
|
|
|
|
def status
|
|
@response.status
|
|
end
|
|
end
|
|
|
|
MisdirectedRequestError = Class.new(HTTPError)
|
|
end
|