lev 11.0.0 → 12.1.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: 6a420c65f32a06c875e0e5069340f8cf1cc38505d9862a9ecbe20aede96059a2
4
- data.tar.gz: 51f9c9746e69f4fc818f8e0d0c33e22a0c62d1a4f87c14b37d3b5645118a40ca
3
+ metadata.gz: 36f2d078f5b053db33b4943cc4ea446fcb55144c75138f0b6218a86bb91a0173
4
+ data.tar.gz: 7cd0f512ca30c4d729ab21b4fb3a026acb4f7862c0ab1c91b0af6c9c47473ea0
5
5
  SHA512:
6
- metadata.gz: dd09071d958ae2590c604f2e6708b0942b06ecc97ff50be00d6a37863945543e56393a58f3a15b4664463104ba1064216cd66937bee00c1a3acdadf41596bfa3
7
- data.tar.gz: 668e9e10ea0285ad953b3080484360017d487484f8771e7af1eb235ccdb1e1244ec7f563c1ed59df8148926a5284d2e89b7016c5376b702335ad2de9b88aea4a
6
+ metadata.gz: 4bb1482577a5d79fdd4d6158dbd806be1d39a6e959d4f7fca8c99648ce7959348b21f229a42891dc7d1a9fabca7583a726fb7ab153387e8d2d30645163d271d3
7
+ data.tar.gz: 6bc07ed4006f3a315b72e37e3a9adf33918dbe98071222a5607f6bf4e0cfe09cb0499419bf4321e25c8f32a0001b729053a0b3bf83e206314703a4b656b43205
@@ -3,7 +3,7 @@ module Lev
3
3
  class Base < Lev.configuration.job_class
4
4
  attr_accessor(:provider_job_id) unless respond_to?(:provider_job_id)
5
5
 
6
- def perform_later(routine_class, options, *args, &block)
6
+ def perform_later(routine_class, options, *args, **kwargs, &block)
7
7
  # Create a new status object
8
8
  status = routine_class.create_status
9
9
 
@@ -25,7 +25,7 @@ module Lev
25
25
  # Queue up the job and set the provider_job_id
26
26
  # For delayed_job, requires either Rails 5 or
27
27
  # http://stackoverflow.com/questions/29855768/rails-4-2-get-delayed-job-id-from-active-job
28
- provider_job_id = self.class.send(:job_or_instantiate, *args, &block)
28
+ provider_job_id = self.class.send(:job_or_instantiate, *args, **kwargs, &block)
29
29
  .enqueue(options)
30
30
  .provider_job_id
31
31
  status.set_provider_job_id(provider_job_id) \
@@ -35,14 +35,14 @@ module Lev
35
35
  status.id
36
36
  end
37
37
 
38
- def perform(*args, &block)
38
+ def perform(*args, **kwargs, &block)
39
39
  # Pop arguments added by perform_later
40
40
  id = args.pop
41
41
  routine_class = Kernel.const_get(args.pop)
42
42
 
43
43
  routine_instance = routine_class.new(routine_class.find_status(id))
44
44
 
45
- routine_instance.call(*args, &block)
45
+ routine_instance.call(*args, **kwargs, &block)
46
46
  end
47
47
  end
48
48
  end
@@ -12,8 +12,8 @@ module Lev
12
12
  routine_class.active_job_enqueue_options.merge(@options)
13
13
  end
14
14
 
15
- def perform_later(*args, &block)
16
- routine_class.job_class.new.perform_later(routine_class, options, *args, &block)
15
+ def perform_later(*args, **kwargs, &block)
16
+ routine_class.job_class.new.perform_later(routine_class, options, *args, **kwargs, &block)
17
17
  end
18
18
  end
19
19
  end
@@ -14,7 +14,7 @@ class Lev::NullStatus
14
14
  @kill_requested
15
15
  end
16
16
 
17
- def method_missing(*args, &block)
17
+ def method_missing(*args, **kwargs, &block)
18
18
  nil
19
19
  end
20
20
 
data/lib/lev/routine.rb CHANGED
@@ -200,12 +200,12 @@ module Lev
200
200
  end
201
201
 
202
202
  module ClassMethods
203
- def call(*args, &block)
204
- new.call(*args, &block)
203
+ def call(*args, **kwargs, &block)
204
+ new.call(*args, **kwargs, &block)
205
205
  end
206
206
 
207
- def [](*args, &block)
208
- result = call(*args, &block)
207
+ def [](*args, **kwargs, &block)
208
+ result = call(*args, **kwargs, &block)
209
209
  result.errors.raise_exception_if_any!
210
210
  result.outputs.send(@express_output)
211
211
  end
@@ -222,9 +222,9 @@ module Lev
222
222
  @active_job_enqueue_options || { queue: :default }
223
223
  end
224
224
 
225
- def perform_later(*args, &block)
225
+ def perform_later(*args, **kwargs, &block)
226
226
  # Delegate to a subclass of Lev::Routine::ActiveJob::Base
227
- job_class.new.perform_later(self, active_job_enqueue_options, *args, &block)
227
+ job_class.new.perform_later(self, active_job_enqueue_options, *args, **kwargs, &block)
228
228
  end
229
229
 
230
230
  # Called at a routine's class level to foretell which other routines will
@@ -279,7 +279,7 @@ module Lev
279
279
 
280
280
  attr_reader :runner
281
281
 
282
- def call(*args, &block)
282
+ def call(*args, **kwargs, &block)
283
283
  @after_transaction_blocks = []
284
284
 
285
285
  status.started!
@@ -290,9 +290,9 @@ module Lev
290
290
 
291
291
  catch :fatal_errors_encountered do
292
292
  if self.class.delegates_to
293
- run(self.class.delegates_to, *args, &block)
293
+ run(self.class.delegates_to, *args, **kwargs, &block)
294
294
  else
295
- exec(*args, &block)
295
+ exec(*args, **kwargs, &block)
296
296
  end
297
297
  end
298
298
  end
@@ -324,7 +324,7 @@ module Lev
324
324
  who == topmost_runner && who.class.transaction_isolation != TransactionIsolation.no_transaction
325
325
  end
326
326
 
327
- def run(other_routine, *args, &block)
327
+ def run(other_routine, *args, **kwargs, &block)
328
328
  options = {}
329
329
 
330
330
  if other_routine.is_a? Array
@@ -395,7 +395,7 @@ module Lev
395
395
  #
396
396
 
397
397
  other_routine.runner = self
398
- run_result = other_routine.call(*args, &block)
398
+ run_result = other_routine.call(*args, **kwargs, &block)
399
399
 
400
400
  run_result.outputs.transfer_to(outputs) do |name|
401
401
  output_mapper.map(name)
@@ -495,7 +495,15 @@ module Lev
495
495
  def in_transaction(options={})
496
496
  if transaction_run_by?(self)
497
497
  isolation_symbol = self.class.transaction_isolation.symbol
498
- if ActiveRecord::VERSION::MAJOR >= 4
498
+ if (ActiveRecord::VERSION::MAJOR >= 8 ||
499
+ (ActiveRecord::VERSION::MAJOR == 7 && ActiveRecord::VERSION::MINOR >= 1)) &&
500
+ ActiveRecord::Base.connection.transaction_open?
501
+ # Don't even try to set transaction isolation if the transaction is already open
502
+ ActiveRecord::Base.transaction do
503
+ yield
504
+ raise ActiveRecord::Rollback if errors?
505
+ end
506
+ elsif ActiveRecord::VERSION::MAJOR >= 4
499
507
  begin
500
508
  ActiveRecord::Base.transaction(isolation: isolation_symbol) do
501
509
  yield
data/lib/lev/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Lev
2
- VERSION = '11.0.0'
2
+ VERSION = '12.1.0'
3
3
  end
data/lib/lev.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require "action_view"
2
2
  require "active_job"
3
3
  require "transaction_isolation"
4
- require "transaction_retry"
4
+ require "open_stax_transaction_retry"
5
5
  require "active_attr"
6
6
  require "hashie"
7
7
 
data/spec/spec_helper.rb CHANGED
@@ -26,9 +26,9 @@ end
26
26
  require 'lev'
27
27
  require 'byebug'
28
28
 
29
- require 'transaction_retry'
29
+ require 'open_stax_transaction_retry'
30
30
 
31
- TransactionRetry.apply_activerecord_patch
31
+ OpenStaxTransactionRetry.apply_activerecord_patch
32
32
 
33
33
  Dir[(File.expand_path('../support', __FILE__)) + ("/**/*.rb")].each { |f| require f }
34
34
 
metadata CHANGED
@@ -1,87 +1,87 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lev
3
3
  version: !ruby/object:Gem::Version
4
- version: 11.0.0
4
+ version: 12.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - JP Slavinsky
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-01 00:00:00.000000000 Z
11
+ date: 2024-03-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: activemodel
14
+ name: actionpack
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '6.1'
19
+ version: '4.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '6.1'
26
+ version: '4.2'
27
27
  - !ruby/object:Gem::Dependency
28
- name: activerecord
28
+ name: active_attr
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '4.2'
33
+ version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '4.2'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: actionpack
42
+ name: activejob
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '4.2'
47
+ version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '4.2'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: activejob
56
+ name: activemodel
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '6.1'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '6.1'
69
69
  - !ruby/object:Gem::Dependency
70
- name: transaction_isolation
70
+ name: activerecord
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: '4.2'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: '4.2'
83
83
  - !ruby/object:Gem::Dependency
84
- name: transaction_retry
84
+ name: hashie
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
@@ -95,7 +95,7 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: active_attr
98
+ name: openstax_transaction_retry
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
@@ -109,7 +109,7 @@ dependencies:
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: hashie
112
+ name: transaction_isolation
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ">="
@@ -137,21 +137,21 @@ dependencies:
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  - !ruby/object:Gem::Dependency
140
- name: rake
140
+ name: jobba
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - ">="
144
144
  - !ruby/object:Gem::Version
145
- version: '0'
145
+ version: '2.0'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - ">="
151
151
  - !ruby/object:Gem::Version
152
- version: '0'
152
+ version: '2.0'
153
153
  - !ruby/object:Gem::Dependency
154
- name: rspec
154
+ name: rake
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - ">="
@@ -165,7 +165,7 @@ dependencies:
165
165
  - !ruby/object:Gem::Version
166
166
  version: '0'
167
167
  - !ruby/object:Gem::Dependency
168
- name: sqlite3
168
+ name: rspec
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
171
  - - ">="
@@ -179,19 +179,19 @@ dependencies:
179
179
  - !ruby/object:Gem::Version
180
180
  version: '0'
181
181
  - !ruby/object:Gem::Dependency
182
- name: jobba
182
+ name: sqlite3
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
185
  - - ">="
186
186
  - !ruby/object:Gem::Version
187
- version: '1.5'
187
+ version: '0'
188
188
  type: :development
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - ">="
193
193
  - !ruby/object:Gem::Version
194
- version: '1.5'
194
+ version: '0'
195
195
  description: Ride the rails but don't touch them.
196
196
  email:
197
197
  - jps@kindlinglabs.com
@@ -249,7 +249,7 @@ homepage: http://github.com/lml/lev
249
249
  licenses:
250
250
  - MIT
251
251
  metadata: {}
252
- post_install_message:
252
+ post_install_message:
253
253
  rdoc_options: []
254
254
  require_paths:
255
255
  - lib
@@ -264,28 +264,28 @@ required_rubygems_version: !ruby/object:Gem::Requirement
264
264
  - !ruby/object:Gem::Version
265
265
  version: '0'
266
266
  requirements: []
267
- rubygems_version: 3.2.7
268
- signing_key:
267
+ rubygems_version: 3.4.6
268
+ signing_key:
269
269
  specification_version: 4
270
270
  summary: Ride the rails but don't touch them.
271
271
  test_files:
272
- - spec/create_sprocket_spec.rb
273
- - spec/paramify_handler_spec.rb
274
- - spec/outputs_spec.rb
275
- - spec/transaction_spec.rb
276
- - spec/support/paramify_handler_a.rb
277
- - spec/support/delegated_routine.rb
278
- - spec/support/paramify_handler_b.rb
279
- - spec/support/create_sprocket.rb
280
- - spec/support/sprocket_handler.rb
281
- - spec/support/delegating_routine.rb
282
- - spec/support/sprocket.rb
283
- - spec/statused_routines_spec.rb
284
- - spec/active_model_errors_spec.rb
285
- - spec/delegates_to_spec.rb
286
272
  - spec/active_job_routines_spec.rb
273
+ - spec/active_model_errors_spec.rb
274
+ - spec/create_sprocket_spec.rb
287
275
  - spec/deep_merge_spec.rb
276
+ - spec/delegates_to_spec.rb
277
+ - spec/outputs_spec.rb
278
+ - spec/paramify_handler_spec.rb
288
279
  - spec/routine_spec.rb
289
- - spec/sprocket_handler_spec.rb
290
280
  - spec/spec_helper.rb
281
+ - spec/sprocket_handler_spec.rb
291
282
  - spec/sprocket_spec.rb
283
+ - spec/statused_routines_spec.rb
284
+ - spec/support/create_sprocket.rb
285
+ - spec/support/delegated_routine.rb
286
+ - spec/support/delegating_routine.rb
287
+ - spec/support/paramify_handler_a.rb
288
+ - spec/support/paramify_handler_b.rb
289
+ - spec/support/sprocket.rb
290
+ - spec/support/sprocket_handler.rb
291
+ - spec/transaction_spec.rb