efficient_downloader 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/efficient_downloader/version.rb +1 -1
- data/lib/efficient_downloader.rb +7 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c13ba1638a09a12bb98472db7527fb2e78371e42
|
4
|
+
data.tar.gz: 19944c33c3b6048ac3ba98ba8b42878719642f3a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8a3f88ca6ccf69fbd41d1873fbcc1e3160f326ee0e9e4216fbee1f2713e35068cbf35f29c52b45bf2c4f9e608ad20fe79af7dfb6872cafbe32a2ddf609208209
|
7
|
+
data.tar.gz: 5f8cdeaefe7e130b6c2cf41d42d7b5135b6dce708e30a57d5dca5f5e833f912da41b06e72688f5ddd941f726236eaef79392742ce97c4a13f856b47aa7da8e40
|
data/Gemfile.lock
CHANGED
data/lib/efficient_downloader.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require "efficient_downloader/version"
|
2
|
+
require "fileutils"
|
2
3
|
|
3
4
|
class FileDownloadError < StandardError
|
4
5
|
DEFAULT_MESSAGE = "There was a problem downloading the specified file"
|
@@ -27,10 +28,16 @@ module EfficientDownloader
|
|
27
28
|
elsif response.is_a?(Net::HTTPInternalServerError)
|
28
29
|
raise FileDownloadError, "Host of specified file returned an error."
|
29
30
|
else
|
31
|
+
ensure_directory(to)
|
30
32
|
File.open(to, "wb") { |io| response.read_body { |chunk| io.write(chunk) } }
|
31
33
|
end
|
32
34
|
end
|
33
35
|
end
|
34
36
|
download(redirect_uri, to) if redirect_uri
|
35
37
|
end
|
38
|
+
|
39
|
+
def self.ensure_directory(to)
|
40
|
+
dirname = File.dirname(to)
|
41
|
+
FileUtils.mkdir_p(dirname) unless File.directory?(dirname)
|
42
|
+
end
|
36
43
|
end
|