simple_worker 0.6.2 → 0.6.3

Sign up to get free protection for your applications and to get access to all the features.
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