strum-service 0.1.0 → 0.1.1
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/Gemfile.lock +1 -1
- data/lib/strum/service.rb +15 -5
- data/lib/strum/service/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f205a707f1b5fe69e7c7939c806739a54550639cb60b99be68991387574999a6
|
4
|
+
data.tar.gz: 1027394e5b3f37086596e7835d8658f62e42a48439fdf4747b2426064f8eaf70
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 06632a862034f79eaca80df73925ff73e7e93c5d292942a11f735a2fa97d00422736b807ba9e6578b48a4b4613ce3e218dd243d33e493238178eb04ce4c19b01
|
7
|
+
data.tar.gz: 484ab260dd2cbc83889fc7fddc9f39ab197a52f882df3ea6ba71aea03834c889e6619b22f46821b3ea546d4e28475497d0af80800e0f634a2d26239bb61de7fe
|
data/Gemfile.lock
CHANGED
data/lib/strum/service.rb
CHANGED
@@ -26,7 +26,7 @@ module Strum
|
|
26
26
|
# Internal: Interactor class methods.
|
27
27
|
module ClassMethods
|
28
28
|
def call(main_input, **args, &block)
|
29
|
-
new(main_input, args).execute(&block)
|
29
|
+
new(main_input, **args).execute(&block)
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
@@ -35,9 +35,10 @@ module Strum
|
|
35
35
|
self.strum_errors = {}
|
36
36
|
self.service_handlers = { on: {}, success: {}, failure: {} }
|
37
37
|
self.outputs = {}
|
38
|
-
main_input.default_proc = proc { |h, k| h.key?(k.to_s) ? h[k.to_s] : nil }
|
39
38
|
self.inputs = args.merge(default: main_input)
|
40
39
|
self._inputs = inputs.dup.freeze
|
40
|
+
setup_default_proc
|
41
|
+
setup_input_default_proc
|
41
42
|
end
|
42
43
|
|
43
44
|
def execute(&block)
|
@@ -74,9 +75,10 @@ module Strum
|
|
74
75
|
end
|
75
76
|
|
76
77
|
def method_missing(method_name, *args, &_block)
|
77
|
-
|
78
|
-
|
79
|
-
|
78
|
+
(args.count.zero? &&
|
79
|
+
(input.is_a?(Hash) && input[method_name.to_sym]) ||
|
80
|
+
inputs[method_name.to_sym]) ||
|
81
|
+
super
|
80
82
|
end
|
81
83
|
|
82
84
|
def respond_to_missing?(method_name, include_private = false)
|
@@ -182,6 +184,14 @@ module Strum
|
|
182
184
|
|
183
185
|
private
|
184
186
|
|
187
|
+
def setup_default_proc
|
188
|
+
inputs.default_proc = proc { |h, k| h.key?(k.to_s) ? h[k.to_s] : nil }
|
189
|
+
end
|
190
|
+
|
191
|
+
def setup_input_default_proc
|
192
|
+
input.default_proc = proc { |h, k| h.key?(k.to_s) ? h[k.to_s] : nil } if input.is_a?(Hash)
|
193
|
+
end
|
194
|
+
|
185
195
|
def key_to_sym(key)
|
186
196
|
key.to_sym
|
187
197
|
rescue StandardError
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: strum-service
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Serhiy Nazarov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-05-
|
11
|
+
date: 2021-05-11 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Strum Service
|
14
14
|
email:
|