excon 1.2.1 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 738c867acaec7b89bbee08c77558f9c38edf9c0531b5c3d003981418e12a1553
4
- data.tar.gz: 87357f9d74d762d2e48c1af4341865588e9438fd989a91e8c83c9ec85e34cddb
3
+ metadata.gz: 9f78ec13c3b7cc67758d4f7f61d1c7ea4c53fbc7deaba119f2b4dac03f9db892
4
+ data.tar.gz: d52117b0d59efeb242703048d0ced7401a23aefe415c92a4e9698d3ca6ae95ec
5
5
  SHA512:
6
- metadata.gz: a33ee1422f54944d24b554a5a6c6dccecbbabcf92ceecc3ecf5fada7da39aa2b3e4edbea1d55c1acc17642c0c83d34ee2e0effaff5be6a65d24b02e2694c8ff9
7
- data.tar.gz: a5ce6c300dc830e85e34e8551f07236135f33964e189cc50408bc1b1b68e0d6fa3ecadaa13daa8aa55f350b26ebb8425affb6392610d12911cbe89053e2f0620
6
+ metadata.gz: 74c08361f5c838c98d5f16ad4faa7b6d0fc74f5522e1a03f854a592f35c96f1a463e7946fdcf7e47d2861d52665bf7dfe6e8990e74d65f2a6f2fde2d5e2d410f
7
+ data.tar.gz: 7acdd19b51708652664484ffdbedd1ffc9f3f20816a8544771a8082b78d802ca1e052bea39b8be94cf9e20719e82aff7170f9a596db4f0549bfa54106faec68f
data/data/cacert.pem CHANGED
@@ -1,7 +1,7 @@
1
1
  ##
2
2
  ## Bundle of CA Root Certificates
3
3
  ##
4
- ## Certificate data from Mozilla as of: Tue Sep 24 03:12:04 2024 GMT
4
+ ## Certificate data from Mozilla as of: Tue Dec 31 04:12:05 2024 GMT
5
5
  ##
6
6
  ## Find updated versions here: https://curl.se/docs/caextract.html
7
7
  ##
@@ -16,7 +16,7 @@
16
16
  ## Just configure this file as the SSLCACertificateFile.
17
17
  ##
18
18
  ## Conversion done with mk-ca-bundle.pl version 1.29.
19
- ## SHA256: 36105b01631f9fc03b1eca779b44a30a1a5890b9bf8dc07ccb001a07301e01cf
19
+ ## SHA256: c99d6d3f8d3d4e47719ba2b648992f5b58b150128d3aca3c05c566d8dc98e116
20
20
  ##
21
21
 
22
22
 
@@ -584,27 +584,6 @@ NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu
584
584
  dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
585
585
  -----END CERTIFICATE-----
586
586
 
587
- SecureSign RootCA11
588
- ===================
589
- -----BEGIN CERTIFICATE-----
590
- MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi
591
- SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS
592
- b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw
593
- KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1
594
- cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL
595
- TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO
596
- wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq
597
- g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP
598
- O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA
599
- bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX
600
- t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh
601
- OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r
602
- bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ
603
- Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01
604
- y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061
605
- lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I=
606
- -----END CERTIFICATE-----
607
-
608
587
  Microsec e-Szigno Root CA 2009
609
588
  ==============================
610
589
  -----BEGIN CERTIFICATE-----
@@ -2319,40 +2298,6 @@ hcErulWuBurQB7Lcq9CClnXO0lD+mefPL5/ndtFhKvshuzHQqp9HpLIiyhY6UFfEW0NnxWViA0kB
2319
2298
  dBb9HxEGmpv0
2320
2299
  -----END CERTIFICATE-----
2321
2300
 
2322
- Entrust Root Certification Authority - G4
2323
- =========================================
2324
- -----BEGIN CERTIFICATE-----
2325
- MIIGSzCCBDOgAwIBAgIRANm1Q3+vqTkPAAAAAFVlrVgwDQYJKoZIhvcNAQELBQAwgb4xCzAJBgNV
2326
- BAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3Qu
2327
- bmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1
2328
- dGhvcml6ZWQgdXNlIG9ubHkxMjAwBgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1
2329
- dGhvcml0eSAtIEc0MB4XDTE1MDUyNzExMTExNloXDTM3MTIyNzExNDExNlowgb4xCzAJBgNVBAYT
2330
- AlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0
2331
- L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhv
2332
- cml6ZWQgdXNlIG9ubHkxMjAwBgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhv
2333
- cml0eSAtIEc0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsewsQu7i0TD/pZJH4i3D
2334
- umSXbcr3DbVZwbPLqGgZ2K+EbTBwXX7zLtJTmeH+H17ZSK9dE43b/2MzTdMAArzE+NEGCJR5WIoV
2335
- 3imz/f3ET+iq4qA7ec2/a0My3dl0ELn39GjUu9CH1apLiipvKgS1sqbHoHrmSKvS0VnM1n4j5pds
2336
- 8ELl3FFLFUHtSUrJ3hCX1nbB76W1NhSXNdh4IjVS70O92yfbYVaCNNzLiGAMC1rlLAHGVK/XqsEQ
2337
- e9IFWrhAnoanw5CGAlZSCXqc0ieCU0plUmr1POeo8pyvi73TDtTUXm6Hnmo9RR3RXRv06QqsYJn7
2338
- ibT/mCzPfB3pAqoEmh643IhuJbNsZvc8kPNXwbMv9W3y+8qh+CmdRouzavbmZwe+LGcKKh9asj5X
2339
- xNMhIWNlUpEbsZmOeX7m640A2Vqq6nPopIICR5b+W45UYaPrL0swsIsjdXJ8ITzI9vF01Bx7owVV
2340
- 7rtNOzK+mndmnqxpkCIHH2E6lr7lmk/MBTwoWdPBDFSoWWG9yHJM6Nyfh3+9nEg2XpWjDrk4JFX8
2341
- dWbrAuMINClKxuMrLzOg2qOGpRKX/YAr2hRC45K9PvJdXmd0LhyIRyk0X+IyqJwlN4y6mACXi0mW
2342
- Hv0liqzc2thddG5msP9E36EYxr5ILzeUePiVSj9/E15dWf10hkNjc0kCAwEAAaNCMEAwDwYDVR0T
2343
- AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJ84xFYjwznooHFs6FRM5Og6sb9n
2344
- MA0GCSqGSIb3DQEBCwUAA4ICAQAS5UKme4sPDORGpbZgQIeMJX6tuGguW8ZAdjwD+MlZ9POrYs4Q
2345
- jbRaZIxowLByQzTSGwv2LFPSypBLhmb8qoMi9IsabyZIrHZ3CL/FmFz0Jomee8O5ZDIBf9PD3Vht
2346
- 7LGrhFV0d4QEJ1JrhkzO3bll/9bGXp+aEJlLdWr+aumXIOTkdnrG0CSqkM0gkLpHZPt/B7NTeLUK
2347
- YvJzQ85BK4FqLoUWlFPUa19yIqtRLULVAJyZv967lDtX/Zr1hstWO1uIAeV8KEsD+UmDfLJ/fOPt
2348
- jqF/YFOOVZ1QNBIPt5d7bIdKROf1beyAN/BYGW5KaHbwH5Lk6rWS02FREAutp9lfx1/cH6NcjKF+
2349
- m7ee01ZvZl4HliDtC3T7Zk6LERXpgUl+b7DUUH8i119lAg2m9IUe2K4GS0qn0jFmwvjO5QimpAKW
2350
- RGhXxNUzzxkvFMSUHHuk2fCfDrGA4tGeEWSpiBE6doLlYsKA2KSD7ZPvfC+QsDJMlhVoSFLUmQjA
2351
- JOgc47OlIQ6SwJAfzyBfyjs4x7dtOvPmRLgOMWuIjnDrnBdSqEGULoe256YSxXXfW8AKbnuk5F6G
2352
- +TaU33fD6Q3AOfF5u0aOq0NZJ7cguyPpVkAh7DE9ZapD8j3fcEThuk0mEDuYn/PIjhs4ViFqUZPT
2353
- kcpG2om3PVODLAgfi49T3f+sHw==
2354
- -----END CERTIFICATE-----
2355
-
2356
2301
  Microsoft ECC Root Certificate Authority 2017
2357
2302
  =============================================
2358
2303
  -----BEGIN CERTIFICATE-----
@@ -2602,6 +2547,36 @@ vLtoURMMA/cVi4RguYv/Uo7njLwcAjA8+RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+
2602
2547
  CAezNIm8BZ/3Hobui3A=
2603
2548
  -----END CERTIFICATE-----
2604
2549
 
2550
+ GLOBALTRUST 2020
2551
+ ================
2552
+ -----BEGIN CERTIFICATE-----
2553
+ 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
2578
+ -----END CERTIFICATE-----
2579
+
2605
2580
  ANF Secure Server Root CA
2606
2581
  =========================
2607
2582
  -----BEGIN CERTIFICATE-----
@@ -3140,36 +3115,6 @@ AwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozmut6Dacpps6kFtZaSF4fC0urQe87YQVt8
3140
3115
  rgIwRt7qy12a7DLCZRawTDBcMPPaTnOGBtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR
3141
3116
  -----END CERTIFICATE-----
3142
3117
 
3143
- Security Communication RootCA3
3144
- ==============================
3145
- -----BEGIN CERTIFICATE-----
3146
- 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
- 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
- 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
- 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
- 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
- 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
- hvtxosis5FaU+cmvsXLUIKx00rgVrVH+hXShuRD+BYD5UpOzQD11EKzAlrenfna84xtSGc4RHwsE
3153
- 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
- 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
- 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
- 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
- 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
- 3PsXuKHqy6C0rtOUfnrQq8PsOC0RLoi/1D+tEjtCrI8Cbn3M0V9hvqG8OmpI6iZVIhZdXw3/JzOf
3159
- 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
- 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
- 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
- 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
- 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
- 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
- YfQAW0q3nHE3GYV5v4GwxxMOdnE+OoAGrgYWp421wsTL/0ClXI2lyTrtcoHKXJg80jQDdwj98ClZ
3166
- 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
- +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
- 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
- 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
- 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
3171
- -----END CERTIFICATE-----
3172
-
3173
3118
  Security Communication ECC RootCA1
3174
3119
  ==================================
3175
3120
  -----BEGIN CERTIFICATE-----
data/excon.gemspec CHANGED
@@ -1,45 +1,48 @@
1
+ # frozen_string_literal: true
2
+
1
3
  $LOAD_PATH.unshift File.join(File.dirname(__FILE__), 'lib')
2
4
  require 'excon/version'
3
5
 
4
6
  Gem::Specification.new do |s|
5
7
  s.name = 'excon'
6
8
  s.version = Excon::VERSION
7
- s.summary = "speed, persistence, http(s)"
8
- s.description = "EXtended http(s) CONnections"
9
- s.authors = ["dpiddy (Dan Peterson)", "geemus (Wesley Beary)", "nextmat (Matt Sanders)"]
9
+ s.summary = 'speed, persistence, http(s)'
10
+ s.description = 'EXtended http(s) CONnections'
11
+ s.authors = ['dpiddy (Dan Peterson)', 'geemus (Wesley Beary)', 'nextmat (Matt Sanders)']
10
12
  s.email = 'geemus@gmail.com'
11
13
  s.homepage = 'https://github.com/excon/excon'
12
14
  s.license = 'MIT'
13
- s.rdoc_options = ["--charset=UTF-8"]
15
+ s.rdoc_options = ['--charset=UTF-8']
14
16
  s.extra_rdoc_files = %w[README.md CONTRIBUTORS.md CONTRIBUTING.md]
15
17
  s.files = `git ls-files -- data/* lib/*`.split("\n") + [
16
- "CONTRIBUTING.md",
17
- "CONTRIBUTORS.md",
18
- "LICENSE.md",
19
- "README.md",
20
- "excon.gemspec"
18
+ 'CONTRIBUTING.md',
19
+ 'CONTRIBUTORS.md',
20
+ 'LICENSE.md',
21
+ 'README.md',
22
+ 'excon.gemspec'
21
23
  ]
22
24
  s.required_ruby_version = '>= 2.7.0'
23
25
 
24
- s.add_development_dependency('rspec', '>= 3.5.0')
25
26
  s.add_development_dependency('activesupport')
26
27
  s.add_development_dependency('delorean')
27
28
  s.add_development_dependency('eventmachine', '>= 1.0.4')
29
+ s.add_development_dependency('json', '>= 1.8.5')
28
30
  s.add_development_dependency('open4')
31
+ s.add_development_dependency('puma')
29
32
  s.add_development_dependency('rake')
33
+ s.add_development_dependency('rspec', '>= 3.5.0')
30
34
  s.add_development_dependency('shindo')
31
35
  s.add_development_dependency('sinatra')
32
36
  s.add_development_dependency('sinatra-contrib')
33
- s.add_development_dependency('json', '>= 1.8.5')
34
- s.add_development_dependency('puma')
35
37
  s.add_development_dependency('webrick')
36
38
 
37
39
  s.metadata = {
38
- 'homepage_uri' => 'https://github.com/excon/excon',
39
- 'bug_tracker_uri' => 'https://github.com/excon/excon/issues',
40
- 'changelog_uri' => 'https://github.com/excon/excon/blob/master/changelog.txt',
40
+ 'bug_tracker_uri' => 'https://github.com/excon/excon/issues',
41
+ 'changelog_uri' => 'https://github.com/excon/excon/blob/master/changelog.txt',
41
42
  'documentation_uri' => 'https://github.com/excon/excon/blob/master/README.md',
42
- 'source_code_uri' => 'https://github.com/excon/excon',
43
- 'wiki_uri' => 'https://github.com/excon/excon/wiki'
43
+ 'funding_uri' => 'https://github.com/sponsors/geemus',
44
+ 'homepage_uri' => 'https://github.com/excon/excon',
45
+ 'source_code_uri' => 'https://github.com/excon/excon',
46
+ 'wiki_uri' => 'https://github.com/excon/excon/wiki'
44
47
  }
45
48
  end
@@ -159,7 +159,7 @@ module Excon
159
159
  if chunk.length > 0
160
160
  socket(datum).write(chunk.length.to_s(16) << CR_NL << chunk << CR_NL)
161
161
  else
162
- socket(datum).write(String.new("0#{CR_NL}#{CR_NL}"))
162
+ socket(datum).write("0#{CR_NL}#{CR_NL}")
163
163
  break
164
164
  end
165
165
  end
@@ -329,7 +329,7 @@ module Excon
329
329
  # @param pipeline_params [Array<Hash>] An array of one or more optional params, override defaults set in Connection.new, see #request for details
330
330
  def requests(pipeline_params)
331
331
  pipeline_params.each {|params| params.merge!(:pipeline => true, :persistent => true) }
332
- pipeline_params.last.merge!(:persistent => @data[:persistent])
332
+ pipeline_params.last[:persistent] = @data[:persistent]
333
333
 
334
334
  responses = pipeline_params.map do |params|
335
335
  request(params)
@@ -511,7 +511,7 @@ module Excon
511
511
  end
512
512
 
513
513
  def raise_socket_error(error)
514
- if error.message =~ /certificate verify failed/
514
+ if error.message.include?('certificate verify failed')
515
515
  raise(Excon::Errors::CertificateError.new(error))
516
516
  else
517
517
  raise(Excon::Errors::SocketError.new(error))
data/lib/excon/error.rb CHANGED
@@ -216,8 +216,8 @@ or:
216
216
 
217
217
  klasses.each do |klass|
218
218
  class_name = klass.to_s
219
- unless class_name =~ /Error\Z/
220
- class_name = klass.to_s + 'Error' if class_name =~ legacy_re
219
+ unless class_name.match?(/Error\Z/)
220
+ class_name = klass.to_s + 'Error' if class_name.match?(legacy_re)
221
221
  end
222
222
  Excon::Errors.const_set(class_name, Excon::Error.const_get(klass))
223
223
  end
@@ -67,8 +67,8 @@ module Excon
67
67
  :query => uri.query
68
68
  )
69
69
 
70
- params.merge!(:user => Utils.unescape_uri(uri.user)) if uri.user
71
- params.merge!(:password => Utils.unescape_uri(uri.password)) if uri.password
70
+ params[:user] = Utils.unescape_uri(uri.user) if uri.user
71
+ params[:password] = Utils.unescape_uri(uri.password) if uri.password
72
72
 
73
73
  response = Excon::Connection.new(params).request
74
74
  datum.merge!({
@@ -63,7 +63,7 @@ module Excon
63
63
  unless ca_file || ca_path || cert_store
64
64
  # workaround issue #257 (JRUBY-6970)
65
65
  ca_file = DEFAULT_CA_FILE
66
- ca_file = ca_file.gsub(/^jar:/, '') if ca_file =~ /^jar:file:\//
66
+ ca_file = ca_file.gsub(/^jar:/, '') if ca_file.match?(/^jar:file:\//)
67
67
 
68
68
  begin
69
69
  ssl_context.cert_store.add_file(ca_file)
@@ -7,7 +7,7 @@ module Excon
7
7
  open_process(RbConfig.ruby, '-S', 'puma', '-b', bind_uri.to_s, app_str)
8
8
  process_stderr = ""
9
9
  line = ''
10
- until line =~ /Use Ctrl-C to stop/
10
+ until line.include?('Use Ctrl-C to stop')
11
11
  line = read.gets
12
12
  raise process_stderr if line.nil?
13
13
  process_stderr << line
@@ -12,19 +12,19 @@ module Excon
12
12
  host = bind_uri.host.gsub(/[\[\]]/, '')
13
13
  bind_str = "#{host}:#{bind_uri.port}"
14
14
  end
15
- args = [
15
+ args = [
16
16
  RbConfig.ruby,
17
17
  '-S',
18
- 'unicorn',
19
- '--no-default-middleware',
18
+ 'unicorn',
19
+ '--no-default-middleware',
20
20
  '-l',
21
- bind_str,
21
+ bind_str,
22
22
  app_str
23
23
  ]
24
24
  open_process(*args)
25
25
  process_stderr = ''
26
26
  line = ''
27
- until line =~ /worker\=0 ready/
27
+ until line.include?('worker=0 ready')
28
28
  line = error.gets
29
29
  raise process_stderr if line.nil?
30
30
  process_stderr << line
@@ -10,7 +10,7 @@ module Excon
10
10
  open_process(RbConfig.ruby, '-S', 'rackup', '-s', 'webrick', '--host', host, '--port', port, app_str)
11
11
  process_stderr = ""
12
12
  line = ''
13
- until line =~ /HTTPServer#start/
13
+ until line.include?('HTTPServer#start')
14
14
  line = error.gets
15
15
  raise process_stderr if line.nil?
16
16
  process_stderr << line
@@ -73,7 +73,7 @@ module Excon
73
73
  while (line = lines.shift)
74
74
  case line
75
75
  when /(ERROR|Error)/
76
- unless line =~ /(null cert chain|did not return a certificate|SSL_read:: internal error)/
76
+ unless line.match?(/(null cert chain|did not return a certificate|SSL_read:: internal error)/)
77
77
  in_err = true
78
78
  puts
79
79
  end
data/lib/excon/utils.rb CHANGED
@@ -1,14 +1,15 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Excon
3
4
  module Utils
4
- extend self
5
+ module_function
5
6
 
6
- CONTROL = (0x0..0x1f).map {|c| c.chr }.join + "\x7f"
7
+ CONTROL = "#{(0x0..0x1f).map(&:chr).join}\u007F"
7
8
  DELIMS = '<>#%"'
8
9
  UNWISE = '{}|\\^[]`'
9
- NONASCII = (0x80..0xff).map {|c| c.chr }.join
10
- UNESCAPED = /([#{ Regexp.escape(CONTROL + ' ' + DELIMS + UNWISE + NONASCII) }])/
11
- ESCAPED = /%([0-9a-fA-F]{2})/
10
+ NONASCII = (0x80..0xff).map(&:chr).join
11
+ UNESCAPED = /([#{Regexp.escape("#{CONTROL} #{DELIMS}#{UNWISE}#{NONASCII}")}])/.freeze
12
+ ESCAPED = /%([0-9a-fA-F]{2})/.freeze
12
13
 
13
14
  def binary_encode(string)
14
15
  if FORCE_ENC && string.encoding != Encoding::ASCII_8BIT
@@ -23,9 +24,8 @@ module Excon
23
24
  end
24
25
 
25
26
  def connection_uri(datum = @data)
26
- unless datum
27
- raise ArgumentError, '`datum` must be given unless called on a Connection'
28
- end
27
+ raise ArgumentError, '`datum` must be given unless called on a Connection' unless datum
28
+
29
29
  if datum[:scheme] == UNIX
30
30
  "#{datum[:scheme]}://#{datum[:socket]}"
31
31
  else
@@ -36,21 +36,15 @@ module Excon
36
36
  # Redact sensitive info from provided data
37
37
  def redact(datum)
38
38
  datum = datum.dup
39
- if datum.has_key?(:headers)
40
- if datum[:headers].has_key?('Authorization') || datum[:headers].has_key?('Proxy-Authorization')
39
+ if datum.key?(:headers)
40
+ if datum[:headers].key?('Authorization') || datum[:headers].key?('Proxy-Authorization')
41
41
  datum[:headers] = datum[:headers].dup
42
42
  end
43
- if datum[:headers].has_key?('Authorization')
44
- datum[:headers]['Authorization'] = REDACTED
45
- end
46
- if datum[:headers].has_key?('Proxy-Authorization')
47
- datum[:headers]['Proxy-Authorization'] = REDACTED
48
- end
43
+ datum[:headers]['Authorization'] = REDACTED if datum[:headers].key?('Authorization')
44
+ datum[:headers]['Proxy-Authorization'] = REDACTED if datum[:headers].key?('Proxy-Authorization')
49
45
  end
50
- if datum.has_key?(:password)
51
- datum[:password] = REDACTED
52
- end
53
- if datum.has_key?(:proxy) && datum[:proxy] && datum[:proxy].has_key?(:password)
46
+ datum[:password] = REDACTED if datum.key?(:password)
47
+ if datum.key?(:proxy) && datum[:proxy]&.key?(:password)
54
48
  datum[:proxy] = datum[:proxy].dup
55
49
  datum[:proxy][:password] = REDACTED
56
50
  end
@@ -76,13 +70,13 @@ module Excon
76
70
  end
77
71
 
78
72
  def query_string(datum)
79
- str = String.new
73
+ str = +''
80
74
  case datum[:query]
81
75
  when String
82
76
  str << '?' << datum[:query]
83
77
  when Hash
84
78
  str << '?'
85
- datum[:query].sort_by {|k,_| k.to_s }.each do |key, values|
79
+ datum[:query].sort_by { |k, _| k.to_s }.each do |key, values|
86
80
  key = CGI.escape(key.to_s)
87
81
  if values.nil?
88
82
  str << key << '&'
@@ -100,46 +94,49 @@ module Excon
100
94
  # Splits a header value +str+ according to HTTP specification.
101
95
  def split_header_value(str)
102
96
  return [] if str.nil?
97
+
103
98
  str = str.dup.strip
104
99
  str = binary_encode(str)
105
- str.scan(%r'\G((?:"(?:\\.|[^"])+?"|[^",])+)
106
- (?:,\s*|\Z)'xn).flatten
100
+ str.scan(/\G((?:"(?:\\.|[^"])+?"|[^",])+)
101
+ (?:,\s*|\Z)/xn).flatten
107
102
  end
108
103
 
109
104
  # Escapes HTTP reserved and unwise characters in +str+
110
105
  def escape_uri(str)
111
106
  str = str.dup
112
107
  str = binary_encode(str)
113
- str.gsub(UNESCAPED) { "%%%02X" % $1[0].ord }
108
+ str.gsub(UNESCAPED) { format('%%%02X', ::Regexp.last_match(1)[0].ord) }
114
109
  end
115
110
 
116
111
  # Unescapes HTTP reserved and unwise characters in +str+
117
112
  def unescape_uri(str)
118
113
  str = str.dup
119
114
  str = binary_encode(str)
120
- str.gsub(ESCAPED) { $1.hex.chr }
115
+ str.gsub(ESCAPED) { ::Regexp.last_match(1).hex.chr }
121
116
  end
122
117
 
123
118
  # Unescape form encoded values in +str+
124
119
  def unescape_form(str)
125
120
  str = str.dup
126
121
  str = binary_encode(str)
127
- str.gsub!(/\+/, ' ')
128
- str.gsub(ESCAPED) { $1.hex.chr }
122
+ str.tr!('+', ' ')
123
+ str.gsub(ESCAPED) { ::Regexp.last_match(1).hex.chr }
129
124
  end
130
125
 
131
126
  # Performs validation on the passed header hash and returns a string representation of the headers
132
127
  def headers_hash_to_s(headers)
133
- headers_str = String.new
128
+ headers_str = +''
134
129
  headers.each do |key, values|
135
- if key.to_s.match(/[\r\n]/)
136
- raise Excon::Errors::InvalidHeaderKey.new(key.to_s.inspect + ' contains forbidden "\r" or "\n"')
130
+ if key.to_s.match?(/[\r\n]/)
131
+ raise Excon::Errors::InvalidHeaderKey, "#{key.to_s.inspect} contains forbidden \"\\r\" or \"\\n\""
137
132
  end
133
+
138
134
  [values].flatten.each do |value|
139
- if value.to_s.match(/[\r\n]/)
135
+ if value.to_s.match?(/[\r\n]/)
140
136
  # Don't include the potentially sensitive header value (i.e. authorization token) in the message
141
- raise Excon::Errors::InvalidHeaderValue.new(key.to_s + ' header value contains forbidden "\r" or "\n"')
137
+ raise Excon::Errors::InvalidHeaderValue, "#{key} header value contains forbidden \"\\r\" or \"\\n\""
142
138
  end
139
+
143
140
  headers_str << key.to_s << ': ' << value.to_s << CR_NL
144
141
  end
145
142
  end
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.2.1'
4
+ VERSION = '1.2.3'
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.2.1
4
+ version: 1.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - dpiddy (Dan Peterson)
@@ -10,24 +10,24 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2024-11-14 00:00:00.000000000 Z
13
+ date: 2025-01-03 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: rspec
16
+ name: activesupport
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
19
  - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: 3.5.0
21
+ version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - ">="
27
27
  - !ruby/object:Gem::Version
28
- version: 3.5.0
28
+ version: '0'
29
29
  - !ruby/object:Gem::Dependency
30
- name: activesupport
30
+ name: delorean
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
33
  - - ">="
@@ -41,33 +41,33 @@ dependencies:
41
41
  - !ruby/object:Gem::Version
42
42
  version: '0'
43
43
  - !ruby/object:Gem::Dependency
44
- name: delorean
44
+ name: eventmachine
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: '0'
49
+ version: 1.0.4
50
50
  type: :development
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - ">="
55
55
  - !ruby/object:Gem::Version
56
- version: '0'
56
+ version: 1.0.4
57
57
  - !ruby/object:Gem::Dependency
58
- name: eventmachine
58
+ name: json
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - ">="
62
62
  - !ruby/object:Gem::Version
63
- version: 1.0.4
63
+ version: 1.8.5
64
64
  type: :development
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
68
  - - ">="
69
69
  - !ruby/object:Gem::Version
70
- version: 1.0.4
70
+ version: 1.8.5
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: open4
73
73
  requirement: !ruby/object:Gem::Requirement
@@ -83,7 +83,7 @@ dependencies:
83
83
  - !ruby/object:Gem::Version
84
84
  version: '0'
85
85
  - !ruby/object:Gem::Dependency
86
- name: rake
86
+ name: puma
87
87
  requirement: !ruby/object:Gem::Requirement
88
88
  requirements:
89
89
  - - ">="
@@ -97,7 +97,7 @@ dependencies:
97
97
  - !ruby/object:Gem::Version
98
98
  version: '0'
99
99
  - !ruby/object:Gem::Dependency
100
- name: shindo
100
+ name: rake
101
101
  requirement: !ruby/object:Gem::Requirement
102
102
  requirements:
103
103
  - - ">="
@@ -111,21 +111,21 @@ dependencies:
111
111
  - !ruby/object:Gem::Version
112
112
  version: '0'
113
113
  - !ruby/object:Gem::Dependency
114
- name: sinatra
114
+ name: rspec
115
115
  requirement: !ruby/object:Gem::Requirement
116
116
  requirements:
117
117
  - - ">="
118
118
  - !ruby/object:Gem::Version
119
- version: '0'
119
+ version: 3.5.0
120
120
  type: :development
121
121
  prerelease: false
122
122
  version_requirements: !ruby/object:Gem::Requirement
123
123
  requirements:
124
124
  - - ">="
125
125
  - !ruby/object:Gem::Version
126
- version: '0'
126
+ version: 3.5.0
127
127
  - !ruby/object:Gem::Dependency
128
- name: sinatra-contrib
128
+ name: shindo
129
129
  requirement: !ruby/object:Gem::Requirement
130
130
  requirements:
131
131
  - - ">="
@@ -139,21 +139,21 @@ dependencies:
139
139
  - !ruby/object:Gem::Version
140
140
  version: '0'
141
141
  - !ruby/object:Gem::Dependency
142
- name: json
142
+ name: sinatra
143
143
  requirement: !ruby/object:Gem::Requirement
144
144
  requirements:
145
145
  - - ">="
146
146
  - !ruby/object:Gem::Version
147
- version: 1.8.5
147
+ version: '0'
148
148
  type: :development
149
149
  prerelease: false
150
150
  version_requirements: !ruby/object:Gem::Requirement
151
151
  requirements:
152
152
  - - ">="
153
153
  - !ruby/object:Gem::Version
154
- version: 1.8.5
154
+ version: '0'
155
155
  - !ruby/object:Gem::Dependency
156
- name: puma
156
+ name: sinatra-contrib
157
157
  requirement: !ruby/object:Gem::Requirement
158
158
  requirements:
159
159
  - - ">="
@@ -229,10 +229,11 @@ homepage: https://github.com/excon/excon
229
229
  licenses:
230
230
  - MIT
231
231
  metadata:
232
- homepage_uri: https://github.com/excon/excon
233
232
  bug_tracker_uri: https://github.com/excon/excon/issues
234
233
  changelog_uri: https://github.com/excon/excon/blob/master/changelog.txt
235
234
  documentation_uri: https://github.com/excon/excon/blob/master/README.md
235
+ funding_uri: https://github.com/sponsors/geemus
236
+ homepage_uri: https://github.com/excon/excon
236
237
  source_code_uri: https://github.com/excon/excon
237
238
  wiki_uri: https://github.com/excon/excon/wiki
238
239
  post_install_message: