download 0.0.1.alpha → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +19 -2
- data/lib/download.rb +66 -3
- data/lib/download/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1d199ab74fcb858aa23df63831f09b1fd012f156
|
4
|
+
data.tar.gz: b3591e4c243edfaa606d1499e7ae6c461d6645d7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2493a20d5551ff0224668ad13051110b55be003338598ed9050a4881f8eec8d15e8488184f3bb46c08fb4e92e7015d305fd75b8239b3ec5c8f1db36d4bc905c8
|
7
|
+
data.tar.gz: 98dbc8a3f50bb694481f2c8fe6ed30044dcbb369b488a5a995f7c6eaa27481ea01989f3ec152f32e62d3cf8f117090fde0c821a5b129385350f8ed9c8fdc2aa7
|
data/README.md
CHANGED
@@ -1,2 +1,19 @@
|
|
1
|
-
#
|
2
|
-
|
1
|
+
# Download
|
2
|
+
|
3
|
+
Ruby Download helper that can handle even big file downloads too
|
4
|
+
|
5
|
+
## Use case
|
6
|
+
|
7
|
+
```ruby
|
8
|
+
|
9
|
+
require 'download'
|
10
|
+
Download.file(uri_path,target_local_file_path)
|
11
|
+
|
12
|
+
```
|
13
|
+
|
14
|
+
## Behavior
|
15
|
+
|
16
|
+
if the target file path is a directory, the file name will be based on the uri-s file name.
|
17
|
+
if no file path given, than the default location will be the current directory with the file uri name
|
18
|
+
|
19
|
+
The #file default return is a file path
|
data/lib/download.rb
CHANGED
@@ -1,5 +1,68 @@
|
|
1
|
-
require
|
1
|
+
require 'download/version'
|
2
|
+
require 'open-uri'
|
2
3
|
|
3
4
|
module Download
|
4
|
-
|
5
|
-
|
5
|
+
|
6
|
+
class Object
|
7
|
+
|
8
|
+
def initialize(hash={})
|
9
|
+
set_multi(hash)
|
10
|
+
raise(ArgumentError,'url is required') unless url
|
11
|
+
end
|
12
|
+
|
13
|
+
attr_accessor :url,:path
|
14
|
+
|
15
|
+
def uri_file_name
|
16
|
+
@uri_file_name ||= URI.parse(url).path.to_s.split('/').last
|
17
|
+
end
|
18
|
+
|
19
|
+
# return a string with a file path where the file will be saved
|
20
|
+
def file_path
|
21
|
+
|
22
|
+
self.path= File.join(Dir.pwd,uri_file_name) unless path
|
23
|
+
if File.directory?(path)
|
24
|
+
self.path= File.join(self.path,uri_file_name)
|
25
|
+
end
|
26
|
+
|
27
|
+
self.path
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
# start the downloading process
|
32
|
+
def start(hash={})
|
33
|
+
|
34
|
+
set_multi(hash)
|
35
|
+
|
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|
|
39
|
+
while (buf = fin.read(8192))
|
40
|
+
file_obj << buf
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
return file_path
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
protected
|
50
|
+
|
51
|
+
def set_multi(hash={})
|
52
|
+
raise(ArgumentError,'input must be hash!') unless hash.is_a?(Hash)
|
53
|
+
hash.each_pair do |key,value|
|
54
|
+
self.public_send("#{key}=",value)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
|
60
|
+
class << self
|
61
|
+
|
62
|
+
def file(file_url,target_file_path=nil)
|
63
|
+
Download::Object.new(url: file_url,path: target_file_path).start
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
|
68
|
+
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: 0.0
|
4
|
+
version: 1.0.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-01-
|
11
|
+
date: 2015-01-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -68,9 +68,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
68
68
|
version: '0'
|
69
69
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
70
70
|
requirements:
|
71
|
-
- - "
|
71
|
+
- - ">="
|
72
72
|
- !ruby/object:Gem::Version
|
73
|
-
version:
|
73
|
+
version: '0'
|
74
74
|
requirements: []
|
75
75
|
rubyforge_project:
|
76
76
|
rubygems_version: 2.4.3
|