simple_worker 0.3.20 → 0.3.21
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 +237 -218
- data/lib/railtie.rb +3 -4
- data/lib/simple_worker/base.rb +4 -3
- data/lib/simple_worker/service.rb +6 -4
- data/lib/simple_worker.rb +2 -2
- data/test/test_no_config.rb +25 -0
- data/test/test_worker.rb +2 -10
- metadata +34 -48
data/README.markdown
CHANGED
@@ -1,218 +1,237 @@
|
|
1
|
-
Getting Started
|
2
|
-
===============
|
3
|
-
|
4
|
-
[Sign up for a SimpleWorker account][1], it's free to try!
|
5
|
-
|
6
|
-
[1]: http://www.simpleworker.com/
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
worker.
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
config.
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
1
|
+
Getting Started
|
2
|
+
===============
|
3
|
+
|
4
|
+
[Sign up for a SimpleWorker account][1], it's free to try!
|
5
|
+
|
6
|
+
[1]: http://www.simpleworker.com/
|
7
|
+
|
8
|
+
Install SimpleWorker Gem
|
9
|
+
------------------------
|
10
|
+
|
11
|
+
gem install simple_worker
|
12
|
+
|
13
|
+
Configure SimpleWorker
|
14
|
+
----------------------
|
15
|
+
|
16
|
+
You really just need your access keys.
|
17
|
+
|
18
|
+
SimpleWorker.configure do |config|
|
19
|
+
config.access_key = ACCESS_KEY
|
20
|
+
config.secret_key = SECRET_KEY
|
21
|
+
end
|
22
|
+
|
23
|
+
Write a Worker
|
24
|
+
--------------
|
25
|
+
|
26
|
+
Here's an example worker that sends an email:
|
27
|
+
|
28
|
+
require 'simple_worker'
|
29
|
+
|
30
|
+
class EmailWorker < SimpleWorker::Base
|
31
|
+
|
32
|
+
attr_accessor :to, :subject, :body
|
33
|
+
|
34
|
+
# This is the method that will be run
|
35
|
+
def run
|
36
|
+
send_email(:to=>to, :subject=>subject, :body=>body)
|
37
|
+
end
|
38
|
+
|
39
|
+
def send_email
|
40
|
+
# Put sending code here
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
Test It Locally
|
45
|
+
---------------
|
46
|
+
|
47
|
+
Let's say someone does something in your app and you want to send an email about it.
|
48
|
+
|
49
|
+
worker = EmailWorker.new
|
50
|
+
worker.to = current_user.email
|
51
|
+
worker.subject = "Here is your mail!"
|
52
|
+
worker.body = "This is the body"
|
53
|
+
worker.run_local
|
54
|
+
|
55
|
+
Once you've got it working locally, the next step is to run it on the SimpleWorker cloud.
|
56
|
+
|
57
|
+
Queue up your Worker on the SimpleWorker Cloud
|
58
|
+
----------------------------------------------
|
59
|
+
|
60
|
+
Let's say someone does something in your app and you want to send an email about it.
|
61
|
+
|
62
|
+
worker = EmailWorker.new
|
63
|
+
worker.to = current_user.email
|
64
|
+
worker.subject = "Here is your mail!"
|
65
|
+
worker.body = "This is the body"
|
66
|
+
worker.queue
|
67
|
+
|
68
|
+
This will send it off to the SimpleWorker cloud.
|
69
|
+
|
70
|
+
Setting Priority
|
71
|
+
----------------------------------------------
|
72
|
+
|
73
|
+
Simply define the priority in your queue command.
|
74
|
+
|
75
|
+
worker.queue(:priority=>1)
|
76
|
+
|
77
|
+
Default priority is 0 and we currently support priority 0, 1, 2. See [pricing page](http://www.simpleworker.com/pricing)
|
78
|
+
for more information on priorites.
|
79
|
+
|
80
|
+
|
81
|
+
Schedule your Worker
|
82
|
+
--------------------
|
83
|
+
|
84
|
+
There are two scenarios here, one is the scenario where you want something to happen due to a user
|
85
|
+
action in your application. This is almost the same as queuing your worker.
|
86
|
+
|
87
|
+
worker = EmailWorker.new
|
88
|
+
worker.to = current_user.email
|
89
|
+
worker.subject = "Here is your mail!"
|
90
|
+
worker.body = "This is the body"
|
91
|
+
worker.schedule(:start_at=>1.hours.since)
|
92
|
+
|
93
|
+
Check Status
|
94
|
+
------------
|
95
|
+
|
96
|
+
If you still have access to the worker object, just call:
|
97
|
+
|
98
|
+
worker.status
|
99
|
+
|
100
|
+
If you only have the job ID, call:
|
101
|
+
|
102
|
+
SimpleWorker.service.status(job_id)
|
103
|
+
|
104
|
+
This will return a hash like:
|
105
|
+
|
106
|
+
{"task_id"=>"ece460ce-12d8-11e0-8e15-12313b0440c6",
|
107
|
+
"status"=>"running",
|
108
|
+
"msg"=>nil,
|
109
|
+
"start_time"=>"2010-12-28T23:19:36+00:00",
|
110
|
+
"end_time"=>nil,
|
111
|
+
"duration"=>nil,
|
112
|
+
"progress"=>{"percent"=>25}}
|
113
|
+
|
114
|
+
|
115
|
+
Logging
|
116
|
+
-------
|
117
|
+
|
118
|
+
In your worker, just call the log method with the string you want logged:
|
119
|
+
|
120
|
+
log "Starting to do something..."
|
121
|
+
|
122
|
+
The log will be available for viewing via the SimpleWorker UI or via log in the API:
|
123
|
+
|
124
|
+
SimpleWorker.service.log(job_id)
|
125
|
+
|
126
|
+
Setting Progress
|
127
|
+
----------------
|
128
|
+
|
129
|
+
This is just a way to let your users know where the job is at if required.
|
130
|
+
|
131
|
+
set_progress(:percent => 25, :message => "We are a quarter of the way there!")
|
132
|
+
|
133
|
+
You can actually put anything in this hash and it will be returned with a call to status. We recommend using
|
134
|
+
the format above for consistency and to get some additional features where we look for these values.
|
135
|
+
|
136
|
+
Schedule a Recurring Job - CRON
|
137
|
+
------------------------------
|
138
|
+
|
139
|
+
The alternative is when you want to user it like Cron. In this case you'll probably
|
140
|
+
want to write a script that will schedule, you don't want to schedule it everytime your
|
141
|
+
app starts or anything so best to keep it external.
|
142
|
+
|
143
|
+
Create a file called 'schedule_email_worker.rb' and add this:
|
144
|
+
|
145
|
+
require 'simple_worker'
|
146
|
+
require_relative 'email_worker'
|
147
|
+
|
148
|
+
worker = EmailWorker.new
|
149
|
+
worker.to = current_user.email
|
150
|
+
worker.subject = "Here is your mail!"
|
151
|
+
worker.body = "This is the body"
|
152
|
+
worker.schedule(:start_at=>1.hours.since, :run_every=>3600)
|
153
|
+
|
154
|
+
Now run it and your worker will be scheduled to run every hour.
|
155
|
+
|
156
|
+
SimpleWorker on Rails
|
157
|
+
---------------------
|
158
|
+
|
159
|
+
Rails 2.X:
|
160
|
+
|
161
|
+
config.gem 'simple_worker'
|
162
|
+
|
163
|
+
Rails 3.X:
|
164
|
+
|
165
|
+
gem 'simple_worker'
|
166
|
+
|
167
|
+
Now you can use your workers like they're part of your app! We recommend putting your worker classes in
|
168
|
+
/app/workers path.
|
169
|
+
|
170
|
+
Configuring an Database Connection
|
171
|
+
---------------------------------
|
172
|
+
|
173
|
+
Although you could easily do this in your worker, this makes it a bit more convenient and more importantly
|
174
|
+
it will create the connection for you. If you are using Rails 3, you just need to add one line:
|
175
|
+
|
176
|
+
config.database = Rails.configuration.database_configuration[Rails.env]
|
177
|
+
|
178
|
+
For non Rails 3, you would add the following to your SimpleWorker config:
|
179
|
+
|
180
|
+
config.database = {
|
181
|
+
:adapter => "mysql2",
|
182
|
+
:host => "localhost",
|
183
|
+
:database => "appdb",
|
184
|
+
:username => "appuser",
|
185
|
+
:password => "secret"
|
186
|
+
}
|
187
|
+
|
188
|
+
Then before you job is run, SimpleWorker will establish the ActiveRecord connection.
|
189
|
+
|
190
|
+
Including/Merging other Ruby Classes
|
191
|
+
------------------------------------
|
192
|
+
|
193
|
+
If you are using the Rails setup above, you can probably skip this as your models will automatically be merged.
|
194
|
+
|
195
|
+
class AvgWorker < SimpleWorker::Base
|
196
|
+
|
197
|
+
attr_accessor :aws_access_key,
|
198
|
+
:aws_secret_key,
|
199
|
+
:s3_suffix
|
200
|
+
|
201
|
+
merge File.join(File.dirname(__FILE__), "..", "app", "models", "user.rb")
|
202
|
+
merge File.join(File.dirname(__FILE__), "..", "app", "models", "account")
|
203
|
+
|
204
|
+
Or simpler yet, try using relative paths:
|
205
|
+
|
206
|
+
merge "../models/user"
|
207
|
+
merge "../models/account.rb"
|
208
|
+
|
209
|
+
The opposite can be done as well with "unmerge" and can be useful when using Rails to exclude classes that are automatically
|
210
|
+
merged.
|
211
|
+
|
212
|
+
|
213
|
+
Bringing in other Workers
|
214
|
+
---------------------
|
215
|
+
|
216
|
+
merge_worker
|
217
|
+
TODO
|
218
|
+
|
219
|
+
|
220
|
+
Configuration Options
|
221
|
+
---------------------
|
222
|
+
|
223
|
+
### Global Attributes
|
224
|
+
|
225
|
+
These are attributes that can be set as part of your config block then will be set on
|
226
|
+
all your worker objects automatically. This is particularly good for things like database
|
227
|
+
connection info or things that you would need to use across the board.
|
228
|
+
|
229
|
+
Eg:
|
230
|
+
|
231
|
+
config.global_attributes[:db_user] = "sa"
|
232
|
+
config.global_attributes[:db_pass] = "pass"
|
233
|
+
|
234
|
+
Then in your worker, you would have the attributes defined:
|
235
|
+
|
236
|
+
attr_accessor :db_user, :db_pass
|
237
|
+
|
data/lib/railtie.rb
CHANGED
@@ -8,14 +8,13 @@ module SimpleWorker
|
|
8
8
|
# railtie_name :simple_worker deprecated
|
9
9
|
|
10
10
|
initializer "simple_worker.configure_rails_initialization" do |app|
|
11
|
-
puts
|
12
|
-
puts "Initializing list of Rails models..."
|
11
|
+
puts "Initializing SimpleWorker for Rails 3..."
|
13
12
|
SimpleWorker.configure do |c2|
|
14
13
|
path = File.join(Rails.root, 'app/models/*.rb')
|
15
|
-
puts 'path=' + path
|
14
|
+
# puts 'path=' + path
|
16
15
|
c2.models = Dir.glob(path)
|
17
16
|
c2.extra_requires += ['active_support/core_ext', 'active_record', 'action_mailer']
|
18
|
-
puts 'config.models=' + c2.models.inspect
|
17
|
+
# puts 'config.models=' + c2.models.inspect
|
19
18
|
end
|
20
19
|
|
21
20
|
end
|
data/lib/simple_worker/base.rb
CHANGED
@@ -87,7 +87,7 @@ module SimpleWorker
|
|
87
87
|
end
|
88
88
|
|
89
89
|
def merge_worker(file, class_name)
|
90
|
-
puts 'merge_worker in ' + self.name
|
90
|
+
# puts 'merge_worker in ' + self.name
|
91
91
|
merge(file)
|
92
92
|
@merged_workers << [File.expand_path(file), class_name]
|
93
93
|
end
|
@@ -126,6 +126,7 @@ module SimpleWorker
|
|
126
126
|
end
|
127
127
|
|
128
128
|
def set_global_attributes
|
129
|
+
return unless SimpleWorker.config
|
129
130
|
ga = SimpleWorker.config.global_attributes
|
130
131
|
if ga && ga.size > 0
|
131
132
|
ga.each_pair do |k, v|
|
@@ -138,12 +139,12 @@ module SimpleWorker
|
|
138
139
|
end
|
139
140
|
|
140
141
|
# Will send in all instance_variables.
|
141
|
-
def queue
|
142
|
+
def queue(options={})
|
142
143
|
# puts 'in queue'
|
143
144
|
set_auto_attributes
|
144
145
|
upload_if_needed
|
145
146
|
|
146
|
-
response = SimpleWorker.service.queue(self.class.name, sw_get_data)
|
147
|
+
response = SimpleWorker.service.queue(self.class.name, sw_get_data, options)
|
147
148
|
# puts 'queue response=' + response.inspect
|
148
149
|
@task_set_id = response["task_set_id"]
|
149
150
|
@task_id = response["tasks"][0]["task_id"]
|
@@ -20,7 +20,7 @@ module SimpleWorker
|
|
20
20
|
puts "Uploading #{class_name}"
|
21
21
|
# check whether it should upload again
|
22
22
|
tmp = Dir.tmpdir()
|
23
|
-
md5file = "simple_worker_#{class_name.gsub("::", ".")}.md5"
|
23
|
+
md5file = "simple_worker_#{class_name.gsub("::", ".")}_#{access_key[0,8]}.md5"
|
24
24
|
existing_md5 = nil
|
25
25
|
f = File.join(tmp, md5file)
|
26
26
|
if File.exists?(f)
|
@@ -66,7 +66,7 @@ module SimpleWorker
|
|
66
66
|
if unmerge
|
67
67
|
unmerge.each do |x|
|
68
68
|
deleted = merge.delete x
|
69
|
-
puts "Unmerging #{x}. Success? #{deleted}"
|
69
|
+
# puts "Unmerging #{x}. Success? #{deleted}"
|
70
70
|
end
|
71
71
|
end
|
72
72
|
|
@@ -80,7 +80,7 @@ module SimpleWorker
|
|
80
80
|
end
|
81
81
|
end
|
82
82
|
merge.each do |m|
|
83
|
-
puts "merging #{m} into #{filename}"
|
83
|
+
# puts "merging #{m} into #{filename}"
|
84
84
|
f.write File.open(m, 'r') { |mo| mo.read }
|
85
85
|
f.write "\n\n"
|
86
86
|
end
|
@@ -96,7 +96,7 @@ module SimpleWorker
|
|
96
96
|
|
97
97
|
# class_name: The class name of a previously upload class, eg: MySuperWorker
|
98
98
|
# data: Arbitrary hash of your own data that your task will need to run.
|
99
|
-
def queue(class_name, data={})
|
99
|
+
def queue(class_name, data={}, options={})
|
100
100
|
puts "Queuing #{class_name}"
|
101
101
|
if !data.is_a?(Array)
|
102
102
|
data = [data]
|
@@ -105,8 +105,10 @@ module SimpleWorker
|
|
105
105
|
hash_to_send = {}
|
106
106
|
hash_to_send["payload"] = data
|
107
107
|
hash_to_send["class_name"] = class_name
|
108
|
+
hash_to_send["priority"] = options[:priority] if options[:priority]
|
108
109
|
add_sw_params(hash_to_send)
|
109
110
|
if defined?(RAILS_ENV)
|
111
|
+
# todo: move this to global_attributes in railtie
|
110
112
|
hash_to_send["rails_env"] = RAILS_ENV
|
111
113
|
end
|
112
114
|
return queue_raw(class_name, hash_to_send)
|
data/lib/simple_worker.rb
CHANGED
@@ -26,8 +26,8 @@ module SimpleWorker
|
|
26
26
|
end
|
27
27
|
|
28
28
|
if defined?(Rails)
|
29
|
-
puts 'Rails=' + Rails.inspect
|
30
|
-
puts 'vers=' + Rails::VERSION::MAJOR.inspect
|
29
|
+
# puts 'Rails=' + Rails.inspect
|
30
|
+
# puts 'vers=' + Rails::VERSION::MAJOR.inspect
|
31
31
|
if Rails::VERSION::MAJOR == 2
|
32
32
|
require_relative 'rails2_init.rb'
|
33
33
|
else
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
begin
|
3
|
+
require File.join(File.dirname(__FILE__), '../lib/simple_worker')
|
4
|
+
rescue Exception => ex
|
5
|
+
puts ex.message
|
6
|
+
require 'simple_worker'
|
7
|
+
end
|
8
|
+
require_relative "test_worker"
|
9
|
+
require_relative "test_worker_2"
|
10
|
+
|
11
|
+
|
12
|
+
class SimpleWorkerTests < Test::Unit::TestCase
|
13
|
+
|
14
|
+
def test_no_conf
|
15
|
+
# Add something to queue, get task ID back
|
16
|
+
tw = TestWorker.new
|
17
|
+
tw.s3_key = "active style runner"
|
18
|
+
tw.times = 3
|
19
|
+
|
20
|
+
tw.run_local
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
data/test/test_worker.rb
CHANGED
@@ -9,12 +9,10 @@ class TestWorker < SimpleWorker::Base
|
|
9
9
|
|
10
10
|
attr_accessor :s3_key, :times
|
11
11
|
|
12
|
-
def run
|
13
|
-
log 'running the
|
14
|
-
|
12
|
+
def run
|
13
|
+
log 'running the test worker for moi '.upcase
|
15
14
|
log 's3_key instance_variable = ' + self.s3_key.to_s
|
16
15
|
|
17
|
-
@times = data["times"].to_i
|
18
16
|
@times.times do |i|
|
19
17
|
log 'running at ' + i.to_s
|
20
18
|
sleep 1
|
@@ -26,12 +24,6 @@ class TestWorker < SimpleWorker::Base
|
|
26
24
|
log 'SET COMPLETE YAY!' + params[:task_set_id]
|
27
25
|
end
|
28
26
|
|
29
|
-
def progress
|
30
|
-
if @count
|
31
|
-
return @count / @times
|
32
|
-
end
|
33
|
-
return 0.0
|
34
|
-
end
|
35
27
|
|
36
28
|
end
|
37
29
|
|
metadata
CHANGED
@@ -1,44 +1,35 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_worker
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 3
|
8
|
-
- 20
|
9
|
-
version: 0.3.20
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.21
|
5
|
+
prerelease:
|
10
6
|
platform: ruby
|
11
|
-
authors:
|
7
|
+
authors:
|
12
8
|
- Travis Reeder
|
13
9
|
autorequire:
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
|
-
|
17
|
-
date: 2011-01-07 00:00:00 -08:00
|
12
|
+
date: 2011-02-13 00:00:00.000000000 -08:00
|
18
13
|
default_executable:
|
19
|
-
dependencies:
|
20
|
-
- !ruby/object:Gem::Dependency
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
21
16
|
name: appoxy_api
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
17
|
+
requirement: &26617572 !ruby/object:Gem::Requirement
|
24
18
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
- 0
|
30
|
-
version: "0"
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0'
|
31
23
|
type: :runtime
|
32
|
-
|
33
|
-
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: *26617572
|
26
|
+
description: The official SimpleWorker gem for http://www.simpleworker.com
|
34
27
|
email: travis@appoxy.com
|
35
28
|
executables: []
|
36
|
-
|
37
29
|
extensions: []
|
38
|
-
|
39
|
-
extra_rdoc_files:
|
30
|
+
extra_rdoc_files:
|
40
31
|
- README.markdown
|
41
|
-
files:
|
32
|
+
files:
|
42
33
|
- lib/rails2_init.rb
|
43
34
|
- lib/railtie.rb
|
44
35
|
- lib/simple_worker.rb
|
@@ -55,6 +46,7 @@ files:
|
|
55
46
|
- test/second_worker.rb
|
56
47
|
- test/test_base.rb
|
57
48
|
- test/test_inheritance.rb
|
49
|
+
- test/test_no_config.rb
|
58
50
|
- test/test_simple_worker.rb
|
59
51
|
- test/test_worker.rb
|
60
52
|
- test/test_worker_2.rb
|
@@ -62,36 +54,29 @@ files:
|
|
62
54
|
has_rdoc: true
|
63
55
|
homepage: http://github.com/appoxy/simple_worker
|
64
56
|
licenses: []
|
65
|
-
|
66
57
|
post_install_message:
|
67
58
|
rdoc_options: []
|
68
|
-
|
69
|
-
require_paths:
|
59
|
+
require_paths:
|
70
60
|
- lib
|
71
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
61
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
72
62
|
none: false
|
73
|
-
requirements:
|
74
|
-
- -
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
|
77
|
-
|
78
|
-
version: "0"
|
79
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - ! '>='
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0'
|
67
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
80
68
|
none: false
|
81
|
-
requirements:
|
82
|
-
- -
|
83
|
-
- !ruby/object:Gem::Version
|
84
|
-
|
85
|
-
- 0
|
86
|
-
version: "0"
|
69
|
+
requirements:
|
70
|
+
- - ! '>='
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '0'
|
87
73
|
requirements: []
|
88
|
-
|
89
74
|
rubyforge_project:
|
90
|
-
rubygems_version: 1.
|
75
|
+
rubygems_version: 1.5.1
|
91
76
|
signing_key:
|
92
77
|
specification_version: 3
|
93
|
-
summary:
|
94
|
-
test_files:
|
78
|
+
summary: The official SimpleWorker gem for http://www.simpleworker.com
|
79
|
+
test_files:
|
95
80
|
- test/models/model_1.rb
|
96
81
|
- test/models/model_2.rb
|
97
82
|
- test/requiring_worker.rb
|
@@ -99,6 +84,7 @@ test_files:
|
|
99
84
|
- test/second_worker.rb
|
100
85
|
- test/test_base.rb
|
101
86
|
- test/test_inheritance.rb
|
87
|
+
- test/test_no_config.rb
|
102
88
|
- test/test_simple_worker.rb
|
103
89
|
- test/test_worker.rb
|
104
90
|
- test/test_worker_2.rb
|