zx-result 0.0.1 → 0.0.3
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/README.md +38 -0
- data/lib/zx/result.rb +14 -2
- data/lib/zx/version.rb +4 -2
- 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: da3bb02e36f9e8c958921f2ff44a76313d06b4f063ca7f9eaee5edd3eccf683d
|
4
|
+
data.tar.gz: 635a4e33852a269d3f03b8f80595bacec8a1b7cb8ac1c471bb11ed5443595442
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f8cf43b9abb8772b8436d297997321a677b7bee04ca3688ca1db4fa27dcfec79fa013bd176fc72864653f198b7d5e30c1b00265f291126ac2b97e72c4c7ec24
|
7
|
+
data.tar.gz: f090b620cac830f80e8037ade19f1dbcb83d629c87ee693b6618854de795a9ffb4297fcedd0bff4e11d6fe9268357554b54d0f70479a60d71cfc7e4a3fe2187a
|
data/README.md
CHANGED
@@ -136,6 +136,44 @@ result.error #=> nil or raises an exception
|
|
136
136
|
result.type #=> :integer
|
137
137
|
```
|
138
138
|
|
139
|
+
### Step or Check
|
140
|
+
|
141
|
+
```ruby
|
142
|
+
result = Zx.Success(5, type: :integer)
|
143
|
+
.step{ |number| number + 5 }
|
144
|
+
.on_success(:integer) {|number| puts number } #=> 10
|
145
|
+
.on(:success, :integer) {|number| puts number } #=> 10
|
146
|
+
.on_success {|number| puts number } #=> 10
|
147
|
+
|
148
|
+
result.success? #=> true
|
149
|
+
result.failure? #=> false
|
150
|
+
result.value #=> 10
|
151
|
+
result.value! #=> 10 or raise
|
152
|
+
result.error #=> nil or raises a n exception
|
153
|
+
result.type #=> :integer
|
154
|
+
```
|
155
|
+
|
156
|
+
```ruby
|
157
|
+
result = Zx.Success(5, type: :integer)
|
158
|
+
.step{ |number| number + 5 }
|
159
|
+
.check { |number| number == 10 }
|
160
|
+
.on_success{|number| puts number } #=> 10
|
161
|
+
|
162
|
+
result.success? #=> true
|
163
|
+
result.failure? #=> false
|
164
|
+
result.value #=> 10
|
165
|
+
result.value! #=> 10 or raise
|
166
|
+
result.error #=> nil or raises an exception
|
167
|
+
result.type #=> :integer
|
168
|
+
```
|
169
|
+
|
170
|
+
```ruby
|
171
|
+
result = Zx.Success(5, type: :integer)
|
172
|
+
.step{ |number| number + 5 }
|
173
|
+
.check { |number| number == 15 }
|
174
|
+
.on_failure{|error| puts error } #=> 10
|
175
|
+
```
|
176
|
+
|
139
177
|
You can use one or multiples listeners in your result. We see some use cases.
|
140
178
|
|
141
179
|
**Simple composition**
|
data/lib/zx/result.rb
CHANGED
@@ -39,6 +39,8 @@ module Zx
|
|
39
39
|
|
40
40
|
def on_unknown(&block)
|
41
41
|
__execute__(nil, &block)
|
42
|
+
|
43
|
+
self
|
42
44
|
end
|
43
45
|
|
44
46
|
def on_success(tag = nil, &block)
|
@@ -71,6 +73,10 @@ module Zx
|
|
71
73
|
fmap(&block)
|
72
74
|
end
|
73
75
|
|
76
|
+
def step(&block)
|
77
|
+
fmap(&block)
|
78
|
+
end
|
79
|
+
|
74
80
|
def fmap(&block)
|
75
81
|
return self if failure?
|
76
82
|
|
@@ -80,6 +86,12 @@ module Zx
|
|
80
86
|
self
|
81
87
|
end
|
82
88
|
|
89
|
+
def check(&block)
|
90
|
+
return self if !!block.call(@value)
|
91
|
+
|
92
|
+
failure!
|
93
|
+
end
|
94
|
+
|
83
95
|
def failure!(value = nil, type: :error)
|
84
96
|
@type = type.to_sym
|
85
97
|
@success = false
|
@@ -106,7 +118,7 @@ module Zx
|
|
106
118
|
def Success(value = nil, options = {})
|
107
119
|
success!(value, type: options.fetch(:type, :ok))
|
108
120
|
end
|
109
|
-
|
121
|
+
|
110
122
|
def Success!(value = nil, options = {})
|
111
123
|
success!(value, type: options.fetch(:type, :ok))
|
112
124
|
end
|
@@ -114,7 +126,7 @@ module Zx
|
|
114
126
|
def Failure(value = nil, options = {})
|
115
127
|
failure!(value, type: options.fetch(:type, :error))
|
116
128
|
end
|
117
|
-
|
129
|
+
|
118
130
|
def Failure!(value = nil, options = {})
|
119
131
|
failure!(value, type: options.fetch(:type, :error))
|
120
132
|
end
|
data/lib/zx/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zx-result
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thadeu Esteves
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-09-
|
11
|
+
date: 2023-09-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|