simple_service 1.3.91 → 1.4.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 +4 -4
- data/lib/simple_service/context.rb +5 -0
- data/lib/simple_service/organizer.rb +2 -2
- data/lib/simple_service/service_base.rb +12 -1
- data/lib/simple_service/version.rb +1 -1
- data/simple_service.gemspec +4 -4
- data/spec/lib/organizer_spec.rb +35 -0
- metadata +12 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 62bc0c7fd840718bc870a5b2a62d02c72def3b6e
|
4
|
+
data.tar.gz: 30cfd20fdfc0e43da4cde0d96b7d8a0675a744b8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 819f9b02b8f576f378201e44f034495225e10aaf4cde5df67864ecfc25e0422fce2f32a5e05b6643a13531d23b94719e29b4b50e9e71fada2c23b427c8d25fd7
|
7
|
+
data.tar.gz: 2845e7c5d198fbaba131778af47b63a8c077c0e49b558cff40f1b574189a32cd74c26af0cd2eae36041218dbb4fdbe32fcb8f1758113e4d6e043b53de806f993
|
@@ -28,8 +28,8 @@ module SimpleService
|
|
28
28
|
_commands.each do |command|
|
29
29
|
|
30
30
|
# halt further command calls if success has been set to false
|
31
|
-
# in a previously called command
|
32
|
-
break if context[:success] == false
|
31
|
+
# in a previously called command or halt is set
|
32
|
+
break if context[:success] == false || context[:halt] == true
|
33
33
|
|
34
34
|
# if command class defines "expects" then only feed the command
|
35
35
|
# those keys, otherwise just give it the entire context
|
@@ -44,6 +44,10 @@ module SimpleService
|
|
44
44
|
!successful?
|
45
45
|
end
|
46
46
|
|
47
|
+
def halted?
|
48
|
+
context.has_key?(:halt) || context[:halt] == true
|
49
|
+
end
|
50
|
+
|
47
51
|
def successful?
|
48
52
|
!context.has_key?(:success) || context[:success] == true
|
49
53
|
end
|
@@ -89,7 +93,7 @@ module SimpleService
|
|
89
93
|
end
|
90
94
|
|
91
95
|
def find_specified_return_keys
|
92
|
-
if returns.nil? || returns.empty? || failed?
|
96
|
+
if returns.nil? || returns.empty? || failed? || halted?
|
93
97
|
context
|
94
98
|
else
|
95
99
|
returns.inject({}) do |to_return, return_param|
|
@@ -131,9 +135,16 @@ module SimpleService
|
|
131
135
|
|
132
136
|
def failure!(message = nil)
|
133
137
|
context[:success] = false
|
138
|
+
context[:halt] = true
|
134
139
|
context[:message] = message || 'There was a problem'
|
135
140
|
end
|
136
141
|
|
142
|
+
def success!(message = nil)
|
143
|
+
context[:success] = true
|
144
|
+
context[:halt] = true
|
145
|
+
context[:message] = message || 'Success! Returned early'
|
146
|
+
end
|
147
|
+
|
137
148
|
def define_getters_and_setters
|
138
149
|
all_context_keys.each do |key|
|
139
150
|
self.class.class_eval do
|
data/simple_service.gemspec
CHANGED
@@ -18,10 +18,10 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_development_dependency 'bundler', '~> 1.3'
|
22
|
-
spec.add_development_dependency 'rake', '~>
|
23
|
-
spec.add_development_dependency 'rspec', '~> 3.
|
24
|
-
spec.add_development_dependency 'pry', '~> 0.10.
|
21
|
+
spec.add_development_dependency 'bundler', '~> 1.15.3'
|
22
|
+
spec.add_development_dependency 'rake', '~> 12.0.0'
|
23
|
+
spec.add_development_dependency 'rspec', '~> 3.6.0'
|
24
|
+
spec.add_development_dependency 'pry', '~> 0.10.4'
|
25
25
|
spec.add_development_dependency 'simplecov'
|
26
26
|
spec.add_development_dependency 'codeclimate-test-reporter'
|
27
27
|
end
|
data/spec/lib/organizer_spec.rb
CHANGED
@@ -158,6 +158,41 @@ describe SimpleService::Organizer do
|
|
158
158
|
|
159
159
|
end
|
160
160
|
|
161
|
+
context 'service with command that calls success!' do
|
162
|
+
|
163
|
+
class SuccessAndReturnMessage < SimpleService::Command
|
164
|
+
returns :something
|
165
|
+
def call
|
166
|
+
context[:something] = 'yes!'
|
167
|
+
success!('success called prior to all commands being run')
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
171
|
+
class SuccessCalledThisShouldNotRun < SimpleService::Command
|
172
|
+
def call
|
173
|
+
raise 'should not have gotten here'
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
177
|
+
class SucceedAndReturn < SimpleService::Organizer
|
178
|
+
returns :something
|
179
|
+
commands SuccessAndReturnMessage, SuccessCalledThisShouldNotRun
|
180
|
+
end
|
181
|
+
|
182
|
+
it 'returns a message' do
|
183
|
+
expect(SucceedAndReturn.call[:message]).to eql(
|
184
|
+
'success called prior to all commands being run')
|
185
|
+
end
|
186
|
+
|
187
|
+
it 'returns success as true' do
|
188
|
+
expect(SucceedAndReturn.call[:success]).to eql(true)
|
189
|
+
end
|
190
|
+
|
191
|
+
it 'does not raise an exception' do
|
192
|
+
expect { SucceedAndReturn.call }.to_not raise_error
|
193
|
+
end
|
194
|
+
end
|
195
|
+
|
161
196
|
context 'when arguments are not a hash' do
|
162
197
|
|
163
198
|
class DoNothingCommand < SimpleService::Command
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_service
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jarrod Spillers
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-08-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,56 +16,56 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 1.15.3
|
20
20
|
type: :development
|
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:
|
26
|
+
version: 1.15.3
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 12.0.0
|
34
34
|
type: :development
|
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:
|
40
|
+
version: 12.0.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 3.
|
47
|
+
version: 3.6.0
|
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: 3.
|
54
|
+
version: 3.6.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: pry
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.10.
|
61
|
+
version: 0.10.4
|
62
62
|
type: :development
|
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.10.
|
68
|
+
version: 0.10.4
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: simplecov
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -154,7 +154,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
154
154
|
version: '0'
|
155
155
|
requirements: []
|
156
156
|
rubyforge_project:
|
157
|
-
rubygems_version: 2.
|
157
|
+
rubygems_version: 2.6.11
|
158
158
|
signing_key:
|
159
159
|
specification_version: 4
|
160
160
|
summary: A minimal service object composer with support for individual commands and
|
@@ -168,3 +168,4 @@ test_files:
|
|
168
168
|
- spec/lib/organizer_spec.rb
|
169
169
|
- spec/simple_service_spec.rb
|
170
170
|
- spec/spec_helper.rb
|
171
|
+
has_rdoc:
|