easy_downloader 0.0.3.alpha → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/easy_downloader.gemspec +3 -3
- data/lib/easy_downloader/abstract_loader.rb +9 -4
- data/lib/easy_downloader/downloader.rb +6 -13
- data/lib/easy_downloader/options.rb +2 -6
- data/lib/easy_downloader/sftp.rb +1 -1
- data/lib/easy_downloader/uploader.rb +1 -5
- metadata +25 -28
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0
|
1
|
+
0.1.0
|
data/easy_downloader.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{easy_downloader}
|
8
|
-
s.version = "0.0
|
8
|
+
s.version = "0.1.0"
|
9
9
|
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new("
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Bernardo Telles"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2011-06-24}
|
13
13
|
s.description = %q{ EasyDownloader reduces the amount of work required to setup and check for errors when downloading from another location. This
|
14
14
|
is useful when, for example, a client wants to you to pick a file up from their FTP, SFTP, or regular website on a nightly basis.
|
15
15
|
EasyDownloader gives you a one-method means of downloading those files, returns with a friendly error message if it fails
|
@@ -3,6 +3,8 @@ module EasyDownloader
|
|
3
3
|
|
4
4
|
attr_reader :files, :result
|
5
5
|
|
6
|
+
class_attribute :load_type
|
7
|
+
|
6
8
|
include Sftp
|
7
9
|
include Ftp
|
8
10
|
include Http
|
@@ -11,6 +13,13 @@ module EasyDownloader
|
|
11
13
|
@options= Options.new(*options)
|
12
14
|
end
|
13
15
|
|
16
|
+
|
17
|
+
def execute_load
|
18
|
+
[:ftp, :http, :sftp].include?(@options.type.to_sym) ?
|
19
|
+
send("#{@options.type}_#{self.class.load_type.to_s}".to_sym, @options) :
|
20
|
+
raise(NotImplementedError.new("we don't have an #{@options.type}er of this type."))
|
21
|
+
end
|
22
|
+
|
14
23
|
def execute
|
15
24
|
begin
|
16
25
|
@options.result.started
|
@@ -27,10 +36,6 @@ module EasyDownloader
|
|
27
36
|
|
28
37
|
private
|
29
38
|
|
30
|
-
def execute_load
|
31
|
-
raise NotImplementedError.new("#{self.class.name} does not have an 'execute_load' method.")
|
32
|
-
end
|
33
|
-
|
34
39
|
def error_message(options, e)
|
35
40
|
raise NotImplementedError.new("#{self.class.name} does not have an 'error_message' method.")
|
36
41
|
end
|
@@ -3,16 +3,7 @@ module EasyDownloader
|
|
3
3
|
|
4
4
|
private
|
5
5
|
|
6
|
-
|
7
|
-
case @options.type
|
8
|
-
when :ftp
|
9
|
-
ftp_download(@options)
|
10
|
-
when :http
|
11
|
-
http_download(@options)
|
12
|
-
when :sftp
|
13
|
-
sftp_download(@options)
|
14
|
-
end
|
15
|
-
end
|
6
|
+
self.load_type= 'download'
|
16
7
|
|
17
8
|
def error_message(options, e)
|
18
9
|
message = <<-ERROR_MESSAGE
|
@@ -24,9 +15,11 @@ module EasyDownloader
|
|
24
15
|
host: #{options.host}
|
25
16
|
user: #{options.user}
|
26
17
|
pass: [filtered]
|
27
|
-
|
28
|
-
|
29
|
-
|
18
|
+
remote_file: #{options.remote_file}
|
19
|
+
remote_path: #{options.remote_path}
|
20
|
+
remote_pattern: #{options.remote_pattern}
|
21
|
+
local_path: #{options.local_path}
|
22
|
+
local_file: #{options.local_file}
|
30
23
|
ERROR_MESSAGE
|
31
24
|
message
|
32
25
|
end
|
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'active_support/core_ext/array/extract_options'
|
2
2
|
module EasyDownloader
|
3
3
|
class Options
|
4
|
-
attr_accessor :files, :successful, :result, :load_count,
|
5
|
-
:
|
4
|
+
attr_accessor :files, :successful, :result, :load_count, :type,
|
5
|
+
:host, :user, :password,
|
6
6
|
:local_path, :remote_path,
|
7
7
|
:local_pattern, :remote_pattern,
|
8
8
|
:local_file, :remote_file
|
@@ -19,10 +19,6 @@ module EasyDownloader
|
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
-
def type
|
23
|
-
@type.to_sym
|
24
|
-
end
|
25
|
-
|
26
22
|
def remote_path
|
27
23
|
to_dir_path(@remote_path)
|
28
24
|
end
|
data/lib/easy_downloader/sftp.rb
CHANGED
@@ -10,7 +10,7 @@ module EasyDownloader
|
|
10
10
|
|
11
11
|
files.map(&:name).each do |path|
|
12
12
|
options.result.starting_path(path)
|
13
|
-
options.
|
13
|
+
options.load_count += 1 if sftp.download!("#{options.remote_path}#{path}", "#{options.local_path}#{path}")
|
14
14
|
options.result.finished_path(path)
|
15
15
|
options.result.files_downloaded << "#{options.local_path}#{path}"
|
16
16
|
end
|
@@ -3,11 +3,7 @@ module EasyDownloader
|
|
3
3
|
|
4
4
|
private
|
5
5
|
|
6
|
-
|
7
|
-
[:ftp, :http, :sftp].include?(@options.type) ?
|
8
|
-
send("#{@options.type.to_s}_upload".to_sym, @options) :
|
9
|
-
raise(NotImplementedError.new("we don't have an uploader of this type."))
|
10
|
-
end
|
6
|
+
self.load_type='upload'
|
11
7
|
|
12
8
|
def error_message(options, e)
|
13
9
|
message = <<-ERROR_MESSAGE
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: easy_downloader
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 27
|
5
|
+
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
+
- 1
|
8
9
|
- 0
|
9
|
-
|
10
|
-
- alpha
|
11
|
-
version: 0.0.3.alpha
|
10
|
+
version: 0.1.0
|
12
11
|
platform: ruby
|
13
12
|
authors:
|
14
13
|
- Bernardo Telles
|
@@ -16,10 +15,12 @@ autorequire:
|
|
16
15
|
bindir: bin
|
17
16
|
cert_chain: []
|
18
17
|
|
19
|
-
date:
|
18
|
+
date: 2011-06-24 00:00:00 -04:00
|
20
19
|
default_executable:
|
21
20
|
dependencies:
|
22
21
|
- !ruby/object:Gem::Dependency
|
22
|
+
prerelease: false
|
23
|
+
type: :runtime
|
23
24
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|
24
25
|
none: false
|
25
26
|
requirements:
|
@@ -32,10 +33,10 @@ dependencies:
|
|
32
33
|
- 3
|
33
34
|
version: 3.0.3
|
34
35
|
requirement: *id001
|
35
|
-
prerelease: false
|
36
|
-
type: :runtime
|
37
36
|
name: activesupport
|
38
37
|
- !ruby/object:Gem::Dependency
|
38
|
+
prerelease: false
|
39
|
+
type: :runtime
|
39
40
|
version_requirements: &id002 !ruby/object:Gem::Requirement
|
40
41
|
none: false
|
41
42
|
requirements:
|
@@ -46,10 +47,10 @@ dependencies:
|
|
46
47
|
- 0
|
47
48
|
version: "0"
|
48
49
|
requirement: *id002
|
49
|
-
prerelease: false
|
50
|
-
type: :runtime
|
51
50
|
name: net-sftp
|
52
51
|
- !ruby/object:Gem::Dependency
|
52
|
+
prerelease: false
|
53
|
+
type: :development
|
53
54
|
version_requirements: &id003 !ruby/object:Gem::Requirement
|
54
55
|
none: false
|
55
56
|
requirements:
|
@@ -60,10 +61,10 @@ dependencies:
|
|
60
61
|
- 0
|
61
62
|
version: "0"
|
62
63
|
requirement: *id003
|
63
|
-
prerelease: false
|
64
|
-
type: :development
|
65
64
|
name: ruby-debug
|
66
65
|
- !ruby/object:Gem::Dependency
|
66
|
+
prerelease: false
|
67
|
+
type: :development
|
67
68
|
version_requirements: &id004 !ruby/object:Gem::Requirement
|
68
69
|
none: false
|
69
70
|
requirements:
|
@@ -76,10 +77,10 @@ dependencies:
|
|
76
77
|
- 0
|
77
78
|
version: 2.1.0
|
78
79
|
requirement: *id004
|
79
|
-
prerelease: false
|
80
|
-
type: :development
|
81
80
|
name: rspec
|
82
81
|
- !ruby/object:Gem::Dependency
|
82
|
+
prerelease: false
|
83
|
+
type: :development
|
83
84
|
version_requirements: &id005 !ruby/object:Gem::Requirement
|
84
85
|
none: false
|
85
86
|
requirements:
|
@@ -92,10 +93,10 @@ dependencies:
|
|
92
93
|
- 0
|
93
94
|
version: 1.0.0
|
94
95
|
requirement: *id005
|
95
|
-
prerelease: false
|
96
|
-
type: :development
|
97
96
|
name: bundler
|
98
97
|
- !ruby/object:Gem::Dependency
|
98
|
+
prerelease: false
|
99
|
+
type: :development
|
99
100
|
version_requirements: &id006 !ruby/object:Gem::Requirement
|
100
101
|
none: false
|
101
102
|
requirements:
|
@@ -108,10 +109,10 @@ dependencies:
|
|
108
109
|
- 1
|
109
110
|
version: 1.5.1
|
110
111
|
requirement: *id006
|
111
|
-
prerelease: false
|
112
|
-
type: :development
|
113
112
|
name: jeweler
|
114
113
|
- !ruby/object:Gem::Dependency
|
114
|
+
prerelease: false
|
115
|
+
type: :development
|
115
116
|
version_requirements: &id007 !ruby/object:Gem::Requirement
|
116
117
|
none: false
|
117
118
|
requirements:
|
@@ -122,10 +123,10 @@ dependencies:
|
|
122
123
|
- 0
|
123
124
|
version: "0"
|
124
125
|
requirement: *id007
|
125
|
-
prerelease: false
|
126
|
-
type: :development
|
127
126
|
name: rcov
|
128
127
|
- !ruby/object:Gem::Dependency
|
128
|
+
prerelease: false
|
129
|
+
type: :development
|
129
130
|
version_requirements: &id008 !ruby/object:Gem::Requirement
|
130
131
|
none: false
|
131
132
|
requirements:
|
@@ -136,8 +137,6 @@ dependencies:
|
|
136
137
|
- 0
|
137
138
|
version: "0"
|
138
139
|
requirement: *id008
|
139
|
-
prerelease: false
|
140
|
-
type: :development
|
141
140
|
name: yard
|
142
141
|
description: " EasyDownloader reduces the amount of work required to setup and check for errors when downloading from another location. This \n is useful when, for example, a client wants to you to pick a file up from their FTP, SFTP, or regular website on a nightly basis.\n EasyDownloader gives you a one-method means of downloading those files, returns with a friendly error message if it fails\n (geared at cron job notifications), or returns an array of file names it downloaded."
|
143
142
|
email: btelles@gmail.com
|
@@ -191,14 +190,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
191
190
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
192
191
|
none: false
|
193
192
|
requirements:
|
194
|
-
- - "
|
193
|
+
- - ">="
|
195
194
|
- !ruby/object:Gem::Version
|
196
|
-
hash:
|
195
|
+
hash: 3
|
197
196
|
segments:
|
198
|
-
-
|
199
|
-
|
200
|
-
- 1
|
201
|
-
version: 1.3.1
|
197
|
+
- 0
|
198
|
+
version: "0"
|
202
199
|
requirements: []
|
203
200
|
|
204
201
|
rubyforge_project:
|