activeinteractor 1.0.5 → 1.1.3

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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +44 -2
  3. data/README.md +10 -29
  4. data/lib/active_interactor/context/attributes.rb +25 -4
  5. data/lib/active_interactor/context/errors.rb +11 -1
  6. data/lib/active_interactor/organizer/interactor_interface.rb +24 -7
  7. data/lib/active_interactor/organizer/perform.rb +11 -2
  8. data/lib/active_interactor/version.rb +41 -3
  9. data/spec/active_interactor/base_spec.rb +1 -0
  10. data/spec/active_interactor/config_spec.rb +1 -0
  11. data/spec/active_interactor/context/base_spec.rb +16 -0
  12. data/spec/active_interactor/error_spec.rb +3 -1
  13. data/spec/active_interactor/interactor/worker_spec.rb +3 -0
  14. data/spec/active_interactor/organizer/base_spec.rb +18 -1
  15. data/spec/active_interactor/organizer/interactor_interface_collection_spec.rb +2 -0
  16. data/spec/active_interactor/organizer/interactor_interface_spec.rb +75 -2
  17. data/spec/active_interactor/version_spec.rb +119 -0
  18. data/spec/active_interactor_spec.rb +0 -6
  19. data/spec/integration/a_basic_organizer_spec.rb +139 -1
  20. data/spec/integration/a_failing_interactor_spec.rb +1 -0
  21. data/spec/integration/an_interactor_with_after_perform_callbacks_spec.rb +1 -0
  22. data/spec/integration/an_interactor_with_after_rollback_callbacks_spec.rb +1 -0
  23. data/spec/integration/an_interactor_with_an_existing_context_class_spec.rb +1 -0
  24. data/spec/integration/an_interactor_with_before_perform_callbacks_spec.rb +1 -0
  25. data/spec/integration/an_interactor_with_before_rollback_callbacks_spec.rb +1 -0
  26. data/spec/integration/an_interactor_with_validations_on_called_spec.rb +1 -0
  27. data/spec/integration/an_interactor_with_validations_on_calling_spec.rb +1 -0
  28. data/spec/integration/an_interactor_with_validations_spec.rb +2 -0
  29. data/spec/integration/an_organizer_with_after_each_callbacks_spec.rb +1 -0
  30. data/spec/integration/an_organizer_with_before_each_callbacks_spec.rb +1 -0
  31. data/spec/integration/an_organizer_with_conditionally_organized_interactors_spec.rb +14 -2
  32. data/spec/integration/an_organizer_with_failing_nested_organizer_spec.rb +47 -0
  33. data/spec/integration/an_organizer_with_options_callbacks_spec.rb +64 -0
  34. data/spec/spec_helper.rb +3 -20
  35. data/spec/support/coverage.rb +50 -0
  36. data/spec/support/shared_examples/a_class_with_interactor_callback_methods_example.rb +8 -0
  37. data/spec/support/shared_examples/a_class_with_interactor_context_methods_example.rb +2 -0
  38. data/spec/support/shared_examples/a_class_with_organizer_callback_methods_example.rb +3 -0
  39. metadata +45 -37
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ RSpec.describe 'An organizer with failing nested organizer', type: :integration do
6
+ let!(:parent_interactor1) { build_interactor('TestParentInteractor1') }
7
+ let!(:parent_interactor2) { build_interactor('TestParentInteractor2') }
8
+ let!(:child_interactor1) { build_interactor('TestChildInteractor1') }
9
+ let!(:child_interactor2) do
10
+ build_interactor('TestChildInteractor2') do
11
+ def perform
12
+ context.fail!
13
+ end
14
+ end
15
+ end
16
+
17
+ let!(:child_interactor_class) do
18
+ build_organizer('TestChildOrganizer') do
19
+ organize TestChildInteractor1, TestChildInteractor2
20
+ end
21
+ end
22
+
23
+ let(:parent_interactor_class) do
24
+ build_organizer('TestParentOrganizer') do
25
+ organize TestParentInteractor1, TestChildOrganizer, TestParentInteractor2
26
+ end
27
+ end
28
+
29
+ describe '.perform' do
30
+ subject { parent_interactor_class.perform }
31
+
32
+ before do
33
+ expect_any_instance_of(child_interactor_class).to receive(:perform).exactly(:once).and_call_original
34
+ expect_any_instance_of(child_interactor1).to receive(:perform).exactly(:once).and_call_original
35
+ expect_any_instance_of(child_interactor2).to receive(:perform).exactly(:once).and_call_original
36
+ expect_any_instance_of(child_interactor2).to receive(:rollback).exactly(:once).and_call_original
37
+ expect_any_instance_of(child_interactor1).to receive(:rollback).exactly(:once).and_call_original
38
+ expect_any_instance_of(parent_interactor1).to receive(:rollback).exactly(:once).and_call_original
39
+ expect_any_instance_of(parent_interactor2).not_to receive(:perform).exactly(:once).and_call_original
40
+ expect_any_instance_of(parent_interactor2).not_to receive(:rollback).exactly(:once).and_call_original
41
+ end
42
+
43
+ it { is_expected.to be_a parent_interactor_class.context_class }
44
+
45
+ it { is_expected.to be_failure }
46
+ end
47
+ end
@@ -0,0 +1,64 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ RSpec.describe 'An organizer with options callbacks', type: :integration do
6
+ let!(:interactor1) do
7
+ build_interactor('TestInteractor1') do
8
+ def perform
9
+ context.step = 3 if context.step == 2
10
+ context.step = 6 if context.step == 5
11
+ end
12
+ end
13
+ end
14
+
15
+ let(:interactor_class) do
16
+ build_organizer do
17
+ organize do
18
+ add TestInteractor1, before: :test_before_method, after: :test_after_method
19
+ add TestInteractor1, before: lambda {
20
+ context.step = 5 if context.step == 4
21
+ }, after: lambda {
22
+ context.step = 7 if context.step == 6
23
+ }
24
+ end
25
+
26
+ private
27
+
28
+ def test_before_method
29
+ context.step = 2 if context.step == 1
30
+ end
31
+
32
+ def test_after_method
33
+ context.step = 4 if context.step == 3
34
+ end
35
+ end
36
+ end
37
+
38
+ include_examples 'a class with interactor methods'
39
+ include_examples 'a class with interactor callback methods'
40
+ include_examples 'a class with interactor context methods'
41
+ include_examples 'a class with organizer callback methods'
42
+
43
+ describe '.perform' do
44
+ subject { interactor_class.perform(step: 1) }
45
+
46
+ it { is_expected.to be_a interactor_class.context_class }
47
+
48
+ it 'is expected to receive #test_before_method once' do
49
+ expect_any_instance_of(interactor_class).to receive(:test_before_method)
50
+ .exactly(:once)
51
+ subject
52
+ end
53
+
54
+ it 'is expected to receive #test_after_method once' do
55
+ expect_any_instance_of(interactor_class).to receive(:test_after_method)
56
+ .exactly(:once)
57
+ subject
58
+ end
59
+
60
+ it 'runs callbacks in sequence' do
61
+ expect(subject.step).to eq(7)
62
+ end
63
+ end
64
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,24 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- begin
4
- require 'simplecov'
5
- require 'simplecov-lcov'
6
-
7
- SimpleCov::Formatter::LcovFormatter.config.report_with_single_file = true
8
-
9
- SimpleCov.start do
10
- enable_coverage :branch
11
- add_filter '/spec/'
12
- add_filter '/lib/rails/**/*.rb'
13
- track_files '/lib/**/*.rb'
14
- formatter SimpleCov::Formatter::MultiFormatter.new([
15
- SimpleCov::Formatter::HTMLFormatter,
16
- SimpleCov::Formatter::LcovFormatter
17
- ])
18
- end
19
- rescue LoadError
20
- puts 'Skipping coverage...'
21
- end
3
+ require_relative 'support/coverage'
4
+ ActiveInteractor::Spec::Coverage.start
22
5
 
23
6
  require 'bundler/setup'
24
7
  require 'active_interactor'
@@ -32,7 +15,7 @@ RSpec.configure do |config|
32
15
  allow(ActiveInteractor.logger).to receive(:error).and_return(true)
33
16
  end
34
17
 
35
- config.after(:each) do
18
+ config.after do
36
19
  clean_factories!
37
20
  end
38
21
 
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'simplecov'
4
+ require 'simplecov-lcov'
5
+
6
+ module ActiveInteractor
7
+ module Spec
8
+ class Coverage
9
+ DEFAULT_COVERAGE_TYPE = 'unit'
10
+ EXCLUDED_FILES_PATTERN = '/spec/'
11
+ TRACKED_FILES_PATTERN = 'lib/**/*.rb'
12
+
13
+ FORMATTERS = [
14
+ SimpleCov::Formatter::HTMLFormatter,
15
+ SimpleCov::Formatter::LcovFormatter
16
+ ].freeze
17
+
18
+ class << self
19
+ def start
20
+ setup_lcov_formatter
21
+ start_simplecov
22
+ end
23
+
24
+ private
25
+
26
+ def simplecov_formatter
27
+ @simplecov_formatter ||= SimpleCov::Formatter::MultiFormatter.new(FORMATTERS)
28
+ end
29
+
30
+ def setup_lcov_formatter
31
+ coverage_type = ENV.fetch('COVERAGE_TYPE', DEFAULT_COVERAGE_TYPE)
32
+
33
+ SimpleCov::Formatter::LcovFormatter.config do |config|
34
+ config.report_with_single_file = true
35
+ config.single_report_path = "coverage/#{coverage_type}_lcov.info"
36
+ end
37
+ end
38
+
39
+ def start_simplecov
40
+ SimpleCov.start do
41
+ add_filter EXCLUDED_FILES_PATTERN
42
+ enable_coverage :branch
43
+ track_files TRACKED_FILES_PATTERN
44
+ formatter simplecov_formatter
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -3,6 +3,7 @@
3
3
  RSpec.shared_examples 'a class with interactor callback methods' do
4
4
  describe '.after_context_validation' do
5
5
  subject { interactor_class.after_context_validation(*args) }
6
+
6
7
  let(:args) { :some_method }
7
8
 
8
9
  it 'is expected to receive #set_callback with :validation, :after, :some_method, { :prepend => true }' do
@@ -15,6 +16,7 @@ RSpec.shared_examples 'a class with interactor callback methods' do
15
16
 
16
17
  describe '.after_perform' do
17
18
  subject { interactor_class.after_perform(*args) }
19
+
18
20
  let(:args) { :some_method }
19
21
 
20
22
  it 'is expected to receive #set_callback with :perform, :after, :some_method' do
@@ -27,6 +29,7 @@ RSpec.shared_examples 'a class with interactor callback methods' do
27
29
 
28
30
  describe '.after_rollback' do
29
31
  subject { interactor_class.after_rollback(*args) }
32
+
30
33
  let(:args) { :some_method }
31
34
 
32
35
  it 'is expected to receive #set_callback with :rollback, :after, :some_method' do
@@ -39,6 +42,7 @@ RSpec.shared_examples 'a class with interactor callback methods' do
39
42
 
40
43
  describe '.around_perform' do
41
44
  subject { interactor_class.around_perform(*args) }
45
+
42
46
  let(:args) { :some_method }
43
47
 
44
48
  it 'is expected to receive #set_callback with :perform, :around, :some_method' do
@@ -51,6 +55,7 @@ RSpec.shared_examples 'a class with interactor callback methods' do
51
55
 
52
56
  describe '.around_rollback' do
53
57
  subject { interactor_class.around_rollback(*args) }
58
+
54
59
  let(:args) { :some_method }
55
60
 
56
61
  it 'is expected to receive #set_callback with :rollback, :around, :some_method' do
@@ -63,6 +68,7 @@ RSpec.shared_examples 'a class with interactor callback methods' do
63
68
 
64
69
  describe '.before_context_validation' do
65
70
  subject { interactor_class.before_context_validation(*args) }
71
+
66
72
  let(:args) { :some_method }
67
73
 
68
74
  it 'is expected to receive #set_callback with :validation, :before, :some_method' do
@@ -75,6 +81,7 @@ RSpec.shared_examples 'a class with interactor callback methods' do
75
81
 
76
82
  describe '.before_perform' do
77
83
  subject { interactor_class.before_perform(*args) }
84
+
78
85
  let(:args) { :some_method }
79
86
 
80
87
  it 'is expected to receive #set_callback with :perform, :before, :some_method' do
@@ -87,6 +94,7 @@ RSpec.shared_examples 'a class with interactor callback methods' do
87
94
 
88
95
  describe '.before_rollback' do
89
96
  subject { interactor_class.before_rollback(*args) }
97
+
90
98
  let(:args) { :some_method }
91
99
 
92
100
  it 'is expected to receive #set_callback with :rollback, :before, :some_method' do
@@ -3,6 +3,7 @@
3
3
  RSpec.shared_examples 'a class with interactor context methods' do
4
4
  describe '.context_attributes' do
5
5
  subject { interactor_class.context_attributes(attributes) }
6
+
6
7
  let(:attributes) { :some_attribute }
7
8
 
8
9
  it 'is expected to receive #attributes on .context_class with :some_attribute' do
@@ -45,6 +46,7 @@ RSpec.shared_examples 'a class with interactor context methods' do
45
46
 
46
47
  describe '#finalize_context!' do
47
48
  subject { instance.finalize_context! }
49
+
48
50
  let(:instance) { interactor_class.new }
49
51
 
50
52
  it 'is expected to receive #called! on instance of .context_class' do
@@ -3,6 +3,7 @@
3
3
  RSpec.shared_examples 'a class with organizer callback methods' do
4
4
  describe '.after_each_perform' do
5
5
  subject { interactor_class.after_each_perform(*args) }
6
+
6
7
  let(:args) { :some_method }
7
8
 
8
9
  it 'is expected to receive #set_callback with :each_perform, :after, :some_method' do
@@ -15,6 +16,7 @@ RSpec.shared_examples 'a class with organizer callback methods' do
15
16
 
16
17
  describe '.around_each_perform' do
17
18
  subject { interactor_class.around_each_perform(*args) }
19
+
18
20
  let(:args) { :some_method }
19
21
 
20
22
  it 'is expected to receive #set_callback with :each_perform, :around, :some_method' do
@@ -27,6 +29,7 @@ RSpec.shared_examples 'a class with organizer callback methods' do
27
29
 
28
30
  describe '.before_each_perform' do
29
31
  subject { interactor_class.before_each_perform(*args) }
32
+
30
33
  let(:args) { :some_method }
31
34
 
32
35
  it 'is expected to receive #set_callback with :each_perform, :before, :some_method' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activeinteractor
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Allen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-16 00:00:00.000000000 Z
11
+ date: 2022-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -17,9 +17,9 @@ dependencies:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '4.2'
20
- - - "<"
20
+ - - "<="
21
21
  - !ruby/object:Gem::Version
22
- version: '7.0'
22
+ version: 6.1.4.4
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -27,9 +27,9 @@ dependencies:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
29
  version: '4.2'
30
- - - "<"
30
+ - - "<="
31
31
  - !ruby/object:Gem::Version
32
- version: '7.0'
32
+ version: 6.1.4.4
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: activesupport
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -37,9 +37,9 @@ dependencies:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
39
  version: '4.2'
40
- - - "<"
40
+ - - "<="
41
41
  - !ruby/object:Gem::Version
42
- version: '7.0'
42
+ version: 6.1.4.4
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
@@ -47,9 +47,9 @@ dependencies:
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
49
  version: '4.2'
50
- - - "<"
50
+ - - "<="
51
51
  - !ruby/object:Gem::Version
52
- version: '7.0'
52
+ version: 6.1.4.4
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: bundler
55
55
  requirement: !ruby/object:Gem::Requirement
@@ -167,6 +167,7 @@ files:
167
167
  - spec/active_interactor/organizer/base_spec.rb
168
168
  - spec/active_interactor/organizer/interactor_interface_collection_spec.rb
169
169
  - spec/active_interactor/organizer/interactor_interface_spec.rb
170
+ - spec/active_interactor/version_spec.rb
170
171
  - spec/active_interactor_spec.rb
171
172
  - spec/integration/a_basic_interactor_spec.rb
172
173
  - spec/integration/a_basic_organizer_spec.rb
@@ -188,7 +189,10 @@ files:
188
189
  - spec/integration/an_organizer_with_around_each_callbacks_spec.rb
189
190
  - spec/integration/an_organizer_with_before_each_callbacks_spec.rb
190
191
  - spec/integration/an_organizer_with_conditionally_organized_interactors_spec.rb
192
+ - spec/integration/an_organizer_with_failing_nested_organizer_spec.rb
193
+ - spec/integration/an_organizer_with_options_callbacks_spec.rb
191
194
  - spec/spec_helper.rb
195
+ - spec/support/coverage.rb
192
196
  - spec/support/helpers/factories.rb
193
197
  - spec/support/shared_examples/a_class_that_extends_active_interactor_models_example.rb
194
198
  - spec/support/shared_examples/a_class_with_interactor_callback_methods_example.rb
@@ -201,10 +205,10 @@ licenses:
201
205
  - MIT
202
206
  metadata:
203
207
  bug_tracker_uri: https://github.com/aaronmallen/activeinteractor/issues
204
- changelog_uri: https://github.com/aaronmallen/activeinteractor/blob/v1.0.5/CHANGELOG.md
205
- documentation_uri: https://www.rubydoc.info/gems/activeinteractor/1.0.5
208
+ changelog_uri: https://github.com/aaronmallen/activeinteractor/blob/v1.1.3/CHANGELOG.md
209
+ documentation_uri: https://www.rubydoc.info/gems/activeinteractor/1.1.3
206
210
  hompage_uri: https://github.com/aaronmallen/activeinteractor
207
- source_code_uri: https://github.com/aaronmallen/activeinteractor/tree/v1.0.5
211
+ source_code_uri: https://github.com/aaronmallen/activeinteractor/tree/v1.1.3
208
212
  wiki_uri: https://github.com/aaronmallen/activeinteractor/wiki
209
213
  post_install_message:
210
214
  rdoc_options: []
@@ -221,46 +225,50 @@ required_rubygems_version: !ruby/object:Gem::Requirement
221
225
  - !ruby/object:Gem::Version
222
226
  version: '0'
223
227
  requirements: []
224
- rubygems_version: 3.0.3
228
+ rubygems_version: 3.0.3.1
225
229
  signing_key:
226
230
  specification_version: 4
227
231
  summary: Ruby interactors with ActiveModel::Validations
228
232
  test_files:
233
+ - spec/support/coverage.rb
234
+ - spec/support/spec_helpers.rb
229
235
  - spec/support/shared_examples/a_class_that_extends_active_interactor_models_example.rb
230
236
  - spec/support/shared_examples/a_class_with_interactor_methods_example.rb
231
- - spec/support/shared_examples/a_class_with_interactor_context_methods_example.rb
232
237
  - spec/support/shared_examples/a_class_with_organizer_callback_methods_example.rb
238
+ - spec/support/shared_examples/a_class_with_interactor_context_methods_example.rb
233
239
  - spec/support/shared_examples/a_class_with_interactor_callback_methods_example.rb
234
- - spec/support/spec_helpers.rb
235
240
  - spec/support/helpers/factories.rb
236
- - spec/integration/an_interactor_with_validations_on_calling_spec.rb
241
+ - spec/active_interactor_spec.rb
242
+ - spec/integration/an_interactor_with_after_rollback_callbacks_spec.rb
243
+ - spec/integration/an_interactor_with_around_rollback_callbacks_spec.rb
237
244
  - spec/integration/a_basic_interactor_spec.rb
238
- - spec/integration/a_basic_organizer_spec.rb
239
- - spec/integration/an_organizer_with_conditionally_organized_interactors_spec.rb
240
245
  - spec/integration/an_interactor_with_validations_spec.rb
246
+ - spec/integration/an_interactor_with_after_context_validation_callbacks_spec.rb
247
+ - spec/integration/an_organizer_with_failing_nested_organizer_spec.rb
248
+ - spec/integration/a_basic_organizer_spec.rb
249
+ - spec/integration/an_organizer_with_options_callbacks_spec.rb
241
250
  - spec/integration/an_interactor_with_an_existing_context_class_spec.rb
242
- - spec/integration/an_organizer_with_around_each_callbacks_spec.rb
243
- - spec/integration/an_interactor_with_validations_on_called_spec.rb
244
- - spec/integration/an_interactor_with_around_perform_callbacks_spec.rb
245
- - spec/integration/an_interactor_with_before_rollback_callbacks_spec.rb
246
- - spec/integration/an_interactor_with_before_perform_callbacks_spec.rb
247
- - spec/integration/an_interactor_with_around_rollback_callbacks_spec.rb
251
+ - spec/integration/active_record_integration_spec.rb
252
+ - spec/integration/an_interactor_with_validations_on_calling_spec.rb
248
253
  - spec/integration/an_interactor_with_after_perform_callbacks_spec.rb
249
- - spec/integration/an_interactor_with_after_context_validation_callbacks_spec.rb
254
+ - spec/integration/an_organizer_performing_in_parallel_spec.rb
250
255
  - spec/integration/an_organizer_with_after_each_callbacks_spec.rb
251
- - spec/integration/active_record_integration_spec.rb
252
256
  - spec/integration/a_failing_interactor_spec.rb
257
+ - spec/integration/an_interactor_with_before_rollback_callbacks_spec.rb
258
+ - spec/integration/an_interactor_with_around_perform_callbacks_spec.rb
259
+ - spec/integration/an_interactor_with_before_perform_callbacks_spec.rb
260
+ - spec/integration/an_organizer_with_conditionally_organized_interactors_spec.rb
253
261
  - spec/integration/an_organizer_with_before_each_callbacks_spec.rb
254
- - spec/integration/an_organizer_performing_in_parallel_spec.rb
255
- - spec/integration/an_interactor_with_after_rollback_callbacks_spec.rb
256
- - spec/active_interactor/interactor/worker_spec.rb
257
- - spec/active_interactor/interactor/perform/options_spec.rb
258
- - spec/active_interactor/context/base_spec.rb
259
- - spec/active_interactor/config_spec.rb
262
+ - spec/integration/an_interactor_with_validations_on_called_spec.rb
263
+ - spec/integration/an_organizer_with_around_each_callbacks_spec.rb
264
+ - spec/spec_helper.rb
260
265
  - spec/active_interactor/error_spec.rb
261
- - spec/active_interactor/base_spec.rb
266
+ - spec/active_interactor/organizer/interactor_interface_spec.rb
262
267
  - spec/active_interactor/organizer/interactor_interface_collection_spec.rb
263
268
  - spec/active_interactor/organizer/base_spec.rb
264
- - spec/active_interactor/organizer/interactor_interface_spec.rb
265
- - spec/spec_helper.rb
266
- - spec/active_interactor_spec.rb
269
+ - spec/active_interactor/config_spec.rb
270
+ - spec/active_interactor/context/base_spec.rb
271
+ - spec/active_interactor/interactor/perform/options_spec.rb
272
+ - spec/active_interactor/interactor/worker_spec.rb
273
+ - spec/active_interactor/version_spec.rb
274
+ - spec/active_interactor/base_spec.rb