zx-result 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 +4 -4
- data/README.md +38 -0
- data/lib/zx/result.rb +12 -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: 477e097fbbd8ef0e9653cad235ba58be00f9fc2d3caf59d753cda5f356288841
|
|
4
|
+
data.tar.gz: de38c568f3b038e4a58fa653170ca32b651ba721c92146045dd8303de312a94c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8392ba2d654e02899d5c1d5022af1287648244145c16f3fd875e2064c41442d31a637b95dac71929d1b474f080e264cadb030920a2c25a9a4a192d586310adb5
|
|
7
|
+
data.tar.gz: 6c0e807a40f795cf8be7d3721e0f7bab7cda05a2d5456ec67dbe880a9deaa4a6d82b13fac26453e1f1d243b6a5366e380f8aa51e735659d3d2ab7d6b458a2e78
|
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
|
@@ -71,6 +71,10 @@ module Zx
|
|
|
71
71
|
fmap(&block)
|
|
72
72
|
end
|
|
73
73
|
|
|
74
|
+
def step(&block)
|
|
75
|
+
fmap(&block)
|
|
76
|
+
end
|
|
77
|
+
|
|
74
78
|
def fmap(&block)
|
|
75
79
|
return self if failure?
|
|
76
80
|
|
|
@@ -80,6 +84,12 @@ module Zx
|
|
|
80
84
|
self
|
|
81
85
|
end
|
|
82
86
|
|
|
87
|
+
def check(&block)
|
|
88
|
+
return self if !!block.call(@value)
|
|
89
|
+
|
|
90
|
+
failure!
|
|
91
|
+
end
|
|
92
|
+
|
|
83
93
|
def failure!(value = nil, type: :error)
|
|
84
94
|
@type = type.to_sym
|
|
85
95
|
@success = false
|
|
@@ -106,7 +116,7 @@ module Zx
|
|
|
106
116
|
def Success(value = nil, options = {})
|
|
107
117
|
success!(value, type: options.fetch(:type, :ok))
|
|
108
118
|
end
|
|
109
|
-
|
|
119
|
+
|
|
110
120
|
def Success!(value = nil, options = {})
|
|
111
121
|
success!(value, type: options.fetch(:type, :ok))
|
|
112
122
|
end
|
|
@@ -114,7 +124,7 @@ module Zx
|
|
|
114
124
|
def Failure(value = nil, options = {})
|
|
115
125
|
failure!(value, type: options.fetch(:type, :error))
|
|
116
126
|
end
|
|
117
|
-
|
|
127
|
+
|
|
118
128
|
def Failure!(value = nil, options = {})
|
|
119
129
|
failure!(value, type: options.fetch(:type, :error))
|
|
120
130
|
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.2
|
|
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-18 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|