net/http/header.rb: refactor
* lib/net/http/header.rb (connection_close?): match headers without making intermediate arrays. * lib/net/http/header.rb (connection_keep_alive?): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54762 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
7a0f0e258b
commit
e83922a3ce
@ -436,21 +436,17 @@ module Net::HTTPHeader
|
|||||||
private :basic_encode
|
private :basic_encode
|
||||||
|
|
||||||
def connection_close?
|
def connection_close?
|
||||||
tokens(@header['connection']).include?('close') or
|
token = /(?:\A|,)\s*close\s*(?:\z|,)/i
|
||||||
tokens(@header['proxy-connection']).include?('close')
|
@header['connection']&.grep(token) {return true}
|
||||||
|
@header['proxy-connection']&.grep(token) {return true}
|
||||||
|
false
|
||||||
end
|
end
|
||||||
|
|
||||||
def connection_keep_alive?
|
def connection_keep_alive?
|
||||||
tokens(@header['connection']).include?('keep-alive') or
|
token = /(?:\A|,)\s*keep-alive\s*(?:\z|,)/i
|
||||||
tokens(@header['proxy-connection']).include?('keep-alive')
|
@header['connection']&.grep(token) {return true}
|
||||||
|
@header['proxy-connection']&.grep(token) {return true}
|
||||||
|
false
|
||||||
end
|
end
|
||||||
|
|
||||||
def tokens(vals)
|
|
||||||
return [] unless vals
|
|
||||||
vals.map {|v| v.split(',') }.flatten\
|
|
||||||
.reject {|str| str.strip.empty? }\
|
|
||||||
.map {|tok| tok.strip.downcase }
|
|
||||||
end
|
|
||||||
private :tokens
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user