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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2ad9eade867b1a6124e5a0e1ea777121a471faaa
4
- data.tar.gz: fdc5935482dc2029c0aefc71c320a52bf53651a7
3
+ metadata.gz: 0fa3cb8c3cc64fec58b89f9e8ed880dbd539c75e
4
+ data.tar.gz: 932c55188b235ed7e8e07ba2e44c4275f11433dc
5
5
  SHA512:
6
- metadata.gz: 4a13f77cb32caa411cc4d6f5cca5b0bac035b39fd78e6b20f8807fe76a1b40441ff636de0799df2fa3e844563932573017534760f8a00693ce68bb838009ba7e
7
- data.tar.gz: ffd76f52dff1f4a02ca397c81c33ca70ea34a50f4fb2c0d5ee7a0cd65651bba3eea946cc6279ebc24ddddfc7300bfdd33a2e09ad87994378c0d21ce6dbb0f149
6
+ metadata.gz: 9c0c043da3f1531eaf939c536264e97792dec0409b2302302daafbaaca8d32576ae851b89d18781ff7a3c5465bc2a560d0f74327b4343a260db05df023a60991
7
+ data.tar.gz: 6dd098225ced2db454235ce1b1870201fa389be1aba3a3404fc4543479a1bb1b3d18776f6902e952cbbb6acea67bf7d1c3563a97b3a12b17c4ea05f60a32a3ee
@@ -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 = url.ascii_only? ? URI.parse(url) : Addressable::URI.parse(url)
22
+ uri = RedirectFollowGet.parse_url(url)
14
23
 
15
24
  case response = Net::HTTP.get_response(uri)
16
25
  when Net::HTTPSuccess
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module RedirectFollowGet
3
- VERSION = "0.0.3"
3
+ VERSION = "0.0.4"
4
4
  end
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.3
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: 2016-12-27 00:00:00.000000000 Z
11
+ date: 2017-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable