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 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
 
@@ -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
- SimpleWorker.service ||= Service.new(config.access_key, config.secret_key, :config=>config)
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: false
5
- segments:
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-05-29 00:00:00 -07:00
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.3.7
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