strum 0.0.27 → 0.0.28

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 827feb2a58c035705f5d697e68a7a69ace30107728150f0204699e6bcced5320
4
- data.tar.gz: e63c8d197628f51451b1518f4489173400971e001a7ad552d10f709feed2c372
3
+ metadata.gz: 15db517a81bd94c5d2b0e256715dcded125a9f95160adf4c057e0e17f8329919
4
+ data.tar.gz: fb713feb05e218bc6db956e9dce30b5c0f30297ebecc8f5d36cabdedb7c25384
5
5
  SHA512:
6
- metadata.gz: 540e329e35c76b8a5fc559f098488610efbeacf59ee632ac9fec7607d879ccf4e9b2dd3fcce915351160f5d6fe06121ed863ed8de8000764c4c343ea87c4a340
7
- data.tar.gz: '08138e7524bb5e08793bc6e6544ad24990bb3fb89a412b0eb20a3b5a8e23d0b763d511f4c0a74439608a6f22c2e7873a8b98a54969428d61655088ba845a815c'
6
+ metadata.gz: 45a8552d856ef10c54792d38bc8b5ab690b2990dad97837422af9c19170e36394246b5b5706a5cfc7e92421da193f763c943e066ca924d0416867cf4f74a541b
7
+ data.tar.gz: 7c64ba84549dce4473bd351be5ab49384156a6fa39c0df4f5c9ba8a58e72b00da99c02e3cde1fbdd54fa5d8ad377bd61bbecf2afda3ac1af97bc225ce80a92ac
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- strum (0.0.26)
4
+ strum (0.0.28)
5
5
  dry-inflector (~> 0.2.0)
6
6
  dry-matcher (~> 0.8.2)
7
7
  thor (~> 0.20)
data/lib/strum/service.rb CHANGED
@@ -122,23 +122,28 @@ module Strum
122
122
  end
123
123
 
124
124
  def valid_result(&block)
125
- result_outputs = if !output_clear? && payload.is_a?(Hash)
126
- outputs.each_with_object({}) do |(k, v), memo|
127
- memo[k] = if v.is_a?(Hash)
128
- payload.merge(v)
129
- else
130
- v
131
- end
132
- end
133
- else
134
- outputs
135
- end
125
+ result_outputs = rich_outputs
136
126
  return result_outputs[:default] || result_outputs unless block_given?
137
127
  return StrumMatcher.call([true, result_outputs[:default]], &block) if result_outputs[:default]
138
128
 
139
129
  StrumMatcher.call([true, *result_outputs.keys, result_outputs], &block)
140
130
  end
141
131
 
132
+ def rich_outputs
133
+ return outputs if output_clear?
134
+ return outputs if payload.nil?
135
+ return outputs unless payload.is_a?(Hash)
136
+ return payload unless outputs.count.positive?
137
+
138
+ outputs.each_with_object({}) do |(k, v), memo|
139
+ memo[k] = if v.is_a?(Hash)
140
+ payload.merge(v)
141
+ else
142
+ v
143
+ end
144
+ end
145
+ end
146
+
142
147
  def invalid_result(&block)
143
148
  return nil unless block_given?
144
149
 
data/lib/strum/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Strum
4
- VERSION = "0.0.27"
4
+ VERSION = "0.0.28"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: strum
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.27
4
+ version: 0.0.28
5
5
  platform: ruby
6
6
  authors:
7
7
  - Serhiy Nazarov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-13 00:00:00.000000000 Z
11
+ date: 2020-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-inflector