delayed_job_hooked 2.1.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,58 @@
1
+ $:.unshift(File.dirname(__FILE__) + '/../lib')
2
+
3
+ require 'rubygems'
4
+ require 'bundler/setup'
5
+ require 'rspec'
6
+ require 'logger'
7
+
8
+ require 'rails'
9
+ require 'active_record'
10
+ require 'action_mailer'
11
+
12
+ require 'delayed_job'
13
+ require 'delayed/backend/shared_spec'
14
+
15
+ Delayed::Worker.logger = Logger.new('/tmp/dj.log')
16
+ ENV['RAILS_ENV'] = 'test'
17
+
18
+ config = YAML.load(File.read('spec/database.yml'))
19
+ ActiveRecord::Base.configurations = {'test' => config['mysql']}
20
+ ActiveRecord::Base.establish_connection
21
+ ActiveRecord::Base.logger = Delayed::Worker.logger
22
+ ActiveRecord::Migration.verbose = false
23
+
24
+ ActiveRecord::Schema.define do
25
+ create_table :delayed_jobs, :force => true do |table|
26
+ table.integer :priority, :default => 0
27
+ table.integer :attempts, :default => 0
28
+ table.text :handler
29
+ table.text :last_error
30
+ table.datetime :run_at
31
+ table.datetime :locked_at
32
+ table.datetime :failed_at
33
+ table.string :locked_by
34
+ table.timestamps
35
+ end
36
+
37
+ add_index :delayed_jobs, [:priority, :run_at], :name => 'delayed_jobs_priority'
38
+
39
+ create_table :stories, :force => true do |table|
40
+ table.string :text
41
+ end
42
+ end
43
+
44
+ # Purely useful for test cases...
45
+ class Story < ActiveRecord::Base
46
+ def tell; text; end
47
+ def whatever(n, _); tell*n; end
48
+
49
+ handle_asynchronously :whatever
50
+ end
51
+
52
+ Delayed::Worker.backend = :active_record
53
+
54
+ # Add this directory so the ActiveSupport autoloading works
55
+ ActiveSupport::Dependencies.autoload_paths << File.dirname(__FILE__)
56
+
57
+ # Add this to simulate Railtie initializer being executed
58
+ ActionMailer::Base.send(:extend, Delayed::DelayMail)
@@ -0,0 +1,37 @@
1
+ require 'spec_helper'
2
+
3
+ describe Delayed::Worker do
4
+ describe "backend=" do
5
+ before do
6
+ @clazz = Class.new
7
+ Delayed::Worker.backend = @clazz
8
+ end
9
+
10
+ it "should set the Delayed::Job constant to the backend" do
11
+ Delayed::Job.should == @clazz
12
+ end
13
+
14
+ it "should set backend with a symbol" do
15
+ Delayed::Worker.backend = :active_record
16
+ Delayed::Worker.backend.should == Delayed::Backend::ActiveRecord::Job
17
+ end
18
+ end
19
+
20
+ describe "guess_backend" do
21
+ after do
22
+ Delayed::Worker.backend = :active_record
23
+ end
24
+
25
+ it "should set to active_record if nil" do
26
+ Delayed::Worker.backend = nil
27
+ lambda {
28
+ Delayed::Worker.guess_backend
29
+ }.should change { Delayed::Worker.backend }.to(Delayed::Backend::ActiveRecord::Job)
30
+ end
31
+
32
+ it "should not override the existing backend" do
33
+ Delayed::Worker.backend = Class.new
34
+ lambda { Delayed::Worker.guess_backend }.should_not change { Delayed::Worker.backend }
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,31 @@
1
+ require 'spec_helper'
2
+
3
+ describe YAML do
4
+ it "should autoload classes that are unknown at runtime" do
5
+ lambda {
6
+ obj = YAML.load("--- !ruby/object:Autoloaded::Clazz {}")
7
+ obj.class.to_s.should == 'Autoloaded::Clazz'
8
+ }.should_not raise_error
9
+ end
10
+
11
+ it "should autoload structs that are unknown at runtime" do
12
+ lambda {
13
+ obj = YAML.load("--- !ruby/struct:Autoloaded::Struct {}")
14
+ obj.class.to_s.should == 'Autoloaded::Struct'
15
+ }.should_not raise_error
16
+ end
17
+
18
+ # As we're overriding some of Yaml's internals it is best that our changes
19
+ # don't impact other places where Yaml is used. Or at least don't make it
20
+ # look like the exception is caused by DJ
21
+ it "should not raise exception on poorly formatted yaml" do
22
+ lambda do
23
+ YAML.load(<<-EOYAML
24
+ default:
25
+ <<: *login
26
+ EOYAML
27
+ )
28
+ end.should_not raise_error
29
+ end
30
+
31
+ end
metadata ADDED
@@ -0,0 +1,221 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: delayed_job_hooked
3
+ version: !ruby/object:Gem::Version
4
+ hash: 1
5
+ prerelease: false
6
+ segments:
7
+ - 2
8
+ - 1
9
+ - 5
10
+ version: 2.1.5
11
+ platform: ruby
12
+ authors:
13
+ - Chris Gaffney
14
+ - Brandon Keepers
15
+ - "Tobias L\xC3\xBCtke"
16
+ - Joel Basson
17
+ autorequire:
18
+ bindir: bin
19
+ cert_chain: []
20
+
21
+ date: 2011-03-14 00:00:00 +02:00
22
+ default_executable:
23
+ dependencies:
24
+ - !ruby/object:Gem::Dependency
25
+ name: daemons
26
+ prerelease: false
27
+ requirement: &id001 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ hash: 3
33
+ segments:
34
+ - 0
35
+ version: "0"
36
+ type: :runtime
37
+ version_requirements: *id001
38
+ - !ruby/object:Gem::Dependency
39
+ name: activesupport
40
+ prerelease: false
41
+ requirement: &id002 !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ hash: 7
47
+ segments:
48
+ - 3
49
+ - 0
50
+ version: "3.0"
51
+ type: :runtime
52
+ version_requirements: *id002
53
+ - !ruby/object:Gem::Dependency
54
+ name: rails
55
+ prerelease: false
56
+ requirement: &id003 !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ hash: 7
62
+ segments:
63
+ - 3
64
+ - 0
65
+ version: "3.0"
66
+ type: :development
67
+ version_requirements: *id003
68
+ - !ruby/object:Gem::Dependency
69
+ name: rspec
70
+ prerelease: false
71
+ requirement: &id004 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ~>
75
+ - !ruby/object:Gem::Version
76
+ hash: 3
77
+ segments:
78
+ - 2
79
+ - 0
80
+ version: "2.0"
81
+ type: :development
82
+ version_requirements: *id004
83
+ - !ruby/object:Gem::Dependency
84
+ name: rake
85
+ prerelease: false
86
+ requirement: &id005 !ruby/object:Gem::Requirement
87
+ none: false
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ hash: 3
92
+ segments:
93
+ - 0
94
+ version: "0"
95
+ type: :development
96
+ version_requirements: *id005
97
+ - !ruby/object:Gem::Dependency
98
+ name: sqlite3
99
+ prerelease: false
100
+ requirement: &id006 !ruby/object:Gem::Requirement
101
+ none: false
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ hash: 3
106
+ segments:
107
+ - 0
108
+ version: "0"
109
+ type: :development
110
+ version_requirements: *id006
111
+ - !ruby/object:Gem::Dependency
112
+ name: mysql
113
+ prerelease: false
114
+ requirement: &id007 !ruby/object:Gem::Requirement
115
+ none: false
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ hash: 3
120
+ segments:
121
+ - 0
122
+ version: "0"
123
+ type: :development
124
+ version_requirements: *id007
125
+ description: |-
126
+ Delayed_job (or DJ) encapsulates the common pattern of asynchronously executing longer tasks in the background. It is a direct extraction from Shopify where the job table is responsible for a multitude of core tasks.
127
+
128
+ This gem is collectiveidea's fork (http://github.com/collectiveidea/delayed_job).
129
+ email:
130
+ - chris@collectiveidea.com
131
+ - brandon@opensoul.org
132
+ executables: []
133
+
134
+ extensions: []
135
+
136
+ extra_rdoc_files:
137
+ - README.textile
138
+ files:
139
+ - contrib/delayed_job.monitrc
140
+ - contrib/delayed_job_multiple.monitrc
141
+ - lib/delayed/backend/active_record.rb
142
+ - lib/delayed/backend/base.rb
143
+ - lib/delayed/backend/shared_spec.rb
144
+ - lib/delayed/command.rb
145
+ - lib/delayed/deserialization_error.rb
146
+ - lib/delayed/message_sending.rb
147
+ - lib/delayed/performable_mailer.rb
148
+ - lib/delayed/performable_method.rb
149
+ - lib/delayed/railtie.rb
150
+ - lib/delayed/recipes.rb
151
+ - lib/delayed/serialization/active_record.rb
152
+ - lib/delayed/tasks.rb
153
+ - lib/delayed/worker.rb
154
+ - lib/delayed/yaml_ext.rb
155
+ - lib/delayed_job.rb
156
+ - lib/generators/delayed_job/delayed_job_generator.rb
157
+ - lib/generators/delayed_job/templates/migration.rb
158
+ - lib/generators/delayed_job/templates/script
159
+ - recipes/delayed_job.rb
160
+ - spec/active_record_job_spec.rb
161
+ - spec/autoloaded/clazz.rb
162
+ - spec/autoloaded/struct.rb
163
+ - spec/database.yml
164
+ - spec/message_sending_spec.rb
165
+ - spec/performable_mailer_spec.rb
166
+ - spec/performable_method_spec.rb
167
+ - spec/sample_jobs.rb
168
+ - spec/spec_helper.rb
169
+ - spec/worker_spec.rb
170
+ - spec/yaml_ext_spec.rb
171
+ - MIT-LICENSE
172
+ - README.textile
173
+ has_rdoc: true
174
+ homepage: http://github.com/joelbasson/delayed_job
175
+ licenses: []
176
+
177
+ post_install_message:
178
+ rdoc_options:
179
+ - --main
180
+ - README.textile
181
+ - --inline-source
182
+ - --line-numbers
183
+ require_paths:
184
+ - lib
185
+ required_ruby_version: !ruby/object:Gem::Requirement
186
+ none: false
187
+ requirements:
188
+ - - ">="
189
+ - !ruby/object:Gem::Version
190
+ hash: 3
191
+ segments:
192
+ - 0
193
+ version: "0"
194
+ required_rubygems_version: !ruby/object:Gem::Requirement
195
+ none: false
196
+ requirements:
197
+ - - ">="
198
+ - !ruby/object:Gem::Version
199
+ hash: 3
200
+ segments:
201
+ - 0
202
+ version: "0"
203
+ requirements: []
204
+
205
+ rubyforge_project:
206
+ rubygems_version: 1.3.7
207
+ signing_key:
208
+ specification_version: 3
209
+ summary: Database-backed asynchronous priority queue system -- Extracted from Shopify
210
+ test_files:
211
+ - spec/active_record_job_spec.rb
212
+ - spec/autoloaded/clazz.rb
213
+ - spec/autoloaded/struct.rb
214
+ - spec/database.yml
215
+ - spec/message_sending_spec.rb
216
+ - spec/performable_mailer_spec.rb
217
+ - spec/performable_method_spec.rb
218
+ - spec/sample_jobs.rb
219
+ - spec/spec_helper.rb
220
+ - spec/worker_spec.rb
221
+ - spec/yaml_ext_spec.rb