download 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +13 -0
- data/lib/download.rb +18 -13
- data/lib/download/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: 7b374492161fe8ab621081b7fe14ffd09f1e013d
|
4
|
+
data.tar.gz: 0be4af9659cdeddbbabf3a67085551aaa1adab51
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0e4daefccc7bc6230592b0b57317d82e76fe930d3d25808df39e6e90d2948deaae6536aedb175858489d8744fcc678da177b3e8ea6548beafec5d18811750375
|
7
|
+
data.tar.gz: c8661238df7f3148f7c5f7d6c6af7d658a7d8dee4d466d52da4ae403b98a53fdb17102edc3d8aac4b8e0ea58d3a49d582fcbd274a93140007df6ba649f105cff
|
data/README.md
CHANGED
@@ -4,6 +4,8 @@ Ruby Download helper that can handle even big file downloads too
|
|
4
4
|
|
5
5
|
## Use case
|
6
6
|
|
7
|
+
auth less use case
|
8
|
+
|
7
9
|
```ruby
|
8
10
|
|
9
11
|
require 'download'
|
@@ -11,6 +13,17 @@ Ruby Download helper that can handle even big file downloads too
|
|
11
13
|
|
12
14
|
```
|
13
15
|
|
16
|
+
with basic auth
|
17
|
+
|
18
|
+
```ruby
|
19
|
+
|
20
|
+
Download.file(
|
21
|
+
'http://www.example.com/something.zip',
|
22
|
+
http_basic_authentication: ['username', '123abc']
|
23
|
+
)
|
24
|
+
|
25
|
+
```
|
26
|
+
|
14
27
|
## Behavior
|
15
28
|
|
16
29
|
if the target file path is a directory, the file name will be based on the uri-s file name.
|
data/lib/download.rb
CHANGED
@@ -5,13 +5,13 @@ module Download
|
|
5
5
|
|
6
6
|
class Object
|
7
7
|
|
8
|
+
attr_accessor :url, :path, :options
|
9
|
+
|
8
10
|
def initialize(hash={})
|
9
11
|
set_multi(hash)
|
10
|
-
raise(ArgumentError,'url is required') unless url
|
12
|
+
raise(ArgumentError, 'url is required') unless url
|
11
13
|
end
|
12
14
|
|
13
|
-
attr_accessor :url,:path
|
14
|
-
|
15
15
|
def uri_file_name
|
16
16
|
@uri_file_name ||= URI.parse(url).path.to_s.split('/').last
|
17
17
|
end
|
@@ -19,9 +19,9 @@ module Download
|
|
19
19
|
# return a string with a file path where the file will be saved
|
20
20
|
def file_path
|
21
21
|
|
22
|
-
self.path= File.join(Dir.pwd,uri_file_name) unless path
|
22
|
+
self.path= File.join(Dir.pwd, uri_file_name) unless path
|
23
23
|
if File.directory?(path)
|
24
|
-
self.path= File.join(self.path,uri_file_name)
|
24
|
+
self.path= File.join(self.path, uri_file_name)
|
25
25
|
end
|
26
26
|
|
27
27
|
self.path
|
@@ -34,8 +34,8 @@ module Download
|
|
34
34
|
set_multi(hash)
|
35
35
|
|
36
36
|
File.delete(file_path) if File.exist?(file_path)
|
37
|
-
File.open(file_path,'wb') do |file_obj|
|
38
|
-
Kernel.open(url) do |fin|
|
37
|
+
File.open(file_path, 'wb') do |file_obj|
|
38
|
+
Kernel.open(*[url,options].compact) do |fin|
|
39
39
|
while (buf = fin.read(8192))
|
40
40
|
file_obj << buf
|
41
41
|
end
|
@@ -49,18 +49,23 @@ module Download
|
|
49
49
|
protected
|
50
50
|
|
51
51
|
def set_multi(hash={})
|
52
|
-
raise(ArgumentError,'input must be hash!') unless hash.is_a?(Hash)
|
53
|
-
hash.each_pair
|
54
|
-
self.public_send("#{key}=",value)
|
55
|
-
end
|
52
|
+
raise(ArgumentError, 'input must be hash!') unless hash.is_a?(Hash)
|
53
|
+
hash.each_pair { |key, value| self.public_send("#{key}=", value) unless value.nil? }
|
56
54
|
end
|
57
55
|
|
58
56
|
end
|
59
57
|
|
60
58
|
class << self
|
61
59
|
|
62
|
-
|
63
|
-
|
60
|
+
# first argumnet is url, required
|
61
|
+
# second argument is path, optional
|
62
|
+
# third argument is open-uri options, optional
|
63
|
+
def file(*args)
|
64
|
+
Download::Object.new(
|
65
|
+
url: args.shift,
|
66
|
+
path: (args[0].is_a?(String) ? args[0] : nil),
|
67
|
+
options: (args.last.is_a?(Hash) ? args.last : nil)
|
68
|
+
).start
|
64
69
|
end
|
65
70
|
|
66
71
|
end
|
data/lib/download/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: download
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Luzsi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-02-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|