simple_worker 0.6.2 → 0.6.3
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.
- data/README.markdown +19 -0
- data/lib/simple_worker/base.rb +13 -1
- data/lib/simple_worker/service.rb +15 -2
- data/lib/simple_worker.rb +3 -1
- metadata +4 -18
data/README.markdown
CHANGED
@@ -20,6 +20,20 @@ You really just need your access keys.
|
|
20
20
|
config.secret_key = SECRET_KEY
|
21
21
|
end
|
22
22
|
|
23
|
+
|
24
|
+
Configure SimpleWorker in Rails
|
25
|
+
----------------------
|
26
|
+
|
27
|
+
If you're using Rails you could set additional config option - "auto_merge=true".
|
28
|
+
It will automatically merge all models,mailers,gems and database configuration from your Rails app.
|
29
|
+
|
30
|
+
SimpleWorker.configure do |config|
|
31
|
+
config.access_key = ACCESS_KEY
|
32
|
+
config.secret_key = SECRET_KEY
|
33
|
+
config.auto_merge = true
|
34
|
+
end
|
35
|
+
|
36
|
+
|
23
37
|
Write a Worker
|
24
38
|
--------------
|
25
39
|
|
@@ -211,6 +225,11 @@ Or simpler yet, try using relative paths:
|
|
211
225
|
merge "../models/user"
|
212
226
|
merge "../models/account.rb"
|
213
227
|
|
228
|
+
Also you could use wildcards and path in merge_folder
|
229
|
+
|
230
|
+
merge_folder "./foldername/" #will merge all *.rb files from foldername
|
231
|
+
merge_folder "../lib/**/" # will merge all *.rb files from lib and all subdirectories
|
232
|
+
|
214
233
|
The opposite can be done as well with "unmerge" and can be useful when using Rails to exclude classes that are automatically
|
215
234
|
merged.
|
216
235
|
|
data/lib/simple_worker/base.rb
CHANGED
@@ -13,6 +13,7 @@ module SimpleWorker
|
|
13
13
|
@merged_workers = []
|
14
14
|
@merged_gems = []
|
15
15
|
@merged_mailers = []
|
16
|
+
@merged_folders = {}
|
16
17
|
@unmerged = []
|
17
18
|
|
18
19
|
def reset!
|
@@ -20,6 +21,7 @@ module SimpleWorker
|
|
20
21
|
@merged_workers = []
|
21
22
|
@merged_gems = []
|
22
23
|
@merged_mailers = []
|
24
|
+
@merged_folders = {}
|
23
25
|
@unmerged = []
|
24
26
|
end
|
25
27
|
|
@@ -86,6 +88,15 @@ module SimpleWorker
|
|
86
88
|
@merged_mailers << {:name=>basename, :path_to_templates=>path_to_templates, :filename => mailer}.merge!(params)
|
87
89
|
end
|
88
90
|
|
91
|
+
def merge_folder(path)
|
92
|
+
files = []
|
93
|
+
Dir["#{path}*.rb"].each do |f|
|
94
|
+
f = check_for_file(f)
|
95
|
+
files<<f
|
96
|
+
end
|
97
|
+
@merged_folders[path]=files unless files.empty?
|
98
|
+
SimpleWorker.logger.info "Merged folders! #{@merged_folders.inspect}"
|
99
|
+
end
|
89
100
|
# merges the specified files.
|
90
101
|
# todo: don't allow multiple files per merge, just one like require
|
91
102
|
def merge(*files)
|
@@ -326,6 +337,7 @@ module SimpleWorker
|
|
326
337
|
unmerged = self.class.instance_variable_get(:@unmerged)
|
327
338
|
merged_gems = self.class.instance_variable_get(:@merged_gems)
|
328
339
|
merged_mailers = self.class.instance_variable_get(:@merged_mailers)
|
340
|
+
merged_folders = self.class.instance_variable_get(:@merged_folders)
|
329
341
|
# puts 'merged1=' + merged.inspect
|
330
342
|
|
331
343
|
subclass = self.class
|
@@ -357,7 +369,7 @@ module SimpleWorker
|
|
357
369
|
end
|
358
370
|
merged.uniq!
|
359
371
|
merged_mailers.uniq!
|
360
|
-
SimpleWorker.service.upload(rfile, subclass.name, :merge=>merged, :unmerge=>unmerged, :merged_gems=>merged_gems, :merged_mailers=>merged_mailers)
|
372
|
+
SimpleWorker.service.upload(rfile, subclass.name, :merge=>merged, :unmerge=>unmerged, :merged_gems=>merged_gems, :merged_mailers=>merged_mailers,:merged_folders=>merged_folders)
|
361
373
|
self.class.instance_variable_set(:@uploaded, true)
|
362
374
|
else
|
363
375
|
SimpleWorker.logger.debug 'Already uploaded for ' + self.class.name
|
@@ -52,7 +52,7 @@ module SimpleWorker
|
|
52
52
|
end
|
53
53
|
|
54
54
|
|
55
|
-
zip_filename = build_merged_file(filename, options[:merge], options[:unmerge], options[:merged_gems], options[:merged_mailers])
|
55
|
+
zip_filename = build_merged_file(filename, options[:merge], options[:unmerge], options[:merged_gems], options[:merged_mailers], options[:merged_folders])
|
56
56
|
|
57
57
|
# sys.classes[subclass].__file__
|
58
58
|
# puts '__FILE__=' + Base.subclass.__file__.to_s
|
@@ -97,7 +97,7 @@ module SimpleWorker
|
|
97
97
|
end
|
98
98
|
end
|
99
99
|
|
100
|
-
def build_merged_file(filename, merge, unmerge, merged_gems, merged_mailers)
|
100
|
+
def build_merged_file(filename, merge, unmerge, merged_gems, merged_mailers,merged_folders)
|
101
101
|
# unless (merge && merge.size > 0) || (merged_gems && merged_gems.size > 0)
|
102
102
|
# return filename
|
103
103
|
# end
|
@@ -168,7 +168,20 @@ module SimpleWorker
|
|
168
168
|
raise "Gem #{gem[:name]} #{gem[:version]} was not found."
|
169
169
|
end
|
170
170
|
end
|
171
|
+
end
|
172
|
+
if merged_folders && merged_folders.size > 0
|
173
|
+
merged_folders.each do |folder, files|
|
174
|
+
SimpleWorker.logger.debug "Collecting folder #{folder}"
|
175
|
+
if files and files.size>0
|
176
|
+
files.each do |file|
|
177
|
+
zdest = "#{Digest::MD5.hexdigest(folder)}/#{file.sub(':','_').sub('/','_')}"
|
178
|
+
puts 'put file to=' + zdest
|
179
|
+
f.add(zdest, file)
|
180
|
+
end
|
181
|
+
end
|
182
|
+
end
|
171
183
|
end
|
184
|
+
|
172
185
|
merge.each do |m|
|
173
186
|
# puts "merging #{m} into #{filename}"
|
174
187
|
f.add(File.basename(m), m)
|
data/lib/simple_worker.rb
CHANGED
@@ -15,7 +15,9 @@ module SimpleWorker
|
|
15
15
|
|
16
16
|
def configure()
|
17
17
|
yield(config)
|
18
|
-
|
18
|
+
if config && config.access_key && config.secret_key
|
19
|
+
SimpleWorker.service ||= Service.new(config.access_key, config.secret_key, :config=>config)
|
20
|
+
end
|
19
21
|
end
|
20
22
|
|
21
23
|
def config
|
metadata
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_worker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 6
|
8
|
-
- 2
|
9
|
-
version: 0.6.2
|
4
|
+
prerelease:
|
5
|
+
version: 0.6.3
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
8
|
- Travis Reeder
|
@@ -14,8 +10,7 @@ autorequire:
|
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
12
|
|
17
|
-
date: 2011-
|
18
|
-
default_executable:
|
13
|
+
date: 2011-06-07 00:00:00 Z
|
19
14
|
dependencies:
|
20
15
|
- !ruby/object:Gem::Dependency
|
21
16
|
name: zip
|
@@ -25,8 +20,6 @@ dependencies:
|
|
25
20
|
requirements:
|
26
21
|
- - ">="
|
27
22
|
- !ruby/object:Gem::Version
|
28
|
-
segments:
|
29
|
-
- 0
|
30
23
|
version: "0"
|
31
24
|
type: :runtime
|
32
25
|
version_requirements: *id001
|
@@ -38,8 +31,6 @@ dependencies:
|
|
38
31
|
requirements:
|
39
32
|
- - ">="
|
40
33
|
- !ruby/object:Gem::Version
|
41
|
-
segments:
|
42
|
-
- 0
|
43
34
|
version: "0"
|
44
35
|
type: :runtime
|
45
36
|
version_requirements: *id002
|
@@ -62,7 +53,6 @@ files:
|
|
62
53
|
- lib/simple_worker/used_in_worker.rb
|
63
54
|
- rails/init.rb
|
64
55
|
- README.markdown
|
65
|
-
has_rdoc: true
|
66
56
|
homepage: http://github.com/appoxy/simple_worker
|
67
57
|
licenses: []
|
68
58
|
|
@@ -76,21 +66,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
76
66
|
requirements:
|
77
67
|
- - ">="
|
78
68
|
- !ruby/object:Gem::Version
|
79
|
-
segments:
|
80
|
-
- 0
|
81
69
|
version: "0"
|
82
70
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
83
71
|
none: false
|
84
72
|
requirements:
|
85
73
|
- - ">="
|
86
74
|
- !ruby/object:Gem::Version
|
87
|
-
segments:
|
88
|
-
- 0
|
89
75
|
version: "0"
|
90
76
|
requirements: []
|
91
77
|
|
92
78
|
rubyforge_project:
|
93
|
-
rubygems_version: 1.
|
79
|
+
rubygems_version: 1.7.2
|
94
80
|
signing_key:
|
95
81
|
specification_version: 3
|
96
82
|
summary: The official SimpleWorker gem for http://www.simpleworker.com
|