iron_worker 2.3.16 → 2.3.17

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.
Files changed (64) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +4 -0
  3. data/Rakefile +31 -0
  4. data/iron_worker.gemspec +27 -0
  5. data/lib/generators/iron_worker/templates/template_worker.erb +7 -0
  6. data/lib/iron_worker/service.rb +1 -1
  7. data/lib/iron_worker/version.rb +4 -0
  8. data/test/Gemfile +36 -0
  9. data/test/Gemfile.lock +169 -0
  10. data/test/README.md +5 -0
  11. data/test/batch_run.rb +121 -0
  12. data/test/config_sample.yml +13 -0
  13. data/test/models/cool_model.rb +7 -0
  14. data/test/models/db_model.rb +6 -0
  15. data/test/models/model_1.rb +16 -0
  16. data/test/models/model_2.rb +16 -0
  17. data/test/quick_run.rb +36 -0
  18. data/test/quick_schedule.rb +18 -0
  19. data/test/resources/something.yml +4 -0
  20. data/test/simple_script.rb +11 -0
  21. data/test/test_base.rb +79 -0
  22. data/test/test_database.rb +31 -0
  23. data/test/test_gems.rb +31 -0
  24. data/test/test_inheritance.rb +25 -0
  25. data/test/test_iron_worker.rb +194 -0
  26. data/test/test_merging.rb +51 -0
  27. data/test/test_non_worker_script.rb +14 -0
  28. data/test/test_rails.rb +35 -0
  29. data/test/test_scheduling.rb +74 -0
  30. data/test/test_scheduling_no_active_support.rb +37 -0
  31. data/test/test_service.rb +28 -0
  32. data/test/test_uploads.rb +30 -0
  33. data/test/test_webhooks.rb +45 -0
  34. data/test/v2quick.rb +29 -0
  35. data/test/workers/awesome_job.rb +26 -0
  36. data/test/workers/aws_s3_worker.rb +10 -0
  37. data/test/workers/big_data_worker.rb +15 -0
  38. data/test/workers/big_gems_worker.rb +35 -0
  39. data/test/workers/cool_worker.rb +14 -0
  40. data/test/workers/db_worker.rb +27 -0
  41. data/test/workers/fail_worker.rb +10 -0
  42. data/test/workers/gem_dependency_worker.rb +20 -0
  43. data/test/workers/hacker_worker.rb +65 -0
  44. data/test/workers/iw_test_worker.rb +22 -0
  45. data/test/workers/iw_test_worker_2.rb +53 -0
  46. data/test/workers/iw_test_worker_3.rb +17 -0
  47. data/test/workers/local_vs_remote_worker.rb +9 -0
  48. data/test/workers/merging_worker.rb +40 -0
  49. data/test/workers/mq_worker.rb +21 -0
  50. data/test/workers/one_line_worker.rb +10 -0
  51. data/test/workers/prawn_worker.rb +32 -0
  52. data/test/workers/progress_worker.rb +26 -0
  53. data/test/workers/qb_worker.rb +17 -0
  54. data/test/workers/rails_worker.rb +24 -0
  55. data/test/workers/rails_worker2.rb +12 -0
  56. data/test/workers/requiring_worker.rb +4 -0
  57. data/test/workers/running_back_worker.rb +7 -0
  58. data/test/workers/scheduled_worker.rb +15 -0
  59. data/test/workers/second_worker.rb +16 -0
  60. data/test/workers/third_worker.rb +6 -0
  61. data/test/workers/webhook_worker.rb +7 -0
  62. data/test/zip_vs_gzip.rb +26 -0
  63. metadata +146 -91
  64. data/VERSION.yml +0 -5
data/test/test_gems.rb ADDED
@@ -0,0 +1,31 @@
1
+ require_relative 'test_base'
2
+ require_relative 'workers/awesome_job'
3
+ require_relative 'workers/aws_s3_worker'
4
+
5
+ class TestGems < TestBase
6
+
7
+ def test_dropbox_gem
8
+
9
+ worker = AwesomeJob.new
10
+ worker.queue
11
+
12
+ worker.wait_until_complete
13
+
14
+ puts 'log=' + worker.get_log
15
+
16
+ end
17
+
18
+ def test_aws_s3_gem
19
+
20
+ worker = AwsS3Worker.new
21
+ puts 'run_local'
22
+ worker.run_local
23
+ worker.queue
24
+
25
+ worker.wait_until_complete
26
+
27
+ puts 'log=' + worker.get_log
28
+
29
+ end
30
+
31
+ end
@@ -0,0 +1,25 @@
1
+ require_relative 'test_base'
2
+
3
+ class TestInheritance < TestBase
4
+
5
+ def test_who_am_i
6
+
7
+ worker = TestWorker2.new
8
+ puts "1: " + worker.who_am_i?
9
+ puts "2: " + worker.who_am_i2?
10
+
11
+
12
+ end
13
+
14
+ def test_multi_subs
15
+ t3 = TestWorker3.new
16
+ t3.queue
17
+ t3.wait_until_complete
18
+ puts "LOG:"
19
+ log = t3.get_log
20
+ puts log
21
+ assert log.include?("super_class_method")
22
+
23
+ end
24
+
25
+ end
@@ -0,0 +1,194 @@
1
+ require_relative 'test_base'
2
+ require_relative 'workers/cool_worker'
3
+ require_relative 'models/cool_model'
4
+ require_relative 'workers/gem_dependency_worker'
5
+ require_relative 'workers/fail_worker'
6
+ require_relative 'workers/progress_worker'
7
+ require_relative 'workers/one_line_worker'
8
+ require_relative 'workers/big_gems_worker'
9
+ require_relative 'workers/webhook_worker'
10
+ require_relative 'workers/local_vs_remote_worker'
11
+
12
+ class IronWorkerTests < TestBase
13
+
14
+ # todo: test both gems
15
+ #def test_rest_client
16
+ # Uber.gem = :rest_client
17
+ #
18
+ # worker = OneLineWorker.new
19
+ # worker.queue
20
+ #
21
+ # IronWorker.service.host = "http://www.wlajdfljalsjfklsldf.com/"
22
+ # IronWorker.service.reset_base_url
23
+ #
24
+ # status = worker.wait_until_complete
25
+ # p status
26
+ # p status["error_class"]
27
+ # p status["msg"]
28
+ # puts "\n\n\nLOG START:"
29
+ # log = worker.get_log
30
+ # puts log
31
+ # puts "LOG END\n\n\n"
32
+ # assert status["status"] == "complete", "Status was not complete, it was #{status["status"]}"
33
+ # Uber.gem = :typhoeus
34
+ #end
35
+
36
+
37
+ def test_old_gem_error_message
38
+ assert_raise do
39
+ IronWorker.config.access_key = "abc"
40
+ end
41
+ assert_raise do
42
+ assert_raise IronWorker.config.secret_key = "abc"
43
+ end
44
+ end
45
+
46
+ def test_gem_merging
47
+ worker = GemDependencyWorker.new
48
+ worker.queue
49
+ status = worker.wait_until_complete
50
+ p status
51
+ puts_log(worker)
52
+ assert status["status"] == "complete", "Status was not complete, it was #{status["status"]}"
53
+ end
54
+
55
+ def test_new_worker_style
56
+ # Add something to queue, get task ID back
57
+ tw = TestWorker2.new
58
+ tw.s3_key = "active style runner"
59
+ tw.times = 3
60
+ tw.x = true
61
+
62
+ # queue up a task
63
+ puts 'queuing ' + tw.inspect
64
+
65
+ response_hash = nil
66
+ 5.times do |i|
67
+ response_hash = tw.queue
68
+ end
69
+
70
+ puts 'response_hash=' + response_hash.inspect
71
+ puts 'task_id=' + tw.task_id
72
+
73
+ assert response_hash["msg"]
74
+ assert response_hash["tasks"]
75
+ assert response_hash["tasks"][0]["id"].length == 24, "length is #{response_hash["tasks"][0]["id"].length}"
76
+ assert response_hash["tasks"][0]["id"] == tw.task_id
77
+
78
+ status = tw.wait_until_complete
79
+
80
+ puts 'LOG=' + tw.get_log
81
+ assert tw.status["status"] == "complete"
82
+
83
+ end
84
+
85
+ def test_global_attributes
86
+ worker = TestWorker3.new
87
+ worker.run_local
88
+
89
+ puts 'worker=' + worker.inspect
90
+
91
+ assert_equal "sa", worker.db_user
92
+ assert_equal "pass", worker.db_pass
93
+ assert_equal 123, worker.x
94
+
95
+ end
96
+
97
+
98
+ def test_data_passing
99
+ cool = CoolWorker.new
100
+ cool.array_of_models = [CoolModel.new(:name => "name1"), CoolModel.new(:name => "name2")]
101
+ cool.queue
102
+ status = cool.wait_until_complete
103
+ assert status["status"] == "complete"
104
+ log = IronWorker.service.log(cool.task_id)
105
+ puts 'log=' + log.inspect
106
+ assert log.length > 10
107
+
108
+ end
109
+
110
+ def test_set_progress
111
+ worker = TestWorker.new
112
+ worker.s3_key = "abc"
113
+ worker.times = 10
114
+ worker.queue
115
+ status = worker.wait_until_complete
116
+ p status
117
+ log = worker.get_log
118
+ puts 'log: ' + log
119
+ puts 'STATUS: ' + status.inspect
120
+ assert log.include?("running at 5")
121
+ assert status["status"] == "complete"
122
+ assert status["percent"] > 0
123
+
124
+ end
125
+
126
+ def test_exceptions
127
+ worker = FailWorker.new
128
+ worker.queue
129
+ status = worker.wait_until_complete
130
+ assert status["status"] == "error"
131
+ assert status["msg"].present?
132
+ end
133
+
134
+
135
+ def test_progress
136
+ worker = ProgressWorker.new
137
+ worker.s3_key = "YOOOOO"
138
+ worker.queue
139
+
140
+ status = worker.wait_until_complete
141
+ p status
142
+ p status["error_class"]
143
+ p status["msg"]
144
+ puts "\n\n\nLOG START:"
145
+ log = worker.get_log
146
+ puts log
147
+ puts "LOG END\n\n\n"
148
+ puts "Status:"
149
+ puts status
150
+ assert status["status"] == "complete", "Status was not complete, it was #{status["status"]}"
151
+ assert log.include?(worker.s3_key)
152
+ #assert status["percent"]
153
+ #assert status["percent"] > 0
154
+ end
155
+
156
+ def test_big_gems_worker
157
+
158
+ #raise "BigGemWorker DOESN'T WORK, remove this raise when fixed."
159
+
160
+ worker = BigGemsWorker.new
161
+ worker.queue
162
+
163
+ status = worker.wait_until_complete
164
+ p status
165
+ p status["error_class"]
166
+ p status["msg"]
167
+ puts "\n\n\nLOG START:"
168
+ log = worker.get_log
169
+ puts log
170
+ puts "LOG END\n\n\n"
171
+ assert status["status"] == "complete", "Status was not complete, it was #{status["status"]}"
172
+ assert log.include?("hello")
173
+ end
174
+
175
+
176
+ def test_local_vs_remote
177
+
178
+ worker = LocalVsRemoteWorker.new
179
+ worker.run_local
180
+ assert worker.is_local?
181
+ # now remote
182
+ worker.queue
183
+
184
+ status = worker.wait_until_complete
185
+ p status
186
+ log = worker.get_log
187
+ puts 'log: ' + log
188
+ puts 'STATUS: ' + status.inspect
189
+ assert status["status"] == "complete"
190
+ assert log.include?("is_remote? true")
191
+ end
192
+
193
+ end
194
+
@@ -0,0 +1,51 @@
1
+ require_relative 'test_base'
2
+ #require 'active_record'
3
+ require_relative 'workers/cool_worker'
4
+ require_relative 'models/cool_model'
5
+ require_relative 'models/db_model'
6
+ require_relative 'workers/prawn_worker'
7
+
8
+ class TestMerging < TestBase
9
+
10
+ def test_merge_worker
11
+ tw = TestWorker2.new
12
+ tw.s3_key = "active style runner"
13
+ tw.times = 3
14
+ tw.x = true
15
+
16
+ response_hash_single = nil
17
+ 5.times do |i|
18
+ begin
19
+ response_hash_single = tw.queue
20
+ rescue => ex
21
+ puts ex.message
22
+ raise ex
23
+ end
24
+ end
25
+
26
+ puts 'response_hash=' + response_hash_single.inspect
27
+ puts 'task_id=' + tw.task_id
28
+ status = tw.wait_until_complete
29
+ puts 'log=' + tw.get_log
30
+ assert tw.status["status"] == "complete"
31
+ end
32
+
33
+ def test_include_dirs
34
+ worker = PrawnWorker.new
35
+ worker.queue
36
+
37
+ status = worker.wait_until_complete
38
+ p status
39
+ puts "\n\n\nLOG START:"
40
+ l = worker.get_log
41
+ puts l
42
+ puts "LOG END\n\n\n"
43
+ assert status["status"] == "complete", "Status was not complete, it was #{status["status"]}"
44
+ assert l.include?("hello.pdf")
45
+ end
46
+
47
+ def test_merge_mailer
48
+
49
+ end
50
+
51
+ end
@@ -0,0 +1,14 @@
1
+ ## This is a test for running a simple ruby script, not using the Base class.
2
+ #require_relative 'test_base'
3
+ #
4
+ #class ScriptTest < TestBase
5
+ #
6
+ # def test_script
7
+ # IronWorker.service.upload "one_line_worker.rb", "OneLineWorker"
8
+ # queue_result = IronWorker.service.queue "simple_script_name", 'x'=>"attribute x"
9
+ # status = IronWorker.service.wait_until_complete(queue_result)
10
+ # assert status["status"] = "complete"
11
+ # # todo: assert log contains our x attribute value
12
+ # end
13
+ #
14
+ #end
@@ -0,0 +1,35 @@
1
+ require_relative 'test_base'
2
+ require_relative 'workers/rails_worker'
3
+ require 'active_support/core_ext'
4
+
5
+ module Rails
6
+ def self.env
7
+ "superenviro"
8
+ end
9
+
10
+ def self.version
11
+ "3.0.1"
12
+ end
13
+ end
14
+
15
+ class RailsTests < TestBase
16
+
17
+ def test_env
18
+ worker = RailsWorker.new
19
+ worker.queue(:priority => 2)
20
+
21
+ status = worker.wait_until_complete
22
+ p status
23
+ p status["error_class"]
24
+ p status["msg"]
25
+ assert status["status"] == "complete", "Status was not complete, it was #{status["status"]}"
26
+ puts "\n\n\nLOG START:"
27
+ log = worker.get_log
28
+ puts log
29
+ puts "LOG END\n\n\n"
30
+ assert log.include?("env=" + Rails.env)
31
+
32
+ end
33
+
34
+ end
35
+
@@ -0,0 +1,74 @@
1
+ require_relative 'test_base'
2
+ require_relative 'workers/one_line_worker'
3
+ require 'active_support/core_ext'
4
+
5
+ class IronWorkerTests < TestBase
6
+
7
+ def test_scheduler
8
+ worker = OneLineWorker.new
9
+
10
+ start_time = Time.now
11
+ worker.schedule(:start_at=>30.seconds.from_now)
12
+ status = worker.wait_until_complete
13
+ assert status["status"] == "complete"
14
+ end_time = Time.now
15
+ duration = (end_time-start_time)
16
+ puts "duration=#{duration}"
17
+ assert duration > 28
18
+
19
+ worker = OneLineWorker.new
20
+ worker.schedule(:start_at=>1.seconds.from_now, :run_every=>60, :end_at=>(6*60).seconds.from_now)
21
+ status = worker.wait_until_complete
22
+ assert status["status"] == "complete"
23
+ puts "run_count=#{status["run_count"]}"
24
+ assert status["run_count"] > 5
25
+ assert status["run_count"] < 20
26
+
27
+ worker = OneLineWorker.new
28
+ worker.schedule(:start_at => 2.seconds.since, :run_every => 60, :run_times => 5)
29
+ status = worker.wait_until_complete
30
+ assert status["status"] == "complete"
31
+ puts "run_count=#{status["run_count"]}"
32
+ assert status["run_count"] == 5
33
+ end
34
+
35
+ def test_schedule_cancel
36
+ puts 'test_schedule_cancel'
37
+ worker = OneLineWorker.new
38
+ worker.schedule(start_at: 30.seconds.from_now)
39
+ p worker
40
+ IronWorker.service.cancel_schedule(worker.schedule_id)
41
+ assert_equal worker.status['status'], 'cancelled'
42
+ end
43
+
44
+ def test_schedules_paging
45
+ puts 'test_schedule_cancel'
46
+ 1.times do |i|
47
+ worker = OneLineWorker.new
48
+ worker.schedule(start_at: 30.seconds.from_now)
49
+ p worker
50
+ end
51
+ sleep 1
52
+ page = 0
53
+ while page <= 100
54
+ puts "page #{page}"
55
+ schedules = IronWorker.service.schedules(:page=>page)['schedules']
56
+ page += 1
57
+ puts 'schedules=' + schedules.inspect
58
+ puts 'schedules.size=' + schedules.size.to_s
59
+ if schedules.size == 0
60
+ return
61
+ end
62
+ schedules.each do |s|
63
+ puts "schedule: #{s['id']} #{s['status']}"
64
+ if s['status'] != 'scheduled'
65
+ next
66
+ end
67
+ puts 'SCHEDULED!! Cancelling...'
68
+ IronWorker.service.cancel_schedule(s['id'])
69
+ end
70
+ end
71
+ end
72
+
73
+ end
74
+
@@ -0,0 +1,37 @@
1
+ require_relative 'test_base'
2
+ require_relative 'workers/one_line_worker'
3
+ require 'time'
4
+
5
+ class IronWorkerTests < TestBase
6
+
7
+ def test_scheduler_no_as
8
+ worker = OneLineWorker.new
9
+
10
+ start_time = Time.now
11
+ worker.schedule(:start_at=>(Time.now + 30).iso8601)
12
+ status = worker.wait_until_complete
13
+ assert status["status"] == "complete"
14
+ end_time = Time.now
15
+ duration = (end_time-start_time)
16
+ puts "duration=#{duration}"
17
+ assert duration > 28
18
+
19
+ worker = OneLineWorker.new
20
+ worker.schedule(:start_at=>Time.now.iso8601, :run_every=>60, :end_at=>(Time.now + (60*5)).iso8601)
21
+ status = worker.wait_until_complete
22
+ assert status["status"] == "complete"
23
+ puts "run_count=#{status["run_count"]}"
24
+ assert status["run_count"] > 4
25
+ assert status["run_count"] < 10
26
+
27
+ worker = OneLineWorker.new
28
+ worker.schedule(:start_at => Time.now.iso8601, :run_every => 60, :run_times => 5)
29
+ status = worker.wait_until_complete
30
+ assert status["status"] == "complete"
31
+ puts "run_count=#{status["run_count"]}"
32
+ assert status["run_count"] == 5
33
+ end
34
+
35
+
36
+ end
37
+
@@ -0,0 +1,28 @@
1
+ require_relative 'test_base'
2
+
3
+ class ServiceTests < TestBase
4
+
5
+ def test_codes
6
+ resp = IronWorker.service.codes
7
+ p resp
8
+ assert resp["codes"]
9
+ assert resp["codes"].is_a?(Array)
10
+ end
11
+
12
+ def test_tasks
13
+ resp = IronWorker.service.tasks
14
+ p resp
15
+ assert resp["tasks"]
16
+ assert resp["tasks"].is_a?(Array)
17
+ end
18
+
19
+ def test_schedules
20
+ resp = IronWorker.service.schedules
21
+ p resp
22
+ assert resp["schedules"]
23
+ assert resp["schedules"].is_a?(Array)
24
+ end
25
+
26
+
27
+ end
28
+
@@ -0,0 +1,30 @@
1
+ require_relative 'test_base'
2
+
3
+ class IronWorkerTests < TestBase
4
+
5
+ #def test_uploads
6
+ # IronWorker.config.force_upload = false
7
+ # IronWorker.config.no_upload = true
8
+ #
9
+ # gen_worker
10
+ #
11
+ # IronWorker.config.no_upload = nil
12
+ # IronWorker.config.force_upload = true
13
+ #
14
+ # gen_worker
15
+ #
16
+ #end
17
+ #
18
+ #def gen_worker
19
+ # # copy our simplest worker
20
+ # new_file = "one_line_worker_#{Random.rand(100)}.rb"
21
+ # FileUtils.cp('workers/one_line_worker.rb', new_file)
22
+ # load new_file
23
+ #
24
+ # w = OneLineWorker.new
25
+ # w.queue
26
+ #end
27
+
28
+
29
+
30
+ end
@@ -0,0 +1,45 @@
1
+ require_relative 'test_base'
2
+ require_relative 'workers/webhook_worker'
3
+
4
+
5
+ class TestWebhooks < TestBase
6
+
7
+ def test_webhook
8
+ worker = WebhookWorker.new
9
+ worker.upload
10
+
11
+ code_name = worker.class.name
12
+ payload = "webhooked!"
13
+
14
+ # Now we hit the webhook
15
+ @uber_client = Rest::Client.new
16
+ puts 'TOKEN??? WTF?? ' + @token.inspect
17
+ url = "#{IronWorker.service.base_url}/projects/#{@project_id}/tasks/webhook?code_name=#{code_name}&oauth=#{@token}"
18
+ p url
19
+ resp = @uber_client.post(url, {:body => payload})
20
+ p resp
21
+ body = JSON.parse(resp.body)
22
+ p body
23
+
24
+ @task_id = body["id"]
25
+
26
+ url = "#{IronWorker.service.base_url}/projects/#{@project_id}/tasks/#{@task_id}?oauth=#{@token}"
27
+ p url
28
+ resp = @uber_client.get(url)
29
+ p resp
30
+
31
+ status = IronWorker.service.wait_until_complete(@task_id)
32
+ p status
33
+ assert status["status"]
34
+ puts status["msg"]
35
+
36
+ puts "LOG:"
37
+ log = IronWorker.service.get_log(@task_id)
38
+ puts log
39
+ assert log.include?(payload)
40
+
41
+ end
42
+
43
+
44
+ end
45
+
data/test/v2quick.rb ADDED
@@ -0,0 +1,29 @@
1
+ require_relative 'test_base'
2
+ require_relative 'one_line_worker'
3
+
4
+ class QuickRun < TestBase
5
+
6
+ def test_worker
7
+
8
+ scheds = IronWorker.service.schedules(:project_id=>"4e71843298ea9b6b9f000004")
9
+ puts scheds.inspect
10
+
11
+ jobs = IronWorker.service.jobs(:project_id=>"4e71843298ea9b6b9f000004")
12
+ puts jobs.inspect
13
+
14
+ workers = IronWorker.service.code(:project_id=>"4e71843298ea9b6b9f000004")
15
+ puts workers.inspect
16
+
17
+ worker = OneLineWorker.new
18
+ res = worker.queue(:project_id=>"4e71843298ea9b6b9f000004")
19
+ puts "worker.queue returns: " + res.inspect
20
+ job_id = res["task_id"]
21
+
22
+ sleep 10
23
+
24
+ log = worker.get_log(:project_id=>"4e71843298ea9b6b9f000004")
25
+ puts log.inspect
26
+ end
27
+
28
+ end
29
+
@@ -0,0 +1,26 @@
1
+ # bump..
2
+ class AwesomeJob < IronWorker::Base
3
+ merge_gem 'dropbox'
4
+
5
+ # todo: this one causes a stack level too deep error??
6
+ # merge_gem 'mongoid_i18n', :require => 'mongoid/i18n'
7
+
8
+ def run
9
+ begin
10
+ s = Dropbox::Session.new('...', '...')
11
+ rescue => ex
12
+ log "Dropbox doesn't like it when you don't have keys"
13
+ end
14
+ # s.mode = :dropbox
15
+ # s.authorizing_user = 'email@gmail.com'
16
+ # s.authorizing_password = '...'
17
+ # s.authorize!
18
+ #
19
+ # tmp_file = Tempfile.new('myfile.txt')
20
+ # tmp_file.write("blahblah")
21
+ # tmp_file.close
22
+ #
23
+ # s.upload tmp_file.path, 'Test'
24
+ # tmp_file.unlink
25
+ end
26
+ end
@@ -0,0 +1,10 @@
1
+ # bump..
2
+ class AwsS3Worker < IronWorker::Base
3
+
4
+ merge_gem "aws-s3", :require => 'aws/s3'
5
+
6
+ def run
7
+ puts "i'm running"
8
+ end
9
+
10
+ end
@@ -0,0 +1,15 @@
1
+ # bump......
2
+ class BigDataWorker < IronWorker::Base
3
+
4
+ attr_accessor :x
5
+
6
+ def run
7
+ puts "hello world! #{x}"
8
+ sleep_for = 30
9
+ puts "sleeping for #{sleep_for} seconds..."
10
+ sleep sleep_for
11
+ puts "Done sleeping and done working."
12
+
13
+ end
14
+ end
15
+
@@ -0,0 +1,35 @@
1
+
2
+ RMAGICK_BYPASS_VERSION_TEST = true
3
+
4
+ class BigGemsWorker < IronWorker::Base
5
+ attr_accessor :x
6
+ #
7
+ #merge_gem 'activesupport', {:version => '3.1.3', :require=>'active_support/core_ext'}
8
+ ##merge_gem 'railties', {:version => '3.1.3', :require => 'rails'}
9
+ #require 'mysql2'
10
+ #merge_gem 'activemodel', {:version => '3.1.3', :require=>'active_model'}
11
+ #merge_gem 'activemodel', {:version => '3.1.3', :require=>'active_model/secure_password'}
12
+ #
13
+ #merge_gem 'activerecord', {:version => '3.1.3', :require=>'active_record'}
14
+ #merge_gem 'actionmailer', {:version => '3.1.3', :require=>'action_mailer'}
15
+ #merge_gem 'actionpack', {:version => '3.1.3', :require => 'action_pack'}
16
+ #require 'RMagick'
17
+ #
18
+ merge_gem 'timecop'
19
+ #
20
+ #
21
+ #merge_gem 'carrierwave', {:version => '0.5.8', :require => ['carrierwave', 'carrierwave/orm/activerecord']}
22
+ merge_gem 'fog'
23
+ ##merge_gem 'friendly_id', {:version => '4.0.0.beta14'}
24
+
25
+ merge_gem 'concur'
26
+
27
+ merge_gem 'mechanize'
28
+ #unmerge_gem 'nokogiri'
29
+
30
+ merge_gem 'mail'
31
+
32
+ def run
33
+ log "hello"
34
+ end
35
+ end