redirect_follow_get 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/redirect_follow_get.rb +10 -1
- data/lib/redirect_follow_get/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0fa3cb8c3cc64fec58b89f9e8ed880dbd539c75e
|
4
|
+
data.tar.gz: 932c55188b235ed7e8e07ba2e44c4275f11433dc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9c0c043da3f1531eaf939c536264e97792dec0409b2302302daafbaaca8d32576ae851b89d18781ff7a3c5465bc2a560d0f74327b4343a260db05df023a60991
|
7
|
+
data.tar.gz: 6dd098225ced2db454235ce1b1870201fa389be1aba3a3404fc4543479a1bb1b3d18776f6902e952cbbb6acea67bf7d1c3563a97b3a12b17c4ea05f60a32a3ee
|
data/lib/redirect_follow_get.rb
CHANGED
@@ -5,12 +5,21 @@ require 'net/http'
|
|
5
5
|
|
6
6
|
module RedirectFollowGet
|
7
7
|
class TooManyRedirects < StandardError; end
|
8
|
+
|
9
|
+
def self.parse_url(url)
|
10
|
+
return URI.parse(url) if url.ascii_only?
|
11
|
+
Addressable::URI.parse(url).normalize
|
12
|
+
rescue URI::InvalidURIError
|
13
|
+
# if InvalidURIError is raised in URI.parse(),
|
14
|
+
# fallback to Addressable::URI.parse() method.
|
15
|
+
Addressable::URI.parse(url).normalize
|
16
|
+
end
|
8
17
|
end
|
9
18
|
|
10
19
|
def redirect_follow_get(url, limit: 10)
|
11
20
|
raise RedirectFollowGet::TooManyRedirects, 'too many HTTP redirects' if limit.zero?
|
12
21
|
|
13
|
-
uri =
|
22
|
+
uri = RedirectFollowGet.parse_url(url)
|
14
23
|
|
15
24
|
case response = Net::HTTP.get_response(uri)
|
16
25
|
when Net::HTTPSuccess
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redirect_follow_get
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Toshimaru
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|