open-uri 0.3.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/open-uri.rb +10 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 78f03a56856bfc2aa1dbdd08478f6bda3ea2c29f83d7cd99ef762f5c0b52e067
|
4
|
+
data.tar.gz: cbd9c8771d3eb265509ad998d1331098f1866000e07ab8cfaa3dfaac4f31a360
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 23431550f621fade4ae9fa17ab13212dfc4a4d401d44e0b483e0315f223eb237610fb761acdc36c2eba70259aed5f11fc1fec748cdc75b8390dd2873a00f3ff0
|
7
|
+
data.tar.gz: dbb275774fe23edfaf364819ebabe871378831f3fa758a25aa9641040887cd878945b84d2a42b32d0436d0ecfcf35e2358be143028b25cce0bcbb57b5fa73176
|
data/lib/open-uri.rb
CHANGED
@@ -31,6 +31,7 @@ module URI
|
|
31
31
|
super
|
32
32
|
end
|
33
33
|
end
|
34
|
+
singleton_class.send(:ruby2_keywords, :open) if respond_to?(:ruby2_keywords, true)
|
34
35
|
end
|
35
36
|
|
36
37
|
# OpenURI is an easy-to-use wrapper for Net::HTTP, Net::HTTPS and Net::FTP.
|
@@ -89,6 +90,9 @@ end
|
|
89
90
|
# Author:: Tanaka Akira <akr@m17n.org>
|
90
91
|
|
91
92
|
module OpenURI
|
93
|
+
|
94
|
+
VERSION = "0.4.1"
|
95
|
+
|
92
96
|
Options = {
|
93
97
|
:proxy => true,
|
94
98
|
:proxy_http_basic_authentication => true,
|
@@ -104,6 +108,7 @@ module OpenURI
|
|
104
108
|
:ftp_active_mode => false,
|
105
109
|
:redirect => true,
|
106
110
|
:encoding => nil,
|
111
|
+
:max_redirects => 64,
|
107
112
|
}
|
108
113
|
|
109
114
|
def OpenURI.check_options(options) # :nodoc:
|
@@ -207,6 +212,7 @@ module OpenURI
|
|
207
212
|
end
|
208
213
|
|
209
214
|
uri_set = {}
|
215
|
+
max_redirects = options[:max_redirects]
|
210
216
|
buf = nil
|
211
217
|
while true
|
212
218
|
redirect = catch(:open_uri_redirect) {
|
@@ -234,6 +240,7 @@ module OpenURI
|
|
234
240
|
uri = redirect
|
235
241
|
raise "HTTP redirection loop: #{uri}" if uri_set.include? uri.to_s
|
236
242
|
uri_set[uri.to_s] = true
|
243
|
+
raise TooManyRedirects.new("Too many redirects", buf.io) if max_redirects && uri_set.size > max_redirects
|
237
244
|
else
|
238
245
|
break
|
239
246
|
end
|
@@ -388,6 +395,9 @@ module OpenURI
|
|
388
395
|
attr_reader :uri
|
389
396
|
end
|
390
397
|
|
398
|
+
class TooManyRedirects < HTTPError
|
399
|
+
end
|
400
|
+
|
391
401
|
class Buffer # :nodoc: all
|
392
402
|
def initialize
|
393
403
|
@io = StringIO.new
|
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.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tanaka Akira
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-12-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: uri
|
@@ -84,7 +84,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
84
84
|
- !ruby/object:Gem::Version
|
85
85
|
version: '0'
|
86
86
|
requirements: []
|
87
|
-
rubygems_version: 3.
|
87
|
+
rubygems_version: 3.5.0.dev
|
88
88
|
signing_key:
|
89
89
|
specification_version: 4
|
90
90
|
summary: An easy-to-use wrapper for Net::HTTP, Net::HTTPS and Net::FTP.
|