efficient_downloader 0.3.7 → 0.3.8

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: 8c021a00ffb9610e319729eb525d1f4a85244374
4
- data.tar.gz: ad4cac9d2598113b7e4ad9399c63a88a200fafee
3
+ metadata.gz: fd23740e23b7e6f028a03f859ea01c7a11a8dae4
4
+ data.tar.gz: 47632ff921e73535e0c6c073d6e7cf5c0792c0ad
5
5
  SHA512:
6
- metadata.gz: 5dc24d6e0b248c3d3f14ebddde3cde2f4b529524a02eb29ffe46f221a204194ccd549c0d4b5f071ef43e2dceb004216743950ccd887ae57af23ea676610a060b
7
- data.tar.gz: 1ac79c7ab33926ad60f099747d81c04776f3d318160212501b2f5832c95eeb2dae2342a70271893416922435a3bba40fb5a6162267f7e47204fc9cf2122b1c97
6
+ metadata.gz: 4f6ed156760bfc89025f8f945dcd848533aca50e1f25ca147f14b92799d54f8c739ebfd2c202cdbe954bc37adfb5c0f34d8badc1dcd5f5b9b0b58c3b1b91e56d
7
+ data.tar.gz: '083c479bfbaaaae465e54b4485a6ad564236ca6de55b099a87f69f53715e13c587425f1de2e55af3acb023efdc1bd7477dbcf8feafaeb3b9d8d6801a4209be48'
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- efficient_downloader (0.3.7)
4
+ efficient_downloader (0.3.8)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -12,9 +12,7 @@ module EfficientDownloader
12
12
 
13
13
  def self.download(from, to, headers = nil)
14
14
  uri = URI.parse(from)
15
- unless uri.is_a?(URI::HTTP)
16
- raise FileDownloadError, "Invalid URL"
17
- end
15
+ raise FileDownloadError, "Invalid URL" unless uri.is_a?(URI::HTTP)
18
16
 
19
17
  request = Net::HTTP::Get.new(uri.request_uri)
20
18
  headers.each { |header| request[header.first] = header.last } if headers
@@ -44,11 +42,21 @@ module EfficientDownloader
44
42
  end
45
43
  end
46
44
  end
47
- download(redirect_uri, to, headers) if redirect_uri
45
+ if redirect_uri
46
+ sanitized = sanitized_redirect_uri(redirect_uri, uri)
47
+ download(sanitized, to, headers)
48
+ end
48
49
  rescue SocketError
49
50
  raise FileDownloadError, "The specified host could not be found."
50
51
  end
51
52
 
53
+ def self.sanitized_redirect_uri(redirect_uri, original_uri)
54
+ uri = URI.parse(redirect_uri)
55
+ return redirect_uri if uri.is_a?(URI::HTTP)
56
+ redirect_path = redirect_uri
57
+ "#{original_uri.scheme}://#{original_uri.host}#{redirect_path}"
58
+ end
59
+
52
60
  def self.ensure_directory(to)
53
61
  dirname = File.dirname(to)
54
62
  FileUtils.mkdir_p(dirname) unless File.directory?(dirname)
@@ -1,3 +1,3 @@
1
1
  module EfficientDownloader
2
- VERSION = "0.3.7"
2
+ VERSION = "0.3.8"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: efficient_downloader
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.7
4
+ version: 0.3.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carlos Martinez