strum-service 0.0.1 → 0.0.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 23dfc7b648bc76174a823745ed28d035fa85de556dff129309c9f55e83066a81
4
- data.tar.gz: 6561b68e156b33c3d2d4d391e6a838586c8036dd32bce7bd77ba702fb54de56a
3
+ metadata.gz: '0710157868640a5904ef6996d2e13f1b91cdcca1025b6a0b95b9230853ba3609'
4
+ data.tar.gz: 5d8a21d6d8fb7751e780881cad8ba3f7a02556868b50a82e99455f41b98166c9
5
5
  SHA512:
6
- metadata.gz: 02e2d61a36385cf3e76fcccbaba442681505461c082fb7b4d6821afad7a69815badbef25f4bafd6aba45f47ccc98260b6caf82037b12e3d8194286bd0f741f47
7
- data.tar.gz: d1667dfc277014273ca400abd4b1834b83c75c91d4423862ec457aa8db269ea0b4525cef9f6bc71d66b843cd60e013f6d9fdd40022c563c2f741010052ca9bb1
6
+ metadata.gz: 8af13f2c86dbea7ba37f27a32e1076d1a14f0122682dc8e5e27f1f4ead683545a2acc03fc1b4a071c5942fdadf1b8f2967a6f8f246f75f55432fca051182396a
7
+ data.tar.gz: aae52d447451bdab8b023f529802af7eee7d95ee5eb6191a4e330782a4838ea0d79cdd3c04c54affad0136e0a2cc0fc8442eafc4416f6d57b221558bdab079e3
data/.gitlab-ci.yml ADDED
@@ -0,0 +1,3 @@
1
+ include:
2
+ - project: 'strum-rb/ci-cd'
3
+ file: '/strum-rb/.gitlab-ci.yml'
data/.rubocop.yml CHANGED
@@ -12,18 +12,15 @@ Layout/IndentationConsistency:
12
12
  Enabled: true
13
13
  EnforcedStyle: indented_internal_methods
14
14
 
15
- # Two spaces, no tabs (for indentation).
16
- Layout/IndentationWidth:
17
- Enabled: true
18
-
19
15
  # Check quotes usage according to lint rule below.
20
16
  Style/StringLiterals:
21
17
  Enabled: true
22
18
  EnforcedStyle: double_quotes
23
19
 
24
- Metrics/LineLength:
25
- Max: 120
20
+ Layout/LineLength:
26
21
  IgnoredPatterns: ['\A#']
27
22
 
28
23
  Metrics/BlockLength:
29
- ExcludedMethods: ['describe', 'context']
24
+ IgnoredMethods:
25
+ - describe
26
+ - context
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- strum-service (0.0.1)
4
+ strum-service (0.0.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/lib/strum/service.rb CHANGED
@@ -3,7 +3,8 @@
3
3
  require "strum/service/version"
4
4
 
5
5
  module Strum
6
- module Service
6
+ # Strum service
7
+ module Service # rubocop:disable Metrics/ModuleLength
7
8
  class Failure < StandardError; end
8
9
 
9
10
  def self.included(base)
@@ -14,17 +15,17 @@ module Strum
14
15
 
15
16
  # Internal: Interactor class methods.
16
17
  module ClassMethods
17
- def call(_input, **args, &block)
18
- new(_input, args).execute(&block)
18
+ def call(main_input, **args, &block)
19
+ new(main_input, args).execute(&block)
19
20
  end
20
21
  end
21
22
 
22
23
  # Instance methods
23
- def initialize(_input, **args)
24
+ def initialize(main_input, **args)
24
25
  self.strum_errors = {}
25
26
  self.service_handlers = { on: {}, success: {}, failure: {} }
26
27
  self.outputs = {}
27
- self.inputs = args.merge(default: _input)
28
+ self.inputs = args.merge(default: main_input)
28
29
  self._inputs = inputs.dup.freeze
29
30
  end
30
31
 
@@ -105,16 +106,21 @@ module Strum
105
106
  end
106
107
  # rubocop: enable Style/OptionalArguments
107
108
 
109
+ # def add_error(field, value)
110
+ # if field.is_a?(Array)
111
+ # field.each do |key|
112
+ # value.is_a?(Array) ? value.each { |v| add_error(key, v) } : add_error(key, value)
113
+ # add_error(key, value.is_a?(Array) ? value.first : value)
114
+ # end
115
+ # else
116
+ # strum_errors[field] ||= []
117
+ # strum_errors[field] = strum_errors[field] + Array(value)
118
+ # end
119
+ # end
120
+
108
121
  def add_error(field, value)
109
- if field.is_a?(Array)
110
- field.each do |key|
111
- value.is_a?(Array) ? value.each { |v| add_error(key, v) } : add_error(key, value)
112
- add_error(key, value.is_a?(Array) ? value.first : value)
113
- end
114
- else
115
- strum_errors[field] ||= []
116
- strum_errors[field] = strum_errors[field] + Array(value)
117
- end
122
+ strum_errors[field] ||= []
123
+ strum_errors[field] = strum_errors[field] + Array(value)
118
124
  end
119
125
 
120
126
  def add_errors(errors)
@@ -146,16 +152,14 @@ module Strum
146
152
  end
147
153
 
148
154
  def sliced_list(*keys)
149
- if input.is_a?(Array)
150
- self.input = input.map do |item|
151
- if item.is_a?(Hash)
152
- item = item.slice(*keys)
153
- else
154
- add_error(:input_subitem, :must_be_hash)
155
- end
155
+ add_error(:input, :must_be_array) && retuen unless input.is_a?(Array)
156
+
157
+ self.input = input.map do |item|
158
+ if item.is_a?(Hash)
159
+ item.slice(*keys)
160
+ else
161
+ add_error(:input_subitem, :must_be_hash)
156
162
  end
157
- else
158
- add_error(:input, :must_be_array)
159
163
  end
160
164
  end
161
165
 
@@ -171,10 +175,20 @@ module Strum
171
175
  key
172
176
  end
173
177
 
178
+ def handler_key
179
+ ((outputs.keys << nil) & service_handlers[:success].keys).first
180
+ end
181
+
182
+ def handler
183
+ service_handlers[:success][handler_key]
184
+ end
185
+
174
186
  def valid_result
175
- handler_key = ((outputs.keys << nil) & service_handlers[:success].keys).first
176
- handler = service_handlers[:success][handler_key]
177
- handler.is_a?(Proc) ? handler.call(outputs[handler_key] || outputs[:default]) : outputs[handler_key] || outputs[:default]
187
+ if handler.is_a?(Proc)
188
+ handler.call(outputs[handler_key] || outputs[:default])
189
+ else
190
+ outputs[handler_key] || outputs[:default]
191
+ end
178
192
  end
179
193
 
180
194
  def invalid_result
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Strum
4
4
  module Service
5
- VERSION = "0.0.1"
5
+ VERSION = "0.0.2"
6
6
  end
7
7
  end
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.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Serhiy Nazarov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-12-03 00:00:00.000000000 Z
11
+ date: 2021-02-05 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Strum Service
14
14
  email:
@@ -18,6 +18,7 @@ extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
20
  - ".gitignore"
21
+ - ".gitlab-ci.yml"
21
22
  - ".rspec"
22
23
  - ".rubocop.yml"
23
24
  - ".travis.yml"