excon 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 955c2ed7f6ee55d4a279f386f6041f2d465640bd2c49930fcb213f0e63852e17
4
- data.tar.gz: 49190e08fa385b6bd878096da5df9ad062c8e643477930e60916908581c1ef02
3
+ metadata.gz: 8a1cbd57e645d8d22b4180e346b0fcf365165ffb9e95a69a83fe805f56d50e16
4
+ data.tar.gz: e073309fd959dded213203af46f07bccded5fc8c1fe4b879902a9b04e5d82046
5
5
  SHA512:
6
- metadata.gz: d5fcebc27e76063b3be519a0eae585eabd4b3a40591fef96c1750cd7ddfcd9df940a760907f6f7717ab4628eb3f036640afe8da51312ec2741eb5eb8a13a612d
7
- data.tar.gz: 10a234e21629066f1a6682c0c63a0f9bf60bd211ea13018ad5951c3012268e6826d88459d9bcee63518e2a3ccd1558dabb1fba03c9e7d450281d4ab7f8bc6c1a
6
+ metadata.gz: 109ed16c1c5f49cc84261a0c271c0f8769aabc9258a1482842d1c2f48b96ff48ce558b7018b01a1054d57b0f15f4321430e6cfb5f2f8af354150b41dec976d24
7
+ data.tar.gz: cb8c80990fea59470508ada7fcff74f217229c2f8f973d5369ef7f7beb32e105fb10013164427f787bcc38ff77f601fe617f0644a9a70407eaf405409444edfc
@@ -138,7 +138,7 @@ module Excon
138
138
 
139
139
  # The HTTP spec isn't clear on it, but specifically, GET requests don't usually send bodies;
140
140
  # if they don't, sending Content-Length:0 can cause issues.
141
- unless datum[:method].to_s.casecmp('GET') == 0 && body.nil?
141
+ unless datum[:method].to_s.casecmp?('GET') && body.nil?
142
142
  unless datum[:headers].has_key?('Content-Length')
143
143
  datum[:headers]['Content-Length'] = detect_content_length(body)
144
144
  end
@@ -250,7 +250,7 @@ module Excon
250
250
  datum[:headers]['Authorization'] ||= 'Basic ' + ["#{user}:#{pass}"].pack('m').delete(Excon::CR_NL)
251
251
  end
252
252
 
253
- host_key = datum[:headers].keys.detect {|k| k.casecmp('Host') == 0 } || 'Host'
253
+ host_key = datum[:headers].keys.detect {|k| k.casecmp?('Host') } || 'Host'
254
254
  if datum[:scheme] == UNIX
255
255
  datum[:headers][host_key] ||= ''
256
256
  else
@@ -298,8 +298,8 @@ module Excon
298
298
  @persistent_socket_reusable = true
299
299
 
300
300
  if datum[:persistent]
301
- if (key = datum[:response][:headers].keys.detect {|k| k.casecmp('Connection') == 0 })
302
- if datum[:response][:headers][key].casecmp('close') == 0
301
+ if (key = datum[:response][:headers].keys.detect {|k| k.casecmp?('Connection') })
302
+ if datum[:response][:headers][key].casecmp?('close')
303
303
  reset
304
304
  end
305
305
  end
@@ -338,8 +338,8 @@ module Excon
338
338
  end
339
339
 
340
340
  if @data[:persistent]
341
- if (key = responses.last[:headers].keys.detect {|k| k.casecmp('Connection') == 0 })
342
- if responses.last[:headers][key].casecmp('close') == 0
341
+ if (key = responses.last[:headers].keys.detect {|k| k.casecmp?('Connection') })
342
+ if responses.last[:headers][key].casecmp?('close')
343
343
  reset
344
344
  end
345
345
  end
@@ -9,7 +9,7 @@ module Excon
9
9
 
10
10
  def get_header(datum, header)
11
11
  _, header_value = datum[:response][:headers].detect do |key, _|
12
- key.casecmp(header) == 0
12
+ key.casecmp?(header)
13
13
  end
14
14
  header_value
15
15
  end
@@ -8,7 +8,7 @@ module Excon
8
8
 
9
9
  def request_call(datum)
10
10
  unless datum.key?(:response_block)
11
- key = datum[:headers].keys.detect { |k| k.to_s.casecmp('Accept-Encoding').zero? } || 'Accept-Encoding'
11
+ key = datum[:headers].keys.detect { |k| k.to_s.casecmp?('Accept-Encoding') } || 'Accept-Encoding'
12
12
  datum[:headers][key] = 'deflate, gzip' if datum[:headers][key].to_s.empty?
13
13
  end
14
14
  @stack.request_call(datum)
@@ -17,16 +17,16 @@ module Excon
17
17
  def response_call(datum)
18
18
  body = datum[:response][:body]
19
19
  if !(datum.key?(:response_block) || body.nil? || body.empty?) &&
20
- (key = datum[:response][:headers].keys.detect { |k| k.casecmp('Content-Encoding').zero? })
20
+ (key = datum[:response][:headers].keys.detect { |k| k.casecmp?('Content-Encoding') })
21
21
  encodings = Utils.split_header_value(datum[:response][:headers][key])
22
- if encodings.last.casecmp('deflate').zero?
22
+ if encodings&.last&.casecmp?('deflate')
23
23
  datum[:response][:body] = begin
24
24
  Zlib::Inflate.new(INFLATE_ZLIB_OR_GZIP).inflate(body)
25
25
  rescue Zlib::DataError # fallback to raw on error
26
26
  Zlib::Inflate.new(INFLATE_RAW).inflate(body)
27
27
  end
28
28
  encodings.pop
29
- elsif encodings.last.casecmp('gzip').zero? || encodings.last.casecmp('x-gzip').zero?
29
+ elsif encodings&.last&.casecmp?('gzip') || encodings&.last&.casecmp?('x-gzip')
30
30
  datum[:response][:body] = Zlib::GzipReader.new(StringIO.new(body)).read
31
31
  encodings.pop
32
32
  end
@@ -17,7 +17,7 @@ module Excon
17
17
 
18
18
  def get_header(datum, header)
19
19
  _, header_value = datum[:response][:headers].detect do |key, _|
20
- key.casecmp(header) == 0
20
+ key.casecmp?(header)
21
21
  end
22
22
  header_value
23
23
  end
@@ -106,9 +106,9 @@ module Excon
106
106
 
107
107
  unless (['HEAD', 'CONNECT'].include?(datum[:method].to_s.upcase)) || NO_ENTITY.include?(datum[:response][:status])
108
108
 
109
- if (key = datum[:response][:headers].keys.detect {|k| k.casecmp('Transfer-Encoding') == 0 })
109
+ if (key = datum[:response][:headers].keys.detect {|k| k.casecmp?('Transfer-Encoding') })
110
110
  encodings = Utils.split_header_value(datum[:response][:headers][key])
111
- if (encoding = encodings.last) && encoding.casecmp('chunked') == 0
111
+ if (encoding = encodings.last) && encoding.casecmp?('chunked')
112
112
  transfer_encoding_chunked = true
113
113
  if encodings.length == 1
114
114
  datum[:response][:headers].delete(key)
@@ -156,7 +156,7 @@ module Excon
156
156
  end
157
157
  parse_headers(socket, datum) # merge trailers into headers
158
158
  else
159
- if (key = datum[:response][:headers].keys.detect {|k| k.casecmp('Content-Length') == 0 })
159
+ if (key = datum[:response][:headers].keys.detect {|k| k.casecmp?('Content-Length') })
160
160
  content_length = datum[:response][:headers][key].to_i
161
161
  end
162
162
 
@@ -202,7 +202,7 @@ module Excon
202
202
  raise Excon::Error::ResponseParse, 'malformed header' unless value
203
203
  # add key/value or append value to existing values
204
204
  datum[:response][:headers][key] = ([datum[:response][:headers][key]] << value.strip).compact.join(', ')
205
- if key.casecmp('Set-Cookie') == 0
205
+ if key.casecmp?('Set-Cookie')
206
206
  datum[:response][:cookies] << value.strip
207
207
  end
208
208
  last_key = key
data/lib/excon/utils.rb CHANGED
@@ -87,8 +87,9 @@ module Excon
87
87
  end
88
88
 
89
89
  def default_port?(datum)
90
- (datum[:scheme].casecmp('http').zero? && datum[:port] == 80) ||
91
- (datum[:scheme].casecmp('https').zero? && datum[:port] == 443)
90
+ (!datum[:scheme]&.casecmp?('unix') && datum[:port].nil?) ||
91
+ (datum[:scheme]&.casecmp?('http') && datum[:port] == 80) ||
92
+ (datum[:scheme]&.casecmp?('https') && datum[:port] == 443)
92
93
  end
93
94
 
94
95
  def query_string(datum)
data/lib/excon/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Excon
4
- VERSION = '1.0.0'
4
+ VERSION = '1.1.0'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: excon
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - dpiddy (Dan Peterson)
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2024-10-24 00:00:00.000000000 Z
13
+ date: 2024-10-29 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rspec