the_help 3.2.0 → 3.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/CHANGELOG.md +17 -0
- data/Gemfile.lock +26 -21
- data/lib/the_help/service.rb +22 -4
- data/lib/the_help/version.rb +1 -1
- data/the_help.gemspec +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8430824b2d2a5a8b4fdf1925b234a81c9377f5916e352c967f15b084ba546386
|
4
|
+
data.tar.gz: 75a481c9cd39173aafd183ba79ee217bbce2474bcd5b1c3a7daee851cce813ba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9398f9ade624bf4f8ff0e843c69226ea652b39f7e713722f2559bb77daaf181593a99e0f0d28f12bfcd7e0d7cf9198a8ae69383e325a03328b81ae2992a0b49f
|
7
|
+
data.tar.gz: b050a8e67894e4fd5572c56cd76e0faf29269a847662ac06ca50da8d69ba1404b7793e84fe431a4fa91948edd389478d1349cde32eea6d933fd802b27918d91a
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
# TheHelp Changelog #
|
2
|
+
|
3
|
+
## 3.4.0 ##
|
4
|
+
|
5
|
+
* added `TheHelp::Service#delegate_to_service` method that can be used inside a service definition
|
6
|
+
in order to have the current service delegate to another service and use the other service's
|
7
|
+
result as its own.
|
8
|
+
|
9
|
+
## 3.3.0 ##
|
10
|
+
|
11
|
+
* Calling `#stop!` with no arguments in a service definition will now check that a result was set
|
12
|
+
with either `#result.success` or `#result.error` and raise `TheHelp::NoResultError` if no result
|
13
|
+
was set.
|
14
|
+
|
15
|
+
* You can now call `#stop!` with both a `type:` and `value:` argument. `type:` can be either
|
16
|
+
`:error` (the default) or `:success`, and `value:` can be any object. Calling in this manner
|
17
|
+
will set the service result to the specified type and value.
|
data/Gemfile.lock
CHANGED
@@ -1,50 +1,55 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
the_help (3.
|
4
|
+
the_help (3.4.0)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
|
-
ast (2.4.
|
10
|
-
byebug (11.
|
11
|
-
diff-lcs (1.
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
ast (~> 2.4.0)
|
9
|
+
ast (2.4.1)
|
10
|
+
byebug (11.1.3)
|
11
|
+
diff-lcs (1.4.4)
|
12
|
+
parallel (1.19.2)
|
13
|
+
parser (2.7.2.0)
|
14
|
+
ast (~> 2.4.1)
|
16
15
|
rainbow (3.0.0)
|
17
|
-
rake (
|
16
|
+
rake (13.0.1)
|
17
|
+
regexp_parser (1.8.2)
|
18
|
+
rexml (3.2.4)
|
18
19
|
rspec (3.9.0)
|
19
20
|
rspec-core (~> 3.9.0)
|
20
21
|
rspec-expectations (~> 3.9.0)
|
21
22
|
rspec-mocks (~> 3.9.0)
|
22
|
-
rspec-core (3.9.
|
23
|
-
rspec-support (~> 3.9.
|
24
|
-
rspec-expectations (3.9.
|
23
|
+
rspec-core (3.9.3)
|
24
|
+
rspec-support (~> 3.9.3)
|
25
|
+
rspec-expectations (3.9.3)
|
25
26
|
diff-lcs (>= 1.2.0, < 2.0)
|
26
27
|
rspec-support (~> 3.9.0)
|
27
|
-
rspec-mocks (3.9.
|
28
|
+
rspec-mocks (3.9.1)
|
28
29
|
diff-lcs (>= 1.2.0, < 2.0)
|
29
30
|
rspec-support (~> 3.9.0)
|
30
|
-
rspec-support (3.9.
|
31
|
-
rubocop (0.
|
32
|
-
jaro_winkler (~> 1.5.1)
|
31
|
+
rspec-support (3.9.4)
|
32
|
+
rubocop (0.93.1)
|
33
33
|
parallel (~> 1.10)
|
34
|
-
parser (>= 2.
|
34
|
+
parser (>= 2.7.1.5)
|
35
35
|
rainbow (>= 2.2.2, < 4.0)
|
36
|
+
regexp_parser (>= 1.8)
|
37
|
+
rexml
|
38
|
+
rubocop-ast (>= 0.6.0)
|
36
39
|
ruby-progressbar (~> 1.7)
|
37
|
-
unicode-display_width (>= 1.4.0, <
|
40
|
+
unicode-display_width (>= 1.4.0, < 2.0)
|
41
|
+
rubocop-ast (1.1.0)
|
42
|
+
parser (>= 2.7.1.5)
|
38
43
|
ruby-progressbar (1.10.1)
|
39
|
-
unicode-display_width (1.
|
40
|
-
yard (0.9.
|
44
|
+
unicode-display_width (1.7.0)
|
45
|
+
yard (0.9.25)
|
41
46
|
|
42
47
|
PLATFORMS
|
43
48
|
ruby
|
44
49
|
|
45
50
|
DEPENDENCIES
|
46
51
|
byebug
|
47
|
-
rake (~>
|
52
|
+
rake (~> 13.0)
|
48
53
|
rspec (~> 3.0)
|
49
54
|
rubocop (~> 0.50)
|
50
55
|
the_help!
|
data/lib/the_help/service.rb
CHANGED
@@ -263,16 +263,21 @@ module TheHelp
|
|
263
263
|
# @return [TheHelp::Service::Result]
|
264
264
|
def call
|
265
265
|
validate_service_definition
|
266
|
+
|
266
267
|
catch(:stop) do
|
267
268
|
authorize
|
268
269
|
log_service_call
|
269
270
|
main
|
270
271
|
check_result!
|
271
|
-
self.block_result = yield result if block_given?
|
272
272
|
end
|
273
|
+
|
274
|
+
self.block_result = yield result if block_given?
|
275
|
+
|
273
276
|
throw :stop if stop_caller
|
277
|
+
|
274
278
|
return block_result if block_given?
|
275
|
-
|
279
|
+
|
280
|
+
result
|
276
281
|
end
|
277
282
|
|
278
283
|
private
|
@@ -315,11 +320,20 @@ module TheHelp
|
|
315
320
|
return if authorized?
|
316
321
|
logger.warn("Unauthorized attempt to access #{self.class.name}/#{__id__} " \
|
317
322
|
"as #{context.inspect}")
|
318
|
-
run_callback(not_authorized, service: self.class, context: context)
|
323
|
+
result.error run_callback(not_authorized, service: self.class, context: context)
|
319
324
|
stop!
|
320
325
|
end
|
321
326
|
|
322
|
-
def stop!
|
327
|
+
def stop!(type: :error, **opts)
|
328
|
+
value = opts.fetch(:value) { |key|
|
329
|
+
check_result!
|
330
|
+
throw :stop
|
331
|
+
}
|
332
|
+
if type == :success
|
333
|
+
result.success value
|
334
|
+
else
|
335
|
+
result.error value
|
336
|
+
end
|
323
337
|
throw :stop
|
324
338
|
end
|
325
339
|
|
@@ -335,5 +349,9 @@ module TheHelp
|
|
335
349
|
end
|
336
350
|
self.stop_caller ||= !continue
|
337
351
|
end
|
352
|
+
|
353
|
+
def delegate_to_service(*args)
|
354
|
+
call_service(*args) { |result| @result = result }
|
355
|
+
end
|
338
356
|
end
|
339
357
|
end
|
data/lib/the_help/version.rb
CHANGED
data/the_help.gemspec
CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.require_paths = ['lib']
|
24
24
|
|
25
25
|
spec.add_development_dependency 'byebug'
|
26
|
-
spec.add_development_dependency 'rake', '~>
|
26
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
27
27
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
28
28
|
spec.add_development_dependency 'rubocop', '~> 0.50'
|
29
29
|
spec.add_development_dependency 'yard'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: the_help
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Wilger
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-11-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: byebug
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '13.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: '13.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -93,6 +93,7 @@ files:
|
|
93
93
|
- ".rubocop.yml"
|
94
94
|
- ".tool-versions"
|
95
95
|
- ".travis.yml"
|
96
|
+
- CHANGELOG.md
|
96
97
|
- CODE_OF_CONDUCT.md
|
97
98
|
- Gemfile
|
98
99
|
- Gemfile.lock
|