delayed_job_hooked 2.1.5

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.
@@ -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