light-service 0.10.2 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +6 -0
  4. data/.travis.yml +12 -10
  5. data/Appraisals +4 -0
  6. data/README.md +61 -21
  7. data/RELEASES.md +16 -0
  8. data/gemfiles/activesupport_6.gemfile +8 -0
  9. data/lib/light-service.rb +1 -0
  10. data/lib/light-service/context.rb +6 -2
  11. data/lib/light-service/localization_adapter.rb +1 -1
  12. data/lib/light-service/organizer.rb +32 -0
  13. data/lib/light-service/organizer/with_reducer.rb +11 -6
  14. data/lib/light-service/organizer/with_reducer_factory.rb +11 -7
  15. data/lib/light-service/organizer/with_reducer_log_decorator.rb +5 -2
  16. data/lib/light-service/testing/context_factory.rb +19 -22
  17. data/lib/light-service/version.rb +1 -1
  18. data/light-service.gemspec +5 -4
  19. data/spec/acceptance/after_actions_spec.rb +13 -0
  20. data/spec/acceptance/custom_log_from_organizer_spec.rb +60 -0
  21. data/spec/acceptance/fail_spec.rb +42 -16
  22. data/spec/acceptance/organizer/add_aliases_spec.rb +28 -0
  23. data/spec/acceptance/organizer/add_to_context_spec.rb +30 -0
  24. data/spec/acceptance/organizer/execute_spec.rb +1 -1
  25. data/spec/acceptance/organizer/iterate_spec.rb +7 -0
  26. data/spec/acceptance/organizer/reduce_if_spec.rb +38 -0
  27. data/spec/acceptance/organizer/reduce_until_spec.rb +6 -0
  28. data/spec/acceptance/testing/context_factory_spec.rb +25 -4
  29. data/spec/action_spec.rb +8 -0
  30. data/spec/organizer_spec.rb +42 -14
  31. data/spec/sample/provides_free_shipping_action_spec.rb +1 -1
  32. data/spec/spec_helper.rb +2 -1
  33. data/spec/test_doubles.rb +186 -0
  34. data/spec/testing/context_factory/iterate_spec.rb +39 -0
  35. data/spec/testing/context_factory/reduce_if_spec.rb +40 -0
  36. data/spec/testing/context_factory/reduce_until_spec.rb +40 -0
  37. data/spec/testing/context_factory/with_callback_spec.rb +38 -0
  38. data/spec/testing/context_factory_spec.rb +28 -6
  39. metadata +40 -15
  40. data/gemfiles/activesupport_3.gemfile.lock +0 -76
  41. data/gemfiles/activesupport_4.gemfile.lock +0 -82
  42. data/gemfiles/activesupport_5.gemfile.lock +0 -82
@@ -2,13 +2,15 @@ require 'spec_helper'
2
2
  require 'test_doubles'
3
3
 
4
4
  describe 'ContextFactory - used with AdditionOrganizer' do
5
+ let(:organizer) { TestDoubles::AdditionOrganizer }
6
+
5
7
  context 'when called with the first action' do
6
8
  it 'does not alter the context' do
7
9
  ctx =
8
10
  LightService::Testing::ContextFactory
9
- .make_from(TestDoubles::AdditionOrganizer)
11
+ .make_from(organizer)
10
12
  .for(TestDoubles::AddsOneAction)
11
- .with(:number => 1)
13
+ .with(1)
12
14
 
13
15
  expect(ctx[:number]).to eq(1)
14
16
  end
@@ -18,9 +20,9 @@ describe 'ContextFactory - used with AdditionOrganizer' do
18
20
  it 'adds one to the number provided' do
19
21
  ctx =
20
22
  LightService::Testing::ContextFactory
21
- .make_from(TestDoubles::AdditionOrganizer)
23
+ .make_from(organizer)
22
24
  .for(TestDoubles::AddsTwoAction)
23
- .with(:number => 1)
25
+ .with(1)
24
26
 
25
27
  expect(ctx.number).to eq(2)
26
28
  end
@@ -30,11 +32,31 @@ describe 'ContextFactory - used with AdditionOrganizer' do
30
32
  it 'creates a context up-to the action defined' do
31
33
  ctx =
32
34
  LightService::Testing::ContextFactory
33
- .make_from(TestDoubles::AdditionOrganizer)
35
+ .make_from(organizer)
34
36
  .for(TestDoubles::AddsThreeAction)
35
- .with(:number => 1)
37
+ .with(1)
36
38
 
37
39
  expect(ctx.number).to eq(4)
38
40
  end
39
41
  end
42
+
43
+ context 'when there are already before_actions' do
44
+ it 'only appends before_actions' do
45
+ TestDoubles::AdditionOrganizer.before_actions = [
46
+ lambda do |ctx|
47
+ ctx[:number] += 1 \
48
+ if ctx.current_action == TestDoubles::AddsTwoAction
49
+ end
50
+ ]
51
+
52
+ context =
53
+ LightService::Testing::ContextFactory
54
+ .make_from(TestDoubles::AdditionOrganizer)
55
+ .for(TestDoubles::AddsThreeAction)
56
+ .with(4) # Context is a "glorified" hash
57
+
58
+ expect(context.number).to eq(8)
59
+ expect(context[:_before_actions].length).to eq(1)
60
+ end
61
+ end
40
62
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: light-service
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.2
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Attila Domokos
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-30 00:00:00.000000000 Z
11
+ date: 2020-06-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '3.0'
19
+ version: 3.0.0
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: '3.0'
26
+ version: 3.0.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,42 +44,56 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.16.1
47
+ version: '0.17'
48
48
  type: :development
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: 0.16.1
54
+ version: '0.17'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rubocop
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0.53'
61
+ version: 0.68.0
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.68.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop-performance
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 1.2.0
62
76
  type: :development
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
80
  - - "~>"
67
81
  - !ruby/object:Gem::Version
68
- version: '0.53'
82
+ version: 1.2.0
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: pry
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
87
  - - "~>"
74
88
  - !ruby/object:Gem::Version
75
- version: '0.10'
89
+ version: 0.12.2
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
94
  - - "~>"
81
95
  - !ruby/object:Gem::Version
82
- version: '0.10'
96
+ version: 0.12.2
83
97
  description: A service skeleton with an emphasis on simplicity
84
98
  email:
85
99
  - adomokos@gmail.com
@@ -99,11 +113,9 @@ files:
99
113
  - RELEASES.md
100
114
  - Rakefile
101
115
  - gemfiles/activesupport_3.gemfile
102
- - gemfiles/activesupport_3.gemfile.lock
103
116
  - gemfiles/activesupport_4.gemfile
104
- - gemfiles/activesupport_4.gemfile.lock
105
117
  - gemfiles/activesupport_5.gemfile
106
- - gemfiles/activesupport_5.gemfile.lock
118
+ - gemfiles/activesupport_6.gemfile
107
119
  - lib/light-service.rb
108
120
  - lib/light-service/action.rb
109
121
  - lib/light-service/configuration.rb
@@ -136,6 +148,7 @@ files:
136
148
  - spec/acceptance/after_actions_spec.rb
137
149
  - spec/acceptance/around_each_spec.rb
138
150
  - spec/acceptance/before_actions_spec.rb
151
+ - spec/acceptance/custom_log_from_organizer_spec.rb
139
152
  - spec/acceptance/fail_spec.rb
140
153
  - spec/acceptance/include_warning_spec.rb
141
154
  - spec/acceptance/log_from_organizer_spec.rb
@@ -148,6 +161,8 @@ files:
148
161
  - spec/acceptance/orchestrator/reduce_if_spec.rb
149
162
  - spec/acceptance/orchestrator/reduce_until_spec.rb
150
163
  - spec/acceptance/orchestrator/with_callback_spec.rb
164
+ - spec/acceptance/organizer/add_aliases_spec.rb
165
+ - spec/acceptance/organizer/add_to_context_spec.rb
151
166
  - spec/acceptance/organizer/around_each_with_reduce_if_spec.rb
152
167
  - spec/acceptance/organizer/context_failure_and_skipping_spec.rb
153
168
  - spec/acceptance/organizer/execute_spec.rb
@@ -179,6 +194,10 @@ files:
179
194
  - spec/spec_helper.rb
180
195
  - spec/support.rb
181
196
  - spec/test_doubles.rb
197
+ - spec/testing/context_factory/iterate_spec.rb
198
+ - spec/testing/context_factory/reduce_if_spec.rb
199
+ - spec/testing/context_factory/reduce_until_spec.rb
200
+ - spec/testing/context_factory/with_callback_spec.rb
182
201
  - spec/testing/context_factory_spec.rb
183
202
  homepage: https://github.com/adomokos/light-service
184
203
  licenses:
@@ -199,8 +218,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
199
218
  - !ruby/object:Gem::Version
200
219
  version: '0'
201
220
  requirements: []
202
- rubyforge_project:
203
- rubygems_version: 2.6.13
221
+ rubygems_version: 3.1.2
204
222
  signing_key:
205
223
  specification_version: 4
206
224
  summary: A service skeleton with an emphasis on simplicity
@@ -209,6 +227,7 @@ test_files:
209
227
  - spec/acceptance/after_actions_spec.rb
210
228
  - spec/acceptance/around_each_spec.rb
211
229
  - spec/acceptance/before_actions_spec.rb
230
+ - spec/acceptance/custom_log_from_organizer_spec.rb
212
231
  - spec/acceptance/fail_spec.rb
213
232
  - spec/acceptance/include_warning_spec.rb
214
233
  - spec/acceptance/log_from_organizer_spec.rb
@@ -221,6 +240,8 @@ test_files:
221
240
  - spec/acceptance/orchestrator/reduce_if_spec.rb
222
241
  - spec/acceptance/orchestrator/reduce_until_spec.rb
223
242
  - spec/acceptance/orchestrator/with_callback_spec.rb
243
+ - spec/acceptance/organizer/add_aliases_spec.rb
244
+ - spec/acceptance/organizer/add_to_context_spec.rb
224
245
  - spec/acceptance/organizer/around_each_with_reduce_if_spec.rb
225
246
  - spec/acceptance/organizer/context_failure_and_skipping_spec.rb
226
247
  - spec/acceptance/organizer/execute_spec.rb
@@ -252,4 +273,8 @@ test_files:
252
273
  - spec/spec_helper.rb
253
274
  - spec/support.rb
254
275
  - spec/test_doubles.rb
276
+ - spec/testing/context_factory/iterate_spec.rb
277
+ - spec/testing/context_factory/reduce_if_spec.rb
278
+ - spec/testing/context_factory/reduce_until_spec.rb
279
+ - spec/testing/context_factory/with_callback_spec.rb
255
280
  - spec/testing/context_factory_spec.rb
@@ -1,76 +0,0 @@
1
- PATH
2
- remote: ../
3
- specs:
4
- light-service (0.6.1)
5
- activesupport (>= 3.0)
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- activesupport (3.2.22)
11
- i18n (~> 0.6, >= 0.6.4)
12
- multi_json (~> 1.0)
13
- appraisal (2.0.2)
14
- bundler
15
- rake
16
- thor (>= 0.14.0)
17
- ast (2.3.0)
18
- coderay (1.1.1)
19
- diff-lcs (1.2.5)
20
- docile (1.1.5)
21
- i18n (0.7.0)
22
- json (2.0.2)
23
- method_source (0.8.2)
24
- multi_json (1.11.2)
25
- parser (2.3.1.2)
26
- ast (~> 2.2)
27
- powerpack (0.1.1)
28
- pry (0.10.4)
29
- coderay (~> 1.1.0)
30
- method_source (~> 0.8.1)
31
- slop (~> 3.4)
32
- rainbow (2.1.0)
33
- rake (10.4.2)
34
- rspec (3.3.0)
35
- rspec-core (~> 3.3.0)
36
- rspec-expectations (~> 3.3.0)
37
- rspec-mocks (~> 3.3.0)
38
- rspec-core (3.3.2)
39
- rspec-support (~> 3.3.0)
40
- rspec-expectations (3.3.1)
41
- diff-lcs (>= 1.2.0, < 2.0)
42
- rspec-support (~> 3.3.0)
43
- rspec-mocks (3.3.2)
44
- diff-lcs (>= 1.2.0, < 2.0)
45
- rspec-support (~> 3.3.0)
46
- rspec-support (3.3.0)
47
- rubocop (0.42.0)
48
- parser (>= 2.3.1.1, < 3.0)
49
- powerpack (~> 0.1)
50
- rainbow (>= 1.99.1, < 3.0)
51
- ruby-progressbar (~> 1.7)
52
- unicode-display_width (~> 1.0, >= 1.0.1)
53
- ruby-progressbar (1.8.1)
54
- simplecov (0.12.0)
55
- docile (~> 1.1.0)
56
- json (>= 1.8, < 3)
57
- simplecov-html (~> 0.10.0)
58
- simplecov-html (0.10.0)
59
- slop (3.6.0)
60
- thor (0.19.1)
61
- unicode-display_width (1.1.1)
62
-
63
- PLATFORMS
64
- ruby
65
-
66
- DEPENDENCIES
67
- activesupport (~> 3.0)
68
- appraisal (~> 2.0)
69
- light-service!
70
- pry (~> 0.10)
71
- rspec (~> 3.0)
72
- rubocop (~> 0.36)
73
- simplecov (~> 0.11)
74
-
75
- BUNDLED WITH
76
- 1.12.5
@@ -1,82 +0,0 @@
1
- PATH
2
- remote: ../
3
- specs:
4
- light-service (0.6.1)
5
- activesupport (>= 3.0)
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- activesupport (4.2.3)
11
- i18n (~> 0.7)
12
- json (~> 1.7, >= 1.7.7)
13
- minitest (~> 5.1)
14
- thread_safe (~> 0.3, >= 0.3.4)
15
- tzinfo (~> 1.1)
16
- appraisal (2.0.2)
17
- bundler
18
- rake
19
- thor (>= 0.14.0)
20
- ast (2.3.0)
21
- coderay (1.1.1)
22
- diff-lcs (1.2.5)
23
- docile (1.1.5)
24
- i18n (0.7.0)
25
- json (1.8.3)
26
- method_source (0.8.2)
27
- minitest (5.7.0)
28
- parser (2.3.1.2)
29
- ast (~> 2.2)
30
- powerpack (0.1.1)
31
- pry (0.10.4)
32
- coderay (~> 1.1.0)
33
- method_source (~> 0.8.1)
34
- slop (~> 3.4)
35
- rainbow (2.1.0)
36
- rake (10.4.2)
37
- rspec (3.3.0)
38
- rspec-core (~> 3.3.0)
39
- rspec-expectations (~> 3.3.0)
40
- rspec-mocks (~> 3.3.0)
41
- rspec-core (3.3.2)
42
- rspec-support (~> 3.3.0)
43
- rspec-expectations (3.3.1)
44
- diff-lcs (>= 1.2.0, < 2.0)
45
- rspec-support (~> 3.3.0)
46
- rspec-mocks (3.3.2)
47
- diff-lcs (>= 1.2.0, < 2.0)
48
- rspec-support (~> 3.3.0)
49
- rspec-support (3.3.0)
50
- rubocop (0.42.0)
51
- parser (>= 2.3.1.1, < 3.0)
52
- powerpack (~> 0.1)
53
- rainbow (>= 1.99.1, < 3.0)
54
- ruby-progressbar (~> 1.7)
55
- unicode-display_width (~> 1.0, >= 1.0.1)
56
- ruby-progressbar (1.8.1)
57
- simplecov (0.12.0)
58
- docile (~> 1.1.0)
59
- json (>= 1.8, < 3)
60
- simplecov-html (~> 0.10.0)
61
- simplecov-html (0.10.0)
62
- slop (3.6.0)
63
- thor (0.19.1)
64
- thread_safe (0.3.5)
65
- tzinfo (1.2.2)
66
- thread_safe (~> 0.1)
67
- unicode-display_width (1.1.1)
68
-
69
- PLATFORMS
70
- ruby
71
-
72
- DEPENDENCIES
73
- activesupport (~> 4.0)
74
- appraisal (~> 2.0)
75
- light-service!
76
- pry (~> 0.10)
77
- rspec (~> 3.0)
78
- rubocop (~> 0.36)
79
- simplecov (~> 0.11)
80
-
81
- BUNDLED WITH
82
- 1.12.5
@@ -1,82 +0,0 @@
1
- PATH
2
- remote: ../
3
- specs:
4
- light-service (0.6.1)
5
- activesupport (>= 3.0)
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- activesupport (5.0.0.1)
11
- concurrent-ruby (~> 1.0, >= 1.0.2)
12
- i18n (~> 0.7)
13
- minitest (~> 5.1)
14
- tzinfo (~> 1.1)
15
- appraisal (2.1.0)
16
- bundler
17
- rake
18
- thor (>= 0.14.0)
19
- ast (2.3.0)
20
- coderay (1.1.1)
21
- concurrent-ruby (1.0.2)
22
- diff-lcs (1.2.5)
23
- docile (1.1.5)
24
- i18n (0.7.0)
25
- json (2.0.2)
26
- method_source (0.8.2)
27
- minitest (5.9.0)
28
- parser (2.3.1.2)
29
- ast (~> 2.2)
30
- powerpack (0.1.1)
31
- pry (0.10.4)
32
- coderay (~> 1.1.0)
33
- method_source (~> 0.8.1)
34
- slop (~> 3.4)
35
- rainbow (2.1.0)
36
- rake (11.2.2)
37
- rspec (3.5.0)
38
- rspec-core (~> 3.5.0)
39
- rspec-expectations (~> 3.5.0)
40
- rspec-mocks (~> 3.5.0)
41
- rspec-core (3.5.2)
42
- rspec-support (~> 3.5.0)
43
- rspec-expectations (3.5.0)
44
- diff-lcs (>= 1.2.0, < 2.0)
45
- rspec-support (~> 3.5.0)
46
- rspec-mocks (3.5.0)
47
- diff-lcs (>= 1.2.0, < 2.0)
48
- rspec-support (~> 3.5.0)
49
- rspec-support (3.5.0)
50
- rubocop (0.42.0)
51
- parser (>= 2.3.1.1, < 3.0)
52
- powerpack (~> 0.1)
53
- rainbow (>= 1.99.1, < 3.0)
54
- ruby-progressbar (~> 1.7)
55
- unicode-display_width (~> 1.0, >= 1.0.1)
56
- ruby-progressbar (1.8.1)
57
- simplecov (0.12.0)
58
- docile (~> 1.1.0)
59
- json (>= 1.8, < 3)
60
- simplecov-html (~> 0.10.0)
61
- simplecov-html (0.10.0)
62
- slop (3.6.0)
63
- thor (0.19.1)
64
- thread_safe (0.3.5)
65
- tzinfo (1.2.2)
66
- thread_safe (~> 0.1)
67
- unicode-display_width (1.1.1)
68
-
69
- PLATFORMS
70
- ruby
71
-
72
- DEPENDENCIES
73
- activesupport (~> 5.0)
74
- appraisal (~> 2.0)
75
- light-service!
76
- pry (~> 0.10)
77
- rspec (~> 3.0)
78
- rubocop (~> 0.36)
79
- simplecov (~> 0.11)
80
-
81
- BUNDLED WITH
82
- 1.12.5