lev 8.1.0 → 9.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +5 -3
- data/lib/lev.rb +2 -12
- data/lib/lev/active_job/base.rb +2 -2
- data/lib/lev/object.rb +5 -0
- data/lib/lev/routine.rb +12 -2
- data/lib/lev/version.rb +1 -1
- data/spec/active_job_routines_spec.rb +2 -4
- data/spec/spec_helper.rb +1 -0
- data/spec/statused_routines_spec.rb +1 -3
- metadata +2 -4
- data/spec/support/jobba.rb +0 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 282065bb04397e2bd972a0fed407f6a459f99457
|
4
|
+
data.tar.gz: a3f906162864f35c4795c2dac565db236755f454
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 406b49f5cfc26b5b7af0a17415ecaa51ddea921496608571879292ea537b316d82c81225cfc8c9253cf22515b0a53e99674b73aee4116cf16001b91dad471e90
|
7
|
+
data.tar.gz: 9f95deafac942d65ae90b9c7ed6e543b42fb5a8749ee3a7760e49998f3881e4e8de1487aae9dd93703c26e8f36f2777b565bfe7c5efa9f38570e06b049751925
|
data/README.md
CHANGED
@@ -449,9 +449,11 @@ Routine status objects also have query methods to check if a status is in a give
|
|
449
449
|
For plain vanilla routines not run as an active job, the status calls are no-ops. When a routine is invoked with `perform_later`, the status object is created/found using two configuration options that must be set (if you care about the status):
|
450
450
|
|
451
451
|
```ruby
|
452
|
-
|
453
|
-
|
454
|
-
|
452
|
+
class SomeRoutine
|
453
|
+
lev_routine use_jobba: true
|
454
|
+
# This is the same as:
|
455
|
+
# self.create_status_proc = ->(*) { Jobba::Status.create! }
|
456
|
+
# self.find_status_proc = ->(id) { Jobba::Status.find!(id) }
|
455
457
|
end
|
456
458
|
```
|
457
459
|
|
data/lib/lev.rb
CHANGED
@@ -31,14 +31,6 @@ require 'lev/null_status'
|
|
31
31
|
module Lev
|
32
32
|
class << self
|
33
33
|
|
34
|
-
def create_status
|
35
|
-
configuration.create_status_proc.call
|
36
|
-
end
|
37
|
-
|
38
|
-
def find_status(id)
|
39
|
-
configuration.find_status_proc.call(id)
|
40
|
-
end
|
41
|
-
|
42
34
|
###########################################################################
|
43
35
|
#
|
44
36
|
# Configuration machinery.
|
@@ -71,8 +63,6 @@ module Lev
|
|
71
63
|
attr_accessor :security_transgression_error
|
72
64
|
attr_accessor :illegal_argument_error
|
73
65
|
attr_accessor :raise_fatal_errors
|
74
|
-
attr_accessor :create_status_proc
|
75
|
-
attr_accessor :find_status_proc
|
76
66
|
attr_accessor :job_class
|
77
67
|
|
78
68
|
def initialize
|
@@ -80,8 +70,6 @@ module Lev
|
|
80
70
|
@security_transgression_error = Lev::SecurityTransgression
|
81
71
|
@illegal_argument_error = Lev::IllegalArgument
|
82
72
|
@raise_fatal_errors = false
|
83
|
-
@create_status_proc = ->(*) { NullStatus.new }
|
84
|
-
@find_status_proc = ->(*) { NullStatus.new }
|
85
73
|
@job_class = ::ActiveJob::Base
|
86
74
|
super
|
87
75
|
end
|
@@ -89,3 +77,5 @@ module Lev
|
|
89
77
|
|
90
78
|
end
|
91
79
|
end
|
80
|
+
|
81
|
+
require "lev/active_job"
|
data/lib/lev/active_job/base.rb
CHANGED
@@ -5,7 +5,7 @@ module Lev
|
|
5
5
|
|
6
6
|
def perform_later(routine_class, options, *args, &block)
|
7
7
|
# Create a new status object
|
8
|
-
status =
|
8
|
+
status = routine_class.create_status
|
9
9
|
|
10
10
|
# Push the routine class name on to the arguments
|
11
11
|
# so that we can run the correct routine in `perform`
|
@@ -40,7 +40,7 @@ module Lev
|
|
40
40
|
id = args.pop
|
41
41
|
routine_class = Kernel.const_get(args.pop)
|
42
42
|
|
43
|
-
routine_instance = routine_class.new(
|
43
|
+
routine_instance = routine_class.new(routine_class.find_status(id))
|
44
44
|
|
45
45
|
routine_instance.call(*args, &block)
|
46
46
|
end
|
data/lib/lev/object.rb
CHANGED
@@ -25,6 +25,11 @@ class Object
|
|
25
25
|
|
26
26
|
# Set this after dealing with "delegates_to" in case it set a value
|
27
27
|
@express_output ||= options[:express_output] || self.name.demodulize.underscore
|
28
|
+
|
29
|
+
if options[:use_jobba]
|
30
|
+
self.create_status_proc = ->(*) { Jobba::Status.create! }
|
31
|
+
self.find_status_proc = ->(id) { Jobba::Status.find!(id) }
|
32
|
+
end
|
28
33
|
end
|
29
34
|
end
|
30
35
|
|
data/lib/lev/routine.rb
CHANGED
@@ -182,8 +182,7 @@ module Lev
|
|
182
182
|
module Routine
|
183
183
|
|
184
184
|
class Result
|
185
|
-
attr_reader :outputs
|
186
|
-
attr_reader :errors
|
185
|
+
attr_reader :outputs, :errors
|
187
186
|
|
188
187
|
def initialize(outputs, errors)
|
189
188
|
@outputs = outputs
|
@@ -195,6 +194,9 @@ module Lev
|
|
195
194
|
|
196
195
|
def self.included(base)
|
197
196
|
base.extend(ClassMethods)
|
197
|
+
base.class_attribute :create_status_proc, :find_status_proc
|
198
|
+
base.create_status_proc = ->(*) { NullStatus.new }
|
199
|
+
base.find_status_proc = ->(*) { NullStatus.new }
|
198
200
|
end
|
199
201
|
|
200
202
|
module ClassMethods
|
@@ -262,6 +264,14 @@ module Lev
|
|
262
264
|
def class_to_symbol(klass)
|
263
265
|
klass.name.underscore.gsub('/','_').to_sym
|
264
266
|
end
|
267
|
+
|
268
|
+
def create_status
|
269
|
+
create_status_proc.call
|
270
|
+
end
|
271
|
+
|
272
|
+
def find_status(id)
|
273
|
+
find_status_proc.call(id)
|
274
|
+
end
|
265
275
|
end
|
266
276
|
|
267
277
|
attr_reader :runner
|
data/lib/lev/version.rb
CHANGED
@@ -2,11 +2,9 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
RSpec.describe 'ActiveJob routines' do
|
4
4
|
|
5
|
-
before { Lev::Jobba.use_jobba }
|
6
|
-
|
7
5
|
context 'default configuration' do
|
8
6
|
class LaterRoutine
|
9
|
-
lev_routine active_job_enqueue_options: { queue: :something_else }
|
7
|
+
lev_routine active_job_enqueue_options: { queue: :something_else }, use_jobba: true
|
10
8
|
|
11
9
|
protected
|
12
10
|
def exec; end
|
@@ -44,7 +42,7 @@ RSpec.describe 'ActiveJob routines' do
|
|
44
42
|
after { ::ActiveJob::Base.queue_adapter = :test }
|
45
43
|
|
46
44
|
class ExceptionalRoutine
|
47
|
-
lev_routine
|
45
|
+
lev_routine use_jobba: true
|
48
46
|
|
49
47
|
protected
|
50
48
|
def exec
|
data/spec/spec_helper.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
class StatusedRoutine
|
4
|
-
lev_routine
|
4
|
+
lev_routine use_jobba: true
|
5
5
|
|
6
6
|
protected
|
7
7
|
|
@@ -14,8 +14,6 @@ end
|
|
14
14
|
|
15
15
|
RSpec.describe 'Statused Routines' do
|
16
16
|
|
17
|
-
before { Lev::Jobba.use_jobba }
|
18
|
-
|
19
17
|
let(:routine_class) { StatusedRoutine }
|
20
18
|
let(:args) { ['some arg'] }
|
21
19
|
let(:status_id) { routine_class.perform_later(*args) }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lev
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 9.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- JP Slavinsky
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-05-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -268,7 +268,6 @@ files:
|
|
268
268
|
- spec/support/create_sprocket.rb
|
269
269
|
- spec/support/delegated_routine.rb
|
270
270
|
- spec/support/delegating_routine.rb
|
271
|
-
- spec/support/jobba.rb
|
272
271
|
- spec/support/paramify_handler_a.rb
|
273
272
|
- spec/support/paramify_handler_b.rb
|
274
273
|
- spec/support/sprocket.rb
|
@@ -308,7 +307,6 @@ test_files:
|
|
308
307
|
- spec/deep_merge_spec.rb
|
309
308
|
- spec/support/paramify_handler_b.rb
|
310
309
|
- spec/support/sprocket_handler.rb
|
311
|
-
- spec/support/jobba.rb
|
312
310
|
- spec/support/paramify_handler_a.rb
|
313
311
|
- spec/support/delegating_routine.rb
|
314
312
|
- spec/support/create_sprocket.rb
|
data/spec/support/jobba.rb
DELETED