delayed_job 4.1.6 → 4.1.9

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b67418ad5fa9b6bb8f56f10ce7ef56bd350a9f6729932f891ef7153dfa77651b
4
- data.tar.gz: 162d1df1447096b0f08ade405bccbfec41955b74e4abb54e5c338a08ecc4b7c1
3
+ metadata.gz: 2c2e880a669ae56ceb7d75aa435f7a24540f3ff1669d5f0513eb82d7418cbcb5
4
+ data.tar.gz: aa5972d6556772c30eae6bff54bfa6fe02216d532af37d780f4da58c3beff702
5
5
  SHA512:
6
- metadata.gz: 132f728b6b4df3106a8fe49330aeecec2a96f905fe3af0b3c4749584b76f4bec657fe2b4510b41ef431a162b4eb4be4012f0124dc20e9c7a755f3442a15eae8e
7
- data.tar.gz: c18a9b93033ab503923123a385d47c55c08270528fb6e5172b8fc6a8e723b7f01e32e0f1636b95750e6b2d5a3359a4331ab09c793e21fbf5b63b98d22e8d649d
6
+ metadata.gz: edc7f370dc4f2783ada28648641be2274fee0adc260d2f4f230a999884850c5cff6aa5086b5df56c0be288ac23dd9edc997b48dc24b378ab8b8c99bf9e74107f
7
+ data.tar.gz: 3e5162db607ddf2d9b35c4a931deea4dfd494a683730652b14d067b911717c4bb8484205cec85190c7a695dba01ef68d405e6070ec961471fd9c32630c0e352c
@@ -1,21 +1,34 @@
1
+ 4.1.9 - 2020-12-09
2
+ ==================
3
+ * Support for Rails 6.1
4
+ * Add support for parameterized mailers via delay call (#1121)
5
+
6
+ 4.1.8 - 2019-08-16
7
+ ==================
8
+ * Support for Rails 6.0.0
9
+
10
+ 4.1.7 - 2019-06-20
11
+ ==================
12
+ * Fix loading Delayed::PerformableMailer when ActionMailer isn't loaded yet
13
+
1
14
  4.1.6 - 2019-06-19
2
- =================
15
+ ==================
3
16
  * Properly initialize ActionMailer outside railties (#1077)
4
17
  * Fix Psych load_tags support (#1093)
5
18
  * Replace REMOVED with FAILED in log message (#1048)
6
19
  * Misc doc updates (#1052, #1074, #1064, #1063)
7
20
 
8
21
  4.1.5 - 2018-04-13
9
- =================
22
+ ==================
10
23
  * Allow Rails 5.2
11
24
 
12
25
  4.1.4 - 2017-12-29
13
- =================
26
+ ==================
14
27
  * Use `yaml_tag` instead of deprecated `yaml_as` (#996)
15
28
  * Support ruby 2.5.0
16
29
 
17
30
  4.1.3 - 2017-05-26
18
- =================
31
+ ==================
19
32
  * Don't mutate the options hash (#877)
20
33
  * Log an error message when a deserialization error occurs (#894)
21
34
  * Adding the queue name to the log output (#917)
data/README.md CHANGED
@@ -1,17 +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.6).](https://github.com/collectiveidea/delayed_job/tree/v4.1.6)**
4
+ (4.1.9).](https://github.com/collectiveidea/delayed_job/tree/v4.1.9)**
5
5
 
6
6
  Delayed::Job
7
7
  ============
8
8
  [![Gem Version](https://badge.fury.io/rb/delayed_job.svg)][gem]
9
- [![Build Status](https://travis-ci.org/collectiveidea/delayed_job.svg?branch=master)][travis]
9
+ ![CI](https://github.com/collectiveidea/delayed_job/workflows/CI/badge.svg)
10
10
  [![Code Climate](https://codeclimate.com/github/collectiveidea/delayed_job.svg)][codeclimate]
11
11
  [![Coverage Status](https://coveralls.io/repos/collectiveidea/delayed_job/badge.svg?branch=master)][coveralls]
12
12
 
13
13
  [gem]: https://rubygems.org/gems/delayed_job
14
- [travis]: https://travis-ci.org/collectiveidea/delayed_job
15
14
  [codeclimate]: https://codeclimate.com/github/collectiveidea/delayed_job
16
15
  [coveralls]: https://coveralls.io/r/collectiveidea/delayed_job
17
16
 
@@ -168,9 +167,10 @@ end
168
167
 
169
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`.
170
169
 
171
- Rails 3 Mailers
172
- ===============
173
- 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`.
174
174
 
175
175
  ```ruby
176
176
  # without delayed_job
@@ -179,12 +179,16 @@ Notifier.signup(@user).deliver
179
179
  # with delayed_job
180
180
  Notifier.delay.signup(@user)
181
181
 
182
- # with delayed_job running at a specific time
182
+ # delayed_job running at a specific time
183
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)
184
187
  ```
185
188
 
186
- Remove the `.deliver` method to make it work. It's not ideal, but it's the best
187
- 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.
188
192
 
189
193
  Named Queues
190
194
  ============
@@ -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', '< 6.2']
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.6'
16
+ spec.version = '4.1.9'
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
 
@@ -16,6 +16,11 @@ require 'delayed/railtie' if defined?(Rails::Railtie)
16
16
  ActiveSupport.on_load(:action_mailer) do
17
17
  require 'delayed/performable_mailer'
18
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'
19
24
  end
20
25
 
21
26
  Object.send(:include, Delayed::MessageSending)
@@ -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
@@ -1,13 +1,19 @@
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'
@@ -40,3 +40,29 @@ describe ActionMailer::Base do
40
40
  end
41
41
  end
42
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
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.6
4
+ version: 4.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brandon Keepers
@@ -15,7 +15,7 @@ authors:
15
15
  autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
- date: 2019-06-19 00:00:00.000000000 Z
18
+ date: 2020-12-09 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: '6.2'
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: '6.2'
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,7 +102,10 @@ files:
102
102
  homepage: http://github.com/collectiveidea/delayed_job
103
103
  licenses:
104
104
  - MIT
105
- metadata: {}
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
106
109
  post_install_message:
107
110
  rdoc_options: []
108
111
  require_paths: