job-iteration 1.9.0 → 1.10.0

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: b32eb2fd6eb2dc54f59eff462a3cde3882192134c2964ffc05b737957e3d4abb
4
- data.tar.gz: 255864c2fac9d3cc0f75da1929d18c1aeb8e63ff83ea3dc6c19038c0e4894e54
3
+ metadata.gz: 4470d17b555f82240c1849477ebfb46d7385c27524748072c0dcf93af588d9eb
4
+ data.tar.gz: 1dc09430105ac34917aace4451c2ec7255cca9319a5ada563ed840857add81b6
5
5
  SHA512:
6
- metadata.gz: 7c241d626e4c92c4424dd08745feab35f1606fafbf6f0d610f34a704d16702a52623f646e5715925b331509257c737053b25bf90091f61a948b6fba2315cc659
7
- data.tar.gz: 19b821e84f93954cea21b0709455ac5ad12b2633f70c2182ae93e75d2e883a0985dda1cf7c56ac89295caab1720ef3508857201d0c33f18b35ffad76996f093b
6
+ metadata.gz: d1c25928d819bcff005e83e8cc7183e323a4e69d74b16b43884b1a1c1b8f531b54a8ece05004e7a6dfe28c94542454fefa11ff239b16e8c92cdb9d1508a3fd79
7
+ data.tar.gz: 3a8bfcfd03312d82be3ba3974fceecac5d8c53aa9129cb59f9321875ec10a448ffe4cd50b9949cf9da79a6f47c7e586fe266356c9e20111f8f60d48f775ed5a1
@@ -15,51 +15,30 @@ jobs:
15
15
  strategy:
16
16
  fail-fast: false
17
17
  matrix:
18
- ruby: ["2.6", "2.7", "3.0", "3.1", "3.2", "3.3"]
19
- rails: ["5.2", "6.0", "6.1", "7.0", "7.1", "7.2", "edge"]
18
+ ruby: ["3.0", "3.1", "3.2", "3.3", "3.4"]
19
+ rails: ["6.1", "7.0", "7.1", "7.2", "8.0", "edge"]
20
20
  gemfile: [rails_gems]
21
21
  exclude:
22
- - ruby: "2.6"
23
- rails: "7.0"
24
- - ruby: "2.6"
25
- rails: "7.1"
26
- - ruby: "2.6"
27
- rails: "7.2"
28
- - ruby: "2.6"
29
- rails: "edge"
30
- - ruby: "2.7"
31
- rails: "7.1"
32
- - ruby: "2.7"
33
- rails: "7.2"
34
- - ruby: "2.7"
35
- rails: "edge"
36
- - ruby: "3.0"
37
- rails: "5.2"
38
22
  - ruby: "3.0"
39
23
  rails: "7.1"
40
24
  - ruby: "3.0"
41
25
  rails: "7.2"
26
+ - ruby: "3.0"
27
+ rails: "8.0"
42
28
  - ruby: "3.0"
43
29
  rails: "edge"
44
30
  - ruby: "3.1"
45
- rails: "5.2"
46
- - ruby: "3.1"
47
- rails: "6.0"
31
+ rails: "8.0"
48
32
  - ruby: "3.1"
49
33
  rails: "edge"
50
- - ruby: "3.2"
51
- rails: "5.2"
52
- - ruby: "3.2"
53
- rails: "6.0"
54
34
  - ruby: "3.2"
55
35
  rails: "6.1"
56
- - ruby: "3.3"
57
- rails: "5.2"
58
- - ruby: "3.3"
59
- rails: "6.0"
60
36
  - ruby: "3.3"
61
37
  rails: "6.1"
62
-
38
+ - ruby: "3.4"
39
+ rails: "6.1"
40
+ - ruby: "3.4"
41
+ rails: "7.0"
63
42
  include:
64
43
  - ruby: head
65
44
  rails: "edge"
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.3.3
1
+ 3.4.2
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ### Main (unreleased)
2
2
 
3
+ ### Breaking Changes
4
+
5
+ nil
6
+
3
7
  ### Changes
4
8
 
5
9
  nil
@@ -12,7 +16,18 @@ nil
12
16
 
13
17
  nil
14
18
 
15
- ## v1.9.0 (Feb 3, 2024)
19
+ ## v1.10.0 (Mar 20, 2025)
20
+
21
+ ### Breaking Changes
22
+
23
+ - [544](https://github.com/Shopify/job-iteration/pull/544) - Drop support for Ruby 2.6 and 2.7, and Rails 5.2 and 6.0. The minimum supported Ruby version is now 3.0, and the minimum supported Rails version is 6.1.
24
+
25
+ ### Features
26
+
27
+ - [547](https://github.com/Shopify/job-iteration/pull/547) Add interruption adapter for [DelayedJob](https://github.com/collectiveidea/delayed_job).
28
+ - [556](https://github.com/Shopify/job-iteration/pull/556) Add support for generic job classes in the Tapioca Sorbet compiler.
29
+
30
+ ## v1.9.0 (Feb 3, 2025)
16
31
 
17
32
  ### Features
18
33
 
data/Gemfile CHANGED
@@ -10,16 +10,19 @@ gemspec
10
10
  # for integration testing
11
11
  gem "sidekiq"
12
12
  gem "resque"
13
+ gem "delayed_job"
13
14
 
14
15
  if defined?(@rails_gems_requirements) && @rails_gems_requirements
15
16
  # We avoid the `gem "..."` syntax here so Dependabot doesn't try to update these gems.
16
17
  [
17
18
  "activejob",
18
19
  "activerecord",
20
+ "railties",
19
21
  ].each { |name| gem name, @rails_gems_requirements }
20
22
  else
21
23
  # gem "activejob" # Set in gemspec
22
24
  gem "activerecord"
25
+ gem "railties"
23
26
  end
24
27
 
25
28
  gem "mysql2", github: "brianmario/mysql2"
data/Gemfile.lock CHANGED
@@ -8,12 +8,28 @@ GIT
8
8
  PATH
9
9
  remote: .
10
10
  specs:
11
- job-iteration (1.9.0)
12
- activejob (>= 5.2)
11
+ job-iteration (1.10.0)
12
+ activejob (>= 6.1)
13
13
 
14
14
  GEM
15
15
  remote: https://rubygems.org/
16
16
  specs:
17
+ actionpack (8.0.1)
18
+ actionview (= 8.0.1)
19
+ activesupport (= 8.0.1)
20
+ nokogiri (>= 1.8.5)
21
+ rack (>= 2.2.4)
22
+ rack-session (>= 1.0.1)
23
+ rack-test (>= 0.6.3)
24
+ rails-dom-testing (~> 2.2)
25
+ rails-html-sanitizer (~> 1.6)
26
+ useragent (~> 0.16)
27
+ actionview (8.0.1)
28
+ activesupport (= 8.0.1)
29
+ builder (~> 3.1)
30
+ erubi (~> 1.11)
31
+ rails-dom-testing (~> 2.2)
32
+ rails-html-sanitizer (~> 1.6)
17
33
  activejob (8.0.1)
18
34
  activesupport (= 8.0.1)
19
35
  globalid (>= 0.3.6)
@@ -40,19 +56,33 @@ GEM
40
56
  base64 (0.2.0)
41
57
  benchmark (0.4.0)
42
58
  bigdecimal (3.1.9)
59
+ builder (3.3.0)
43
60
  coderay (1.1.3)
44
61
  concurrent-ruby (1.3.5)
45
62
  connection_pool (2.5.0)
63
+ crass (1.0.6)
46
64
  csv (3.3.2)
65
+ date (3.4.1)
66
+ delayed_job (4.1.13)
67
+ activesupport (>= 3.0, < 9.0)
47
68
  drb (2.2.1)
48
69
  erubi (1.13.1)
49
70
  globalid (1.2.1)
50
71
  activesupport (>= 6.1)
51
72
  i18n (1.14.7)
52
73
  concurrent-ruby (~> 1.0)
53
- json (2.9.1)
74
+ io-console (0.8.0)
75
+ irb (1.15.1)
76
+ pp (>= 0.6.0)
77
+ rdoc (>= 4.0.0)
78
+ reline (>= 0.4.2)
79
+ json (2.10.1)
54
80
  language_server-protocol (3.17.0.4)
55
- logger (1.6.5)
81
+ lint_roller (1.1.0)
82
+ logger (1.6.6)
83
+ loofah (2.24.0)
84
+ crass (~> 1.0.2)
85
+ nokogiri (>= 1.12.0)
56
86
  method_source (1.1.0)
57
87
  minitest (5.25.4)
58
88
  mocha (2.7.1)
@@ -62,16 +92,28 @@ GEM
62
92
  mustermann (3.0.3)
63
93
  ruby2_keywords (~> 0.0.1)
64
94
  netrc (0.11.0)
95
+ nokogiri (1.18.3-arm64-darwin)
96
+ racc (~> 1.4)
97
+ nokogiri (1.18.3-x86_64-darwin)
98
+ racc (~> 1.4)
99
+ nokogiri (1.18.3-x86_64-linux-gnu)
100
+ racc (~> 1.4)
65
101
  parallel (1.26.3)
66
- parser (3.3.7.0)
102
+ parser (3.3.7.1)
67
103
  ast (~> 2.4.1)
68
104
  racc
105
+ pp (0.6.2)
106
+ prettyprint
107
+ prettyprint (0.2.0)
69
108
  prism (1.3.0)
70
109
  pry (0.15.2)
71
110
  coderay (~> 1.1)
72
111
  method_source (~> 1.0)
112
+ psych (5.2.3)
113
+ date
114
+ stringio
73
115
  racc (1.8.1)
74
- rack (3.1.8)
116
+ rack (3.1.12)
75
117
  rack-protection (4.1.1)
76
118
  base64 (>= 0.1.0)
77
119
  logger (>= 1.6.0)
@@ -79,46 +121,73 @@ GEM
79
121
  rack-session (2.1.0)
80
122
  base64 (>= 0.1.0)
81
123
  rack (>= 3.0.0)
124
+ rack-test (2.2.0)
125
+ rack (>= 1.3)
126
+ rackup (2.2.1)
127
+ rack (>= 3)
128
+ rails-dom-testing (2.2.0)
129
+ activesupport (>= 5.0.0)
130
+ minitest
131
+ nokogiri (>= 1.6)
132
+ rails-html-sanitizer (1.6.2)
133
+ loofah (~> 2.21)
134
+ nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
135
+ railties (8.0.1)
136
+ actionpack (= 8.0.1)
137
+ activesupport (= 8.0.1)
138
+ irb (~> 1.13)
139
+ rackup (>= 1.0.0)
140
+ rake (>= 12.2)
141
+ thor (~> 1.0, >= 1.2.2)
142
+ zeitwerk (~> 2.6)
82
143
  rainbow (3.1.1)
83
144
  rake (13.2.1)
84
- rbi (0.2.4)
145
+ rbi (0.3.0)
85
146
  prism (~> 1.0)
147
+ rbs (>= 3.4.4)
86
148
  sorbet-runtime (>= 0.5.9204)
87
- redis (5.3.0)
149
+ rbs (3.8.1)
150
+ logger
151
+ rdoc (6.12.0)
152
+ psych (>= 4.0.0)
153
+ redis (5.4.0)
88
154
  redis-client (>= 0.22.0)
89
- redis-client (0.23.2)
155
+ redis-client (0.24.0)
90
156
  connection_pool
91
157
  redis-namespace (1.11.0)
92
158
  redis (>= 4)
93
159
  regexp_parser (2.10.0)
160
+ reline (0.6.0)
161
+ io-console (~> 0.5)
94
162
  resque (2.7.0)
95
163
  mono_logger (~> 1)
96
164
  multi_json (~> 1.0)
97
165
  redis-namespace (~> 1.6)
98
166
  sinatra (>= 0.9.2)
99
- rubocop (1.71.0)
167
+ rubocop (1.73.2)
100
168
  json (~> 2.3)
101
- language_server-protocol (>= 3.17.0)
169
+ language_server-protocol (~> 3.17.0.2)
170
+ lint_roller (~> 1.1.0)
102
171
  parallel (~> 1.10)
103
172
  parser (>= 3.3.0.2)
104
173
  rainbow (>= 2.2.2, < 4.0)
105
174
  regexp_parser (>= 2.9.3, < 3.0)
106
- rubocop-ast (>= 1.36.2, < 2.0)
175
+ rubocop-ast (>= 1.38.0, < 2.0)
107
176
  ruby-progressbar (~> 1.7)
108
177
  unicode-display_width (>= 2.4.0, < 4.0)
109
- rubocop-ast (1.38.0)
178
+ rubocop-ast (1.38.1)
110
179
  parser (>= 3.3.1.0)
111
- rubocop-shopify (2.15.1)
112
- rubocop (~> 1.51)
180
+ rubocop-shopify (2.16.0)
181
+ rubocop (~> 1.62)
113
182
  ruby-progressbar (1.13.0)
114
183
  ruby2_keywords (0.0.5)
115
184
  securerandom (0.4.1)
116
- sidekiq (7.3.8)
117
- base64
118
- connection_pool (>= 2.3.0)
119
- logger
120
- rack (>= 2.2.4)
121
- redis-client (>= 0.22.2)
185
+ sidekiq (8.0.1)
186
+ connection_pool (>= 2.5.0)
187
+ json (>= 2.9.0)
188
+ logger (>= 1.6.2)
189
+ rack (>= 3.1.0)
190
+ redis-client (>= 0.23.2)
122
191
  sinatra (4.1.1)
123
192
  logger (>= 1.6.0)
124
193
  mustermann (~> 3.0)
@@ -126,21 +195,22 @@ GEM
126
195
  rack-protection (= 4.1.1)
127
196
  rack-session (>= 2.0.0, < 3)
128
197
  tilt (~> 2.0)
129
- sorbet (0.5.11787)
130
- sorbet-static (= 0.5.11787)
131
- sorbet-runtime (0.5.11787)
132
- sorbet-static (0.5.11787-universal-darwin)
133
- sorbet-static (0.5.11787-x86_64-linux)
134
- sorbet-static-and-runtime (0.5.11787)
135
- sorbet (= 0.5.11787)
136
- sorbet-runtime (= 0.5.11787)
137
- spoom (1.5.2)
198
+ sorbet (0.5.11915)
199
+ sorbet-static (= 0.5.11915)
200
+ sorbet-runtime (0.5.11915)
201
+ sorbet-static (0.5.11915-universal-darwin)
202
+ sorbet-static (0.5.11915-x86_64-linux)
203
+ sorbet-static-and-runtime (0.5.11915)
204
+ sorbet (= 0.5.11915)
205
+ sorbet-runtime (= 0.5.11915)
206
+ spoom (1.6.0)
138
207
  erubi (>= 1.10.0)
139
208
  prism (>= 0.28.0)
140
209
  rbi (>= 0.2.3)
141
210
  sorbet-static-and-runtime (>= 0.5.10187)
142
211
  thor (>= 0.19.2)
143
- tapioca (0.16.8)
212
+ stringio (3.1.5)
213
+ tapioca (0.16.11)
144
214
  benchmark
145
215
  bundler (>= 2.2.25)
146
216
  netrc (>= 0.11.0)
@@ -158,11 +228,13 @@ GEM
158
228
  unicode-display_width (3.1.4)
159
229
  unicode-emoji (~> 4.0, >= 4.0.4)
160
230
  unicode-emoji (4.0.4)
161
- uri (1.0.2)
231
+ uri (1.0.3)
232
+ useragent (0.16.11)
162
233
  yard (0.9.37)
163
234
  yard-sorbet (0.9.0)
164
235
  sorbet-runtime
165
236
  yard
237
+ zeitwerk (2.7.2)
166
238
 
167
239
  PLATFORMS
168
240
  arm64-darwin
@@ -172,6 +244,7 @@ PLATFORMS
172
244
  DEPENDENCIES
173
245
  activerecord
174
246
  csv
247
+ delayed_job
175
248
  globalid
176
249
  i18n
177
250
  job-iteration!
@@ -179,6 +252,7 @@ DEPENDENCIES
179
252
  mocha
180
253
  mysql2!
181
254
  pry
255
+ railties
182
256
  rake
183
257
  redis
184
258
  resque
data/README.md CHANGED
@@ -151,7 +151,25 @@ class NestedIterationJob < ApplicationJob
151
151
  end
152
152
  ```
153
153
 
154
- Iteration hooks into Sidekiq and Resque out of the box to support graceful interruption. No extra configuration is required.
154
+ Iteration hooks into most popular queue adapters out of the box to support graceful interruption. No extra configuration is required.
155
+
156
+ ## Supported dependencies
157
+
158
+ Job-iteration currently supports the following queue adapters (in order of implementation):
159
+
160
+ - [Resque](https://github.com/resque/resque)
161
+ - [Sidekiq](https://github.com/sidekiq/sidekiq/)
162
+ - [GoodJob](https://github.com/bensheldon/good_job)
163
+ - [Solid Queue](https://github.com/rails/solid_queue)
164
+ - [Amazon SQS](https://github.com/aws/aws-activejob-sqs-ruby)
165
+ - [Delayed::Job](https://github.com/collectiveidea/delayed_job)
166
+
167
+ It supports the following platforms:
168
+
169
+ - Ruby 3.0 and later
170
+ - Rails 6.1 and later
171
+
172
+ Support for older platforms that have reached end of life may occasionally be dropped if maintaining backwards compatibility is cumbersome.
155
173
 
156
174
  ## Guides
157
175
 
@@ -5,7 +5,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
  require "job-iteration/version"
6
6
 
7
7
  Gem::Specification.new do |spec|
8
- spec.required_ruby_version = ">= 2.6"
8
+ spec.required_ruby_version = ">= 3.0"
9
9
  spec.name = "job-iteration"
10
10
  spec.version = JobIteration::VERSION
11
11
  spec.authors = ["Shopify"]
@@ -26,5 +26,5 @@ Gem::Specification.new do |spec|
26
26
  spec.metadata["changelog_uri"] = "https://github.com/Shopify/job-iteration/blob/main/CHANGELOG.md"
27
27
  spec.metadata["allowed_push_host"] = "https://rubygems.org"
28
28
 
29
- spec.add_dependency("activejob", ">= 5.2")
29
+ spec.add_dependency("activejob", ">= 6.1")
30
30
  end
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ begin
4
+ require "delayed_job"
5
+ rescue LoadError
6
+ # DelayedJobb is not available, no need to load the adapter
7
+ return
8
+ end
9
+
10
+ begin
11
+ # Delayed::Worker#stop? was introduced in DelayedJob 3.0.3
12
+ gem("delayed_job", ">= 3.0.3")
13
+ rescue Gem::LoadError
14
+ warn("job-iteration's interruption adapter for DelayedJob requires DelayedJob 3.0.3 or newer")
15
+ return
16
+ end
17
+
18
+ module JobIteration
19
+ module InterruptionAdapters
20
+ module DelayedJobAdapter
21
+ class << self
22
+ attr_accessor :delayed_worker, :delayed_worker_started
23
+
24
+ def call
25
+ if delayed_worker_started
26
+ delayed_worker.nil? || delayed_worker.stop?
27
+ else
28
+ false
29
+ end
30
+ end
31
+ end
32
+
33
+ self.delayed_worker_started = false
34
+
35
+ class DelayedJobPlugin < Delayed::Plugin
36
+ callbacks do |lifecycle|
37
+ lifecycle.before(:execute) do |worker|
38
+ DelayedJobAdapter.delayed_worker = worker
39
+ DelayedJobAdapter.delayed_worker_started = true
40
+ end
41
+
42
+ lifecycle.after(:execute) do |_worker|
43
+ DelayedJobAdapter.delayed_worker = nil
44
+ end
45
+ end
46
+ end
47
+ private_constant :DelayedJobPlugin
48
+
49
+ Delayed::Worker.plugins << DelayedJobPlugin
50
+ end
51
+
52
+ register(:delayed_job, DelayedJobAdapter)
53
+ end
54
+ end
@@ -4,7 +4,7 @@ require_relative "interruption_adapters/null_adapter"
4
4
 
5
5
  module JobIteration
6
6
  module InterruptionAdapters
7
- BUNDLED_ADAPTERS = [:good_job, :resque, :sidekiq, :solid_queue, :sqs].freeze # @api private
7
+ BUNDLED_ADAPTERS = [:delayed_job, :good_job, :resque, :sidekiq, :solid_queue, :sqs].freeze # @api private
8
8
 
9
9
  class << self
10
10
  # Returns adapter for specified name.
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module JobIteration
4
- VERSION = "1.9.0"
4
+ VERSION = "1.10.0"
5
5
  end
@@ -55,10 +55,18 @@ module Tapioca
55
55
  # Sorbet expects optional keyword arguments to be after required keyword arguments.
56
56
  expanded_parameters.sort_by! { |typed_param| PARAM_TYPES_IN_ORDER.index(typed_param.param.class) }
57
57
 
58
+ number_of_generic_type_members = Tapioca::Runtime::GenericTypeRegistry.lookup_type_variables(constant)&.size
59
+
60
+ returned_job_class = if number_of_generic_type_members&.nonzero?
61
+ "#{constant_name}[#{number_of_generic_type_members.times.map { "T.untyped" }.join(", ")}]"
62
+ else
63
+ constant_name
64
+ end
65
+
58
66
  job.create_method(
59
67
  "perform_later",
60
- parameters: perform_later_parameters(expanded_parameters, constant_name),
61
- return_type: "T.any(#{constant_name}, FalseClass)",
68
+ parameters: perform_later_parameters(expanded_parameters, returned_job_class),
69
+ return_type: "T.any(#{returned_job_class}, FalseClass)",
62
70
  class_method: true,
63
71
  )
64
72
 
@@ -83,15 +91,15 @@ module Tapioca
83
91
  sig do
84
92
  params(
85
93
  parameters: T::Array[RBI::TypedParam],
86
- constant_name: T.nilable(String),
94
+ returned_job_class: String,
87
95
  ).returns(T::Array[RBI::TypedParam])
88
96
  end
89
- def perform_later_parameters(parameters, constant_name)
97
+ def perform_later_parameters(parameters, returned_job_class)
90
98
  if ::Gem::Requirement.new(">= 7.0").satisfied_by?(::ActiveJob.gem_version)
91
99
  parameters.reject! { |typed_param| RBI::BlockParam === typed_param.param }
92
100
  parameters + [create_block_param(
93
101
  "block",
94
- type: "T.nilable(T.proc.params(job: #{constant_name}).void)",
102
+ type: "T.nilable(T.proc.params(job: #{returned_job_class}).void)",
95
103
  )]
96
104
  else
97
105
  parameters
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: job-iteration
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.0
4
+ version: 1.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shopify
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-02-03 00:00:00.000000000 Z
10
+ date: 2025-03-20 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: activejob
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: '5.2'
18
+ version: '6.1'
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
- version: '5.2'
25
+ version: '6.1'
26
26
  description: Makes your background jobs interruptible and resumable.
27
27
  email:
28
28
  - ops-accounts+shipit@shopify.com
@@ -61,6 +61,7 @@ files:
61
61
  - lib/job-iteration/csv_enumerator.rb
62
62
  - lib/job-iteration/enumerator_builder.rb
63
63
  - lib/job-iteration/interruption_adapters.rb
64
+ - lib/job-iteration/interruption_adapters/delayed_job_adapter.rb
64
65
  - lib/job-iteration/interruption_adapters/good_job_adapter.rb
65
66
  - lib/job-iteration/interruption_adapters/null_adapter.rb
66
67
  - lib/job-iteration/interruption_adapters/resque_adapter.rb
@@ -88,14 +89,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
88
89
  requirements:
89
90
  - - ">="
90
91
  - !ruby/object:Gem::Version
91
- version: '2.6'
92
+ version: '3.0'
92
93
  required_rubygems_version: !ruby/object:Gem::Requirement
93
94
  requirements:
94
95
  - - ">="
95
96
  - !ruby/object:Gem::Version
96
97
  version: '0'
97
98
  requirements: []
98
- rubygems_version: 3.6.3
99
+ rubygems_version: 3.6.6
99
100
  specification_version: 4
100
101
  summary: Makes your background jobs interruptible and resumable.
101
102
  test_files: []