few extra changes to appease the type checker

This commit is contained in:
HoneyryderChuck 2021-08-17 16:13:32 +01:00
parent b92829d025
commit 74dfb18ed3
7 changed files with 29 additions and 23 deletions

View File

@ -322,7 +322,7 @@ module HTTPX
end
def join_body(request)
return if request.empty?
return if request.body.empty?
while (chunk = request.drain_body)
log(color: :green) { "<- DATA: #{chunk.bytesize} bytes..." }
@ -331,7 +331,9 @@ module HTTPX
throw(:buffer_full, request) if @buffer.full?
end
raise request.drain_error if request.drain_error
return unless (error = request.drain_error)
raise error
end
def join_trailers(request)
@ -358,7 +360,7 @@ module HTTPX
}.freeze
def capitalized(field)
UPCASED[field] || field.to_s.split("-").map(&:capitalize).join("-")
UPCASED[field] || field.split("-").map(&:capitalize).join("-")
end
end
Connection.register "http/1.1", Connection::HTTP1

View File

@ -1,7 +1,6 @@
# frozen_string_literal: true
require "securerandom"
require "io/wait"
require "http/2/next"
module HTTPX
@ -218,7 +217,7 @@ module HTTPX
log(level: 1, color: :yellow) do
request.headers.merge(extra_headers).each.map { |k, v| "#{stream.id}: -> HEADER: #{k}: #{v}" }.join("\n")
end
stream.headers(request.headers.each(extra_headers), end_stream: request.empty?)
stream.headers(request.headers.each(extra_headers), end_stream: request.body.empty?)
end
def join_trailers(stream, request)
@ -234,7 +233,7 @@ module HTTPX
end
def join_body(stream, request)
return if request.empty?
return if request.body.empty?
chunk = @drains.delete(request) || request.drain_body
while chunk
@ -249,7 +248,9 @@ module HTTPX
chunk = next_chunk
end
on_stream_refuse(stream, request, request.drain_error) if request.drain_error
return unless (error = request.drain_error)
on_stream_refuse(stream, request, error)
end
######
@ -257,8 +258,10 @@ module HTTPX
######
def on_stream_headers(stream, request, h)
if request.response && request.response.version == "2.0"
on_stream_trailers(stream, request, h)
response = request.response
if response.is_a?(Response) && response.version == "2.0"
on_stream_trailers(stream, response, h)
return
end
@ -274,11 +277,11 @@ module HTTPX
handle(request, stream) if request.expects?
end
def on_stream_trailers(stream, request, h)
def on_stream_trailers(stream, response, h)
log(color: :yellow) do
h.map { |k, v| "#{stream.id}: <- HEADER: #{k}: #{v}" }.join("\n")
end
request.response.merge_headers(h)
response.merge_headers(h)
end
def on_stream_data(stream, request, data)
@ -304,7 +307,7 @@ module HTTPX
emit(:response, request, response)
else
response = request.response
if response.status == 421
if response && response.status == 421
ex = MisdirectedRequestError.new(response)
ex.set_backtrace(caller)
emit(:error, request, ex)

View File

@ -57,7 +57,7 @@ module HTTPX
def merge(other)
headers = dup
other.each do |field, value|
headers[field] = value
headers[downcased(field)] = value
end
headers
end

View File

@ -60,7 +60,7 @@ module HTTPX
(m = %r{\AHTTP(?:/(\d+\.\d+))?\s+(\d\d\d)(?:\s+(.*))?}in.match(@buffer)) ||
raise(Error, "wrong head line format")
version, code, _ = m.captures
raise(Error, "unsupported HTTP version (HTTP/#{version})") unless VERSIONS.include?(version)
raise(Error, "unsupported HTTP version (HTTP/#{version})") unless version && VERSIONS.include?(version)
@http_version = version.split(".").map(&:to_i)
@status_code = code.to_i

View File

@ -17,7 +17,7 @@ module HTTPX
elsif defined?(MimeMagic)
def call(file, *)
def call(file, _)
mime = MimeMagic.by_magic(file)
mime.type if mime
end
@ -25,7 +25,7 @@ module HTTPX
elsif system("which file", out: File::NULL)
require "open3"
def call(file, *)
def call(file, _)
return if file.eof? # file command returns "application/x-empty" for empty files
Open3.popen3(*%w[file --mime-type --brief -]) do |stdin, stdout, stderr, thread|
@ -56,7 +56,7 @@ module HTTPX
else
def call(*); end
def call(_, _); end
end
end

View File

@ -8,7 +8,7 @@ module HTTPX
def call(value)
# take out specialized objects of the way
if value.respond_to?(:filename) && value.respond_to?(:content_type) && value.respond_to?(:read)
return [value, value.content_type, value.filename]
return value, value.content_type, value.filename
end
content_type = filename = nil
@ -19,7 +19,7 @@ module HTTPX
value = value[:body]
end
value = value.open(:binmode => true) if Object.const_defined?(:Pathname) && value.is_a?(Pathname)
value = value.open(File::RDONLY) if Object.const_defined?(:Pathname) && value.is_a?(Pathname)
if value.is_a?(File)
filename ||= File.basename(value.path)

View File

@ -46,9 +46,10 @@ module HTTPX
@options = Options.new(options)
@uri = Utils.to_uri(uri)
if @uri.relative?
raise(Error, "invalid URI: #{@uri}") unless @options.origin
origin = @options.origin
raise(Error, "invalid URI: #{@uri}") unless origin
@uri = @options.origin.merge(@uri)
@uri = origin.merge(@uri)
end
raise(Error, "unknown method: #{verb}") unless METHODS.include?(@verb)
@ -96,7 +97,7 @@ module HTTPX
def response=(response)
return unless response
if response.status == 100
if response.is_a?(Response) && response.status == 100
@informational_status = response.status
return
end
@ -156,7 +157,7 @@ module HTTPX
class Body < SimpleDelegator
class << self
def new(*, options)
def new(_, options)
return options.body if options.body.is_a?(self)
super