open-uri 0.2.0 → 0.3.0
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 +4 -4
- data/lib/open-uri.rb +28 -9
- metadata +4 -11
- data/.github/workflows/test.yml +0 -22
- data/.gitignore +0 -8
- data/Gemfile +0 -4
- data/Rakefile +0 -17
- data/bin/console +0 -14
- data/bin/setup +0 -8
- data/open-uri.gemspec +0 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fdfb473bed054e3c79c78c0e101bc019b4501a85e4cdf2c4feac15f1e288f427
|
4
|
+
data.tar.gz: ee7f6ee4dbc4fde6edb7b30c64ae97230b9862b7f26f3e43a22b42315aa33247
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1a448a39f6fb296628117482836b9b2a64dd7a1f465f87b2c224afda3c78defbbd5424c3c123ac784b8e8ec3dfb03ab43b904d55eff7ec255f4c591d16f2537d
|
7
|
+
data.tar.gz: d1f741ea9715d11d0cdc2036ba305134cb689e70911fa868d15ca8edcba29e9e802bf12377886896ab4fecaa3140601fdd4b9b6098dc04b4c0db8c0970b6f827
|
data/lib/open-uri.rb
CHANGED
@@ -9,7 +9,7 @@ module URI
|
|
9
9
|
# If the first argument responds to the 'open' method, 'open' is called on
|
10
10
|
# it with the rest of the arguments.
|
11
11
|
#
|
12
|
-
# If the first argument is a string that begins with <code>(protocol)
|
12
|
+
# If the first argument is a string that begins with <code>(protocol)://</code>, it is parsed by
|
13
13
|
# URI.parse. If the parsed object responds to the 'open' method,
|
14
14
|
# 'open' is called on it with the rest of the arguments.
|
15
15
|
#
|
@@ -99,6 +99,8 @@ module OpenURI
|
|
99
99
|
:open_timeout => true,
|
100
100
|
:ssl_ca_cert => nil,
|
101
101
|
:ssl_verify_mode => nil,
|
102
|
+
:ssl_min_version => nil,
|
103
|
+
:ssl_max_version => nil,
|
102
104
|
:ftp_active_mode => false,
|
103
105
|
:redirect => true,
|
104
106
|
:encoding => nil,
|
@@ -298,6 +300,8 @@ module OpenURI
|
|
298
300
|
require 'net/https'
|
299
301
|
http.use_ssl = true
|
300
302
|
http.verify_mode = options[:ssl_verify_mode] || OpenSSL::SSL::VERIFY_PEER
|
303
|
+
http.min_version = options[:ssl_min_version]
|
304
|
+
http.max_version = options[:ssl_max_version]
|
301
305
|
store = OpenSSL::X509::Store.new
|
302
306
|
if options[:ssl_ca_cert]
|
303
307
|
Array(options[:ssl_ca_cert]).each do |cert|
|
@@ -353,7 +357,8 @@ module OpenURI
|
|
353
357
|
when Net::HTTPMovedPermanently, # 301
|
354
358
|
Net::HTTPFound, # 302
|
355
359
|
Net::HTTPSeeOther, # 303
|
356
|
-
Net::HTTPTemporaryRedirect # 307
|
360
|
+
Net::HTTPTemporaryRedirect, # 307
|
361
|
+
Net::HTTPPermanentRedirect # 308
|
357
362
|
begin
|
358
363
|
loc_uri = URI.parse(resp['location'])
|
359
364
|
rescue URI::InvalidURIError
|
@@ -410,6 +415,13 @@ module OpenURI
|
|
410
415
|
end
|
411
416
|
end
|
412
417
|
|
418
|
+
# :stopdoc:
|
419
|
+
RE_LWS = /[\r\n\t ]+/n
|
420
|
+
RE_TOKEN = %r{[^\x00- ()<>@,;:\\"/\[\]?={}\x7f]+}n
|
421
|
+
RE_QUOTED_STRING = %r{"(?:[\r\n\t !#-\[\]-~\x80-\xff]|\\[\x00-\x7f])*"}n
|
422
|
+
RE_PARAMETERS = %r{(?:;#{RE_LWS}?#{RE_TOKEN}#{RE_LWS}?=#{RE_LWS}?(?:#{RE_TOKEN}|#{RE_QUOTED_STRING})#{RE_LWS}?)*}n
|
423
|
+
# :startdoc:
|
424
|
+
|
413
425
|
# Mixin for holding meta-information.
|
414
426
|
module Meta
|
415
427
|
def Meta.init(obj, src=nil) # :nodoc:
|
@@ -487,13 +499,6 @@ module OpenURI
|
|
487
499
|
end
|
488
500
|
end
|
489
501
|
|
490
|
-
# :stopdoc:
|
491
|
-
RE_LWS = /[\r\n\t ]+/n
|
492
|
-
RE_TOKEN = %r{[^\x00- ()<>@,;:\\"/\[\]?={}\x7f]+}n
|
493
|
-
RE_QUOTED_STRING = %r{"(?:[\r\n\t !#-\[\]-~\x80-\xff]|\\[\x00-\x7f])*"}n
|
494
|
-
RE_PARAMETERS = %r{(?:;#{RE_LWS}?#{RE_TOKEN}#{RE_LWS}?=#{RE_LWS}?(?:#{RE_TOKEN}|#{RE_QUOTED_STRING})#{RE_LWS}?)*}n
|
495
|
-
# :startdoc:
|
496
|
-
|
497
502
|
def content_type_parse # :nodoc:
|
498
503
|
vs = @metas['content-type']
|
499
504
|
# The last (?:;#{RE_LWS}?)? matches extra ";" which violates RFC2045.
|
@@ -698,6 +703,20 @@ module OpenURI
|
|
698
703
|
#
|
699
704
|
# :ssl_verify_mode is used to specify openssl verify mode.
|
700
705
|
#
|
706
|
+
# [:ssl_min_version]
|
707
|
+
# Synopsis:
|
708
|
+
# :ssl_min_version=>:TLS1_2
|
709
|
+
#
|
710
|
+
# :ssl_min_version option specifies the minimum allowed SSL/TLS protocol
|
711
|
+
# version. See also OpenSSL::SSL::SSLContext#min_version=.
|
712
|
+
#
|
713
|
+
# [:ssl_max_version]
|
714
|
+
# Synopsis:
|
715
|
+
# :ssl_max_version=>:TLS1_2
|
716
|
+
#
|
717
|
+
# :ssl_max_version option specifies the maximum allowed SSL/TLS protocol
|
718
|
+
# version. See also OpenSSL::SSL::SSLContext#max_version=.
|
719
|
+
#
|
701
720
|
# [:ftp_active_mode]
|
702
721
|
# Synopsis:
|
703
722
|
# :ftp_active_mode=>bool
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: open-uri
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tanaka Akira
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-12-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: uri
|
@@ -59,16 +59,9 @@ executables: []
|
|
59
59
|
extensions: []
|
60
60
|
extra_rdoc_files: []
|
61
61
|
files:
|
62
|
-
- ".github/workflows/test.yml"
|
63
|
-
- ".gitignore"
|
64
|
-
- Gemfile
|
65
62
|
- LICENSE.txt
|
66
63
|
- README.md
|
67
|
-
- Rakefile
|
68
|
-
- bin/console
|
69
|
-
- bin/setup
|
70
64
|
- lib/open-uri.rb
|
71
|
-
- open-uri.gemspec
|
72
65
|
homepage: https://github.com/ruby/open-uri
|
73
66
|
licenses:
|
74
67
|
- Ruby
|
@@ -91,7 +84,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
91
84
|
- !ruby/object:Gem::Version
|
92
85
|
version: '0'
|
93
86
|
requirements: []
|
94
|
-
rubygems_version: 3.
|
87
|
+
rubygems_version: 3.4.0.dev
|
95
88
|
signing_key:
|
96
89
|
specification_version: 4
|
97
90
|
summary: An easy-to-use wrapper for Net::HTTP, Net::HTTPS and Net::FTP.
|
data/.github/workflows/test.yml
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
name: test
|
2
|
-
|
3
|
-
on: [push, pull_request]
|
4
|
-
|
5
|
-
jobs:
|
6
|
-
build:
|
7
|
-
name: build (${{ matrix.ruby }} / ${{ matrix.os }})
|
8
|
-
strategy:
|
9
|
-
matrix:
|
10
|
-
ruby: [ 2.7, 2.6, 2.5, head ]
|
11
|
-
os: [ ubuntu-latest, macos-latest ]
|
12
|
-
runs-on: ${{ matrix.os }}
|
13
|
-
steps:
|
14
|
-
- uses: actions/checkout@v2
|
15
|
-
- name: Set up Ruby
|
16
|
-
uses: ruby/setup-ruby@v1
|
17
|
-
with:
|
18
|
-
ruby-version: ${{ matrix.ruby }}
|
19
|
-
- name: Install dependencies
|
20
|
-
run: bundle install
|
21
|
-
- name: Run test
|
22
|
-
run: rake test
|
data/.gitignore
DELETED
data/Gemfile
DELETED
data/Rakefile
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
require "bundler/gem_tasks"
|
2
|
-
require "rake/testtask"
|
3
|
-
|
4
|
-
Rake::TestTask.new(:test) do |t|
|
5
|
-
t.libs << "test/lib"
|
6
|
-
t.ruby_opts << "-rhelper"
|
7
|
-
t.test_files = FileList["test/**/test_*.rb"]
|
8
|
-
end
|
9
|
-
|
10
|
-
task :sync_tool do
|
11
|
-
require 'fileutils'
|
12
|
-
FileUtils.cp "../ruby/tool/lib/core_assertions.rb", "./test/lib"
|
13
|
-
FileUtils.cp "../ruby/tool/lib/envutil.rb", "./test/lib"
|
14
|
-
FileUtils.cp "../ruby/tool/lib/find_executable.rb", "./test/lib"
|
15
|
-
end
|
16
|
-
|
17
|
-
task :default => :test
|
data/bin/console
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require "bundler/setup"
|
4
|
-
require "open/uri"
|
5
|
-
|
6
|
-
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
-
# with your gem easier. You can also use a different console, if you like.
|
8
|
-
|
9
|
-
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
-
# require "pry"
|
11
|
-
# Pry.start
|
12
|
-
|
13
|
-
require "irb"
|
14
|
-
IRB.start(__FILE__)
|
data/bin/setup
DELETED
data/open-uri.gemspec
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
Gem::Specification.new do |spec|
|
2
|
-
spec.name = "open-uri"
|
3
|
-
spec.version = "0.2.0"
|
4
|
-
spec.authors = ["Tanaka Akira"]
|
5
|
-
spec.email = ["akr@fsij.org"]
|
6
|
-
|
7
|
-
spec.summary = %q{An easy-to-use wrapper for Net::HTTP, Net::HTTPS and Net::FTP.}
|
8
|
-
spec.description = %q{An easy-to-use wrapper for Net::HTTP, Net::HTTPS and Net::FTP.}
|
9
|
-
spec.homepage = "https://github.com/ruby/open-uri"
|
10
|
-
spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
|
11
|
-
spec.licenses = ["Ruby", "BSD-2-Clause"]
|
12
|
-
|
13
|
-
spec.metadata["homepage_uri"] = spec.homepage
|
14
|
-
spec.metadata["source_code_uri"] = spec.homepage
|
15
|
-
|
16
|
-
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
17
|
-
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
18
|
-
end
|
19
|
-
spec.bindir = "exe"
|
20
|
-
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
|
-
spec.require_paths = ["lib"]
|
22
|
-
|
23
|
-
spec.add_dependency "uri"
|
24
|
-
spec.add_dependency "stringio"
|
25
|
-
spec.add_dependency "time"
|
26
|
-
end
|