delayed_job 4.1.5 → 4.1.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: da067ee0d2ec947e25ae05f9ee33524d9ca3ebb9d7061b6ee5f16c9101351b50
4
- data.tar.gz: c69b06a3d6df2f9703fffbc83ba224eaa65381a5243f6be55afecbfa17d70eea
3
+ metadata.gz: b5abe29ddb94836277901e7d618f7291ff9078ca25619b40405a3ccc5a471950
4
+ data.tar.gz: fb35d6e6eb7618ba31e44e31580c369aa80fe90353bbc282cf933613c82d152c
5
5
  SHA512:
6
- metadata.gz: 3ae9dce2bd8ca944d8ad43a757b5826c2b4d6024e3f89faa3c75c3e3ed1b891fb99c7c6cddf7e5b5f835d042300e20c1c14371c74aae3d155ecd413cf239109c
7
- data.tar.gz: 8ebc99e9d492bb793e6dbe769f0371cf6308ee397bb55a0983db225fa41ef38f5ac20f19d9e46cd5583ce628b1e7241a2c650316fadd7d5493a5f016a2d958ef
6
+ metadata.gz: 5427056c3a1adcd9a484a2eeec2d2ce6f3b2ad4c845f31a98d917a3ac228ee0c58a9ca7ced028b03a7935704dceaf6419ee71a4f7077287e7b39429dc517abd1
7
+ data.tar.gz: '082c6fa5d5407d3e87c2393f16c2dfdb233f12a2012bc28d03a1baca749d0d95ca8263d7ed67796561ab1376fe1fa7963af57c87fc06b362d6c1dffc07bc6b98'
data/CHANGELOG.md CHANGED
@@ -1,14 +1,42 @@
1
+ 4.1.11 - 2022-09-28
2
+ ===================
3
+ * Fix missing require for Rails 7.0.3+
4
+
5
+ 4.1.10 - 2022-01-17
6
+ ===================
7
+ * Support for Rails 7.0. NOTE: If you are using Delayed Job independent of Rails, Active Support 7 has dropped classic dependency autoloading. You will need to add and setup zeitwerk for autoloading to continue working in ActiveSupport 7.
8
+
9
+ 4.1.9 - 2020-12-09
10
+ ==================
11
+ * Support for Rails 6.1
12
+ * Add support for parameterized mailers via delay call (#1121)
13
+
14
+ 4.1.8 - 2019-08-16
15
+ ==================
16
+ * Support for Rails 6.0.0
17
+
18
+ 4.1.7 - 2019-06-20
19
+ ==================
20
+ * Fix loading Delayed::PerformableMailer when ActionMailer isn't loaded yet
21
+
22
+ 4.1.6 - 2019-06-19
23
+ ==================
24
+ * Properly initialize ActionMailer outside railties (#1077)
25
+ * Fix Psych load_tags support (#1093)
26
+ * Replace REMOVED with FAILED in log message (#1048)
27
+ * Misc doc updates (#1052, #1074, #1064, #1063)
28
+
1
29
  4.1.5 - 2018-04-13
2
- =================
30
+ ==================
3
31
  * Allow Rails 5.2
4
32
 
5
33
  4.1.4 - 2017-12-29
6
- =================
34
+ ==================
7
35
  * Use `yaml_tag` instead of deprecated `yaml_as` (#996)
8
36
  * Support ruby 2.5.0
9
37
 
10
38
  4.1.3 - 2017-05-26
11
- =================
39
+ ==================
12
40
  * Don't mutate the options hash (#877)
13
41
  * Log an error message when a deserialization error occurs (#894)
14
42
  * Adding the queue name to the log output (#917)
data/README.md CHANGED
@@ -1,19 +1,16 @@
1
1
  **If you're viewing this at https://github.com/collectiveidea/delayed_job,
2
2
  you're reading the documentation for the master branch.
3
3
  [View documentation for the latest release
4
- (4.1.5).](https://github.com/collectiveidea/delayed_job/tree/v4.1.5)**
4
+ (4.1.11).](https://github.com/collectiveidea/delayed_job/tree/v4.1.11)**
5
5
 
6
6
  Delayed::Job
7
7
  ============
8
- [![Gem Version](https://badge.fury.io/rb/delayed_job.png)][gem]
9
- [![Build Status](https://travis-ci.org/collectiveidea/delayed_job.png?branch=master)][travis]
10
- [![Dependency Status](https://gemnasium.com/collectiveidea/delayed_job.png?travis)][gemnasium]
11
- [![Code Climate](https://codeclimate.com/github/collectiveidea/delayed_job.png)][codeclimate]
12
- [![Coverage Status](https://coveralls.io/repos/collectiveidea/delayed_job/badge.png?branch=master)][coveralls]
8
+ [![Gem Version](https://badge.fury.io/rb/delayed_job.svg)][gem]
9
+ ![CI](https://github.com/collectiveidea/delayed_job/workflows/CI/badge.svg)
10
+ [![Code Climate](https://codeclimate.com/github/collectiveidea/delayed_job.svg)][codeclimate]
11
+ [![Coverage Status](https://coveralls.io/repos/collectiveidea/delayed_job/badge.svg?branch=master)][coveralls]
13
12
 
14
13
  [gem]: https://rubygems.org/gems/delayed_job
15
- [travis]: https://travis-ci.org/collectiveidea/delayed_job
16
- [gemnasium]: https://gemnasium.com/collectiveidea/delayed_job
17
14
  [codeclimate]: https://codeclimate.com/github/collectiveidea/delayed_job
18
15
  [coveralls]: https://coveralls.io/r/collectiveidea/delayed_job
19
16
 
@@ -62,16 +59,16 @@ running the following command:
62
59
  rails generate delayed_job:active_record
63
60
  rake db:migrate
64
61
 
65
- For Rails 4.2, see [below](#rails-42)
62
+ For Rails 4.2+, see [below](#active-job)
66
63
 
67
64
  Development
68
65
  ===========
69
66
  In development mode, if you are using Rails 3.1+, your application code will automatically reload every 100 jobs or when the queue finishes.
70
67
  You no longer need to restart Delayed Job every time you update your code in development.
71
68
 
72
- Rails 4.2
73
- =========
74
- Set the queue_adapter in config/application.rb
69
+ Active Job
70
+ ==========
71
+ In Rails 4.2+, set the queue_adapter in config/application.rb
75
72
 
76
73
  ```ruby
77
74
  config.active_job.queue_adapter = :delayed_job
@@ -170,9 +167,10 @@ end
170
167
 
171
168
  If you ever want to call a `handle_asynchronously`'d method without Delayed Job, for instance while debugging something at the console, just add `_without_delay` to the method name. For instance, if your original method was `foo`, then call `foo_without_delay`.
172
169
 
173
- Rails 3 Mailers
174
- ===============
175
- Due to how mailers are implemented in Rails 3, we had to do a little work around to get delayed_job to work.
170
+ Rails Mailers
171
+ =============
172
+ Delayed Job uses special syntax for Rails Mailers.
173
+ Do not call the `.deliver` method when using `.delay`.
176
174
 
177
175
  ```ruby
178
176
  # without delayed_job
@@ -181,12 +179,16 @@ Notifier.signup(@user).deliver
181
179
  # with delayed_job
182
180
  Notifier.delay.signup(@user)
183
181
 
184
- # with delayed_job running at a specific time
182
+ # delayed_job running at a specific time
185
183
  Notifier.delay(run_at: 5.minutes.from_now).signup(@user)
184
+
185
+ # when using parameters, the .with method must be called before the .delay method
186
+ Notifier.with(foo: 1, bar: 2).delay.signup(@user)
186
187
  ```
187
188
 
188
- Remove the `.deliver` method to make it work. It's not ideal, but it's the best
189
- we could do for now.
189
+ You may also wish to consider using
190
+ [Active Job with Action Mailer](https://edgeguides.rubyonrails.org/active_job_basics.html#action-mailer)
191
+ which provides convenient `.deliver_later` syntax that forwards to Delayed Job under-the-hood.
190
192
 
191
193
  Named Queues
192
194
  ============
@@ -377,6 +379,9 @@ Hooks
377
379
  =====
378
380
  You can define hooks on your job that will be called at different stages in the process:
379
381
 
382
+
383
+ **NOTE:** If you are using ActiveJob these hooks are **not** available to your jobs. You will need to use ActiveJob's callbacks. You can find details here https://guides.rubyonrails.org/active_job_basics.html#callbacks
384
+
380
385
  ```ruby
381
386
  class ParanoidNewsletterJob < NewsletterJob
382
387
  def enqueue(job)
@@ -430,7 +435,7 @@ end
430
435
 
431
436
  On error, the job is scheduled again in 5 seconds + N ** 4, where N is the number of attempts or using the job's defined `reschedule_at` method.
432
437
 
433
- The default `Worker.max_attempts` is 25. After this, the job either deleted (default), or left in the database with "failed_at" set.
438
+ The default `Worker.max_attempts` is 25. After this, the job is either deleted (default), or left in the database with "failed_at" set.
434
439
  With the default of 25 attempts, the last retry will be 20 days later, with the last interval being almost 100 hours.
435
440
 
436
441
  The default `Worker.max_run_time` is 4.hours. If your job takes longer than that, another computer could pick it up. It's up to you to
data/delayed_job.gemspec CHANGED
@@ -1,7 +1,7 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
 
3
3
  Gem::Specification.new do |spec|
4
- spec.add_dependency 'activesupport', ['>= 3.0', '< 5.3']
4
+ spec.add_dependency 'activesupport', ['>= 3.0', '< 8.0']
5
5
  spec.authors = ['Brandon Keepers', 'Brian Ryckbost', 'Chris Gaffney', 'David Genord II', 'Erik Michaels-Ober', 'Matt Griffin', 'Steve Richert', 'Tobias Lütke']
6
6
  spec.description = '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.'
7
7
  spec.email = ['brian@collectiveidea.com']
@@ -13,5 +13,10 @@ Gem::Specification.new do |spec|
13
13
  spec.require_paths = ['lib']
14
14
  spec.summary = 'Database-backed asynchronous priority queue system -- Extracted from Shopify'
15
15
  spec.test_files = Dir.glob('spec/**/*')
16
- spec.version = '4.1.5'
16
+ spec.version = '4.1.11'
17
+ spec.metadata = {
18
+ 'changelog_uri' => 'https://github.com/collectiveidea/delayed_job/blob/master/CHANGELOG.md',
19
+ 'bug_tracker_uri' => 'https://github.com/collectiveidea/delayed_job/issues',
20
+ 'source_code_uri' => 'https://github.com/collectiveidea/delayed_job'
21
+ }
17
22
  end
@@ -133,7 +133,8 @@ module Delayed
133
133
  end
134
134
 
135
135
  def fail!
136
- update_attributes(:failed_at => self.class.db_time_now)
136
+ self.failed_at = self.class.db_time_now
137
+ save!
137
138
  end
138
139
 
139
140
  protected
@@ -523,7 +523,8 @@ shared_examples_for 'a delayed_job backend' do
523
523
  it 'reloads changed attributes' do
524
524
  story = Story.create(:text => 'hello')
525
525
  job = story.delay.tell
526
- story.update_attributes :text => 'goodbye'
526
+ story.text = 'goodbye'
527
+ story.save!
527
528
  expect(job.reload.payload_object.object.text).to eq('goodbye')
528
529
  end
529
530
 
@@ -28,7 +28,13 @@ module Delayed
28
28
  end
29
29
 
30
30
  def visit_Psych_Nodes_Mapping(object) # rubocop:disable CyclomaticComplexity, MethodName, PerceivedComplexity
31
- return revive(Psych.load_tags[object.tag], object) if Psych.load_tags[object.tag]
31
+ klass = Psych.load_tags[object.tag]
32
+ if klass
33
+ # Implementation changed here https://github.com/ruby/psych/commit/2c644e184192975b261a81f486a04defa3172b3f
34
+ # load_tags used to have class values, now the values are strings
35
+ klass = resolve_class(klass) if klass.is_a?(String)
36
+ return revive(klass, object)
37
+ end
32
38
 
33
39
  case object.tag
34
40
  when %r{^!ruby/object}
@@ -4,10 +4,6 @@ require 'rails'
4
4
  module Delayed
5
5
  class Railtie < Rails::Railtie
6
6
  initializer :after_initialize do
7
- ActiveSupport.on_load(:action_mailer) do
8
- ActionMailer::Base.extend(Delayed::DelayMail)
9
- end
10
-
11
7
  Delayed::Worker.logger ||= if defined?(Rails)
12
8
  Rails.logger
13
9
  elsif defined?(RAILS_DEFAULT_LOGGER)
@@ -1,5 +1,6 @@
1
1
  require 'timeout'
2
2
  require 'active_support/dependencies'
3
+ require 'active_support/core_ext/kernel/reporting'
3
4
  require 'active_support/core_ext/numeric/time'
4
5
  require 'active_support/core_ext/class/attribute_accessors'
5
6
  require 'active_support/hash_with_indifferent_access'
@@ -251,7 +252,7 @@ module Delayed
251
252
  job.unlock
252
253
  job.save!
253
254
  else
254
- job_say job, "REMOVED permanently because of #{job.attempts} consecutive failures", 'error'
255
+ job_say job, "FAILED permanently because of #{job.attempts} consecutive failures", 'error'
255
256
  failed(job)
256
257
  end
257
258
  end
data/lib/delayed_job.rb CHANGED
@@ -3,12 +3,6 @@ require 'delayed/compatibility'
3
3
  require 'delayed/exceptions'
4
4
  require 'delayed/message_sending'
5
5
  require 'delayed/performable_method'
6
-
7
- if defined?(ActionMailer)
8
- require 'action_mailer/version'
9
- require 'delayed/performable_mailer'
10
- end
11
-
12
6
  require 'delayed/yaml_ext'
13
7
  require 'delayed/lifecycle'
14
8
  require 'delayed/plugin'
@@ -19,5 +13,15 @@ require 'delayed/worker'
19
13
  require 'delayed/deserialization_error'
20
14
  require 'delayed/railtie' if defined?(Rails::Railtie)
21
15
 
16
+ ActiveSupport.on_load(:action_mailer) do
17
+ require 'delayed/performable_mailer'
18
+ ActionMailer::Base.extend(Delayed::DelayMail)
19
+ ActionMailer::Parameterized::Mailer.include(Delayed::DelayMail) if defined?(ActionMailer::Parameterized::Mailer)
20
+ end
21
+
22
+ module Delayed
23
+ autoload :PerformableMailer, 'delayed/performable_mailer'
24
+ end
25
+
22
26
  Object.send(:include, Delayed::MessageSending)
23
27
  Module.send(:include, Delayed::MessageSendingClassMethods)
@@ -87,11 +87,6 @@ module Delayed
87
87
  Time.current
88
88
  end
89
89
 
90
- def update_attributes(attrs = {})
91
- attrs.each { |k, v| send(:"#{k}=", v) }
92
- save
93
- end
94
-
95
90
  def destroy
96
91
  self.class.all.delete(self)
97
92
  end
data/spec/helper.rb CHANGED
@@ -1,20 +1,25 @@
1
1
  require 'simplecov'
2
- require 'coveralls'
2
+ require 'simplecov-lcov'
3
3
 
4
- SimpleCov.formatters = [SimpleCov::Formatter::HTMLFormatter, Coveralls::SimpleCov::Formatter]
4
+ SimpleCov::Formatter::LcovFormatter.config do |c|
5
+ c.report_with_single_file = true
6
+ c.single_report_path = 'coverage/lcov.info'
7
+ end
8
+ SimpleCov.formatters = SimpleCov::Formatter::MultiFormatter.new(
9
+ [
10
+ SimpleCov::Formatter::HTMLFormatter,
11
+ SimpleCov::Formatter::LcovFormatter
12
+ ]
13
+ )
5
14
 
6
15
  SimpleCov.start do
7
16
  add_filter '/spec/'
8
- # Each version of ruby and version of rails test different things
9
- # This should probably just be removed.
10
- minimum_coverage(85.0)
11
17
  end
12
18
 
13
19
  require 'logger'
14
20
  require 'rspec'
15
21
 
16
22
  require 'action_mailer'
17
- require 'active_support/dependencies'
18
23
  require 'active_record'
19
24
 
20
25
  require 'delayed_job'
@@ -42,11 +47,21 @@ end
42
47
 
43
48
  Delayed::Worker.backend = :test
44
49
 
45
- # Add this directory so the ActiveSupport autoloading works
46
- ActiveSupport::Dependencies.autoload_paths << File.dirname(__FILE__)
50
+ if ActiveSupport::VERSION::MAJOR < 7
51
+ require 'active_support/dependencies'
47
52
 
48
- # Add this to simulate Railtie initializer being executed
49
- ActionMailer::Base.extend(Delayed::DelayMail)
53
+ # Add this directory so the ActiveSupport autoloading works
54
+ ActiveSupport::Dependencies.autoload_paths << File.dirname(__FILE__)
55
+ else
56
+ # Rails 7 dropped classic dependency auto-loading. This does a basic
57
+ # zeitwerk setup to test against zeitwerk directly as the Rails zeitwerk
58
+ # setup is intertwined in the application boot process.
59
+ require 'zeitwerk'
60
+
61
+ loader = Zeitwerk::Loader.new
62
+ loader.push_dir File.dirname(__FILE__)
63
+ loader.setup
64
+ end
50
65
 
51
66
  # Used to test interactions between DJ and an ORM
52
67
  ActiveRecord::Base.establish_connection :adapter => 'sqlite3', :database => ':memory:'
@@ -1,6 +1,5 @@
1
1
  require 'helper'
2
2
 
3
- require 'action_mailer'
4
3
  class MyMailer < ActionMailer::Base
5
4
  def signup(email)
6
5
  mail :to => email, :subject => 'Delaying Emails', :from => 'delayedjob@example.com', :body => 'Delaying Emails Body'
@@ -41,3 +40,29 @@ describe ActionMailer::Base do
41
40
  end
42
41
  end
43
42
  end
43
+
44
+ if defined?(ActionMailer::Parameterized::Mailer)
45
+ describe ActionMailer::Parameterized::Mailer do
46
+ describe 'delay' do
47
+ it 'enqueues a PerformableEmail job' do
48
+ expect do
49
+ job = MyMailer.with(:foo => 1, :bar => 2).delay.signup('john@example.com')
50
+ expect(job.payload_object.class).to eq(Delayed::PerformableMailer)
51
+ expect(job.payload_object.object.class).to eq(ActionMailer::Parameterized::Mailer)
52
+ expect(job.payload_object.object.instance_variable_get('@mailer')).to eq(MyMailer)
53
+ expect(job.payload_object.object.instance_variable_get('@params')).to eq(:foo => 1, :bar => 2)
54
+ expect(job.payload_object.method_name).to eq(:signup)
55
+ expect(job.payload_object.args).to eq(['john@example.com'])
56
+ end.to change { Delayed::Job.count }.by(1)
57
+ end
58
+ end
59
+
60
+ describe 'delay on a mail object' do
61
+ it 'raises an exception' do
62
+ expect do
63
+ MyMailer.with(:foo => 1, :bar => 2).signup('john@example.com').delay
64
+ end.to raise_error(RuntimeError)
65
+ end
66
+ end
67
+ end
68
+ end
@@ -3,10 +3,32 @@ require 'helper'
3
3
  describe 'Psych::Visitors::ToRuby', :if => defined?(Psych::Visitors::ToRuby) do
4
4
  context BigDecimal do
5
5
  it 'deserializes correctly' do
6
- deserialized = YAML.load("--- !ruby/object:BigDecimal 18:0.1337E2\n...\n")
6
+ deserialized = YAML.load_dj("--- !ruby/object:BigDecimal 18:0.1337E2\n...\n")
7
7
 
8
8
  expect(deserialized).to be_an_instance_of(BigDecimal)
9
9
  expect(deserialized).to eq(BigDecimal('13.37'))
10
10
  end
11
11
  end
12
+
13
+ context 'load_tag handling' do
14
+ # This only broadly works in ruby 2.0 but will cleanly work through load_dj
15
+ # here because this class is so simple it only touches our extention
16
+ YAML.load_tags['!ruby/object:RenamedClass'] = SimpleJob
17
+ # This is how ruby 2.1 and newer works throughout the yaml handling
18
+ YAML.load_tags['!ruby/object:RenamedString'] = 'SimpleJob'
19
+
20
+ it 'deserializes class tag' do
21
+ deserialized = YAML.load_dj("--- !ruby/object:RenamedClass\ncheck: 12\n")
22
+
23
+ expect(deserialized).to be_an_instance_of(SimpleJob)
24
+ expect(deserialized.instance_variable_get(:@check)).to eq(12)
25
+ end
26
+
27
+ it 'deserializes string tag' do
28
+ deserialized = YAML.load_dj("--- !ruby/object:RenamedString\ncheck: 12\n")
29
+
30
+ expect(deserialized).to be_an_instance_of(SimpleJob)
31
+ expect(deserialized.instance_variable_get(:@check)).to eq(12)
32
+ end
33
+ end
12
34
  end
@@ -25,7 +25,7 @@ describe 'YAML' do
25
25
  it 'autoloads the class of an anonymous struct' do
26
26
  expect do
27
27
  yaml = "--- !ruby/struct\nn: 1\n"
28
- object = YAML.load(yaml)
28
+ object = load_with_delayed_visitor(yaml)
29
29
  expect(object).to be_kind_of(Struct)
30
30
  expect(object.n).to eq(1)
31
31
  end.not_to raise_error
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: delayed_job
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.5
4
+ version: 4.1.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brandon Keepers
@@ -12,10 +12,10 @@ authors:
12
12
  - Matt Griffin
13
13
  - Steve Richert
14
14
  - Tobias Lütke
15
- autorequire:
15
+ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
- date: 2018-04-13 00:00:00.000000000 Z
18
+ date: 2022-09-28 00:00:00.000000000 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: activesupport
@@ -26,7 +26,7 @@ dependencies:
26
26
  version: '3.0'
27
27
  - - "<"
28
28
  - !ruby/object:Gem::Version
29
- version: '5.3'
29
+ version: '8.0'
30
30
  type: :runtime
31
31
  prerelease: false
32
32
  version_requirements: !ruby/object:Gem::Requirement
@@ -36,7 +36,7 @@ dependencies:
36
36
  version: '3.0'
37
37
  - - "<"
38
38
  - !ruby/object:Gem::Version
39
- version: '5.3'
39
+ version: '8.0'
40
40
  description: Delayed_job (or DJ) encapsulates the common pattern of asynchronously
41
41
  executing longer tasks in the background. It is a direct extraction from Shopify
42
42
  where the job table is responsible for a multitude of core tasks.
@@ -102,8 +102,11 @@ files:
102
102
  homepage: http://github.com/collectiveidea/delayed_job
103
103
  licenses:
104
104
  - MIT
105
- metadata: {}
106
- post_install_message:
105
+ metadata:
106
+ changelog_uri: https://github.com/collectiveidea/delayed_job/blob/master/CHANGELOG.md
107
+ bug_tracker_uri: https://github.com/collectiveidea/delayed_job/issues
108
+ source_code_uri: https://github.com/collectiveidea/delayed_job
109
+ post_install_message:
107
110
  rdoc_options: []
108
111
  require_paths:
109
112
  - lib
@@ -118,27 +121,26 @@ required_rubygems_version: !ruby/object:Gem::Requirement
118
121
  - !ruby/object:Gem::Version
119
122
  version: '0'
120
123
  requirements: []
121
- rubyforge_project:
122
- rubygems_version: 2.7.6
123
- signing_key:
124
+ rubygems_version: 3.3.7
125
+ signing_key:
124
126
  specification_version: 4
125
127
  summary: Database-backed asynchronous priority queue system -- Extracted from Shopify
126
128
  test_files:
127
- - spec/sample_jobs.rb
128
- - spec/lifecycle_spec.rb
129
- - spec/performable_method_spec.rb
130
- - spec/helper.rb
131
- - spec/psych_ext_spec.rb
132
- - spec/worker_spec.rb
133
- - spec/autoloaded/struct.rb
134
129
  - spec/autoloaded/clazz.rb
135
130
  - spec/autoloaded/instance_clazz.rb
136
131
  - spec/autoloaded/instance_struct.rb
137
- - spec/test_backend_spec.rb
138
- - spec/delayed/serialization/test.rb
132
+ - spec/autoloaded/struct.rb
133
+ - spec/daemons.rb
139
134
  - spec/delayed/backend/test.rb
140
135
  - spec/delayed/command_spec.rb
136
+ - spec/delayed/serialization/test.rb
137
+ - spec/helper.rb
138
+ - spec/lifecycle_spec.rb
141
139
  - spec/message_sending_spec.rb
142
140
  - spec/performable_mailer_spec.rb
141
+ - spec/performable_method_spec.rb
142
+ - spec/psych_ext_spec.rb
143
+ - spec/sample_jobs.rb
144
+ - spec/test_backend_spec.rb
145
+ - spec/worker_spec.rb
143
146
  - spec/yaml_ext_spec.rb
144
- - spec/daemons.rb