result-monad 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/result-monad/error.rb +5 -5
- data/lib/result-monad/version.rb +1 -1
- data/lib/result-monad.rb +18 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f6827e932e166f2ef6c04af4fab7a181e7ae2f60
|
4
|
+
data.tar.gz: 5b9302941c4cd0244b35991fcecd7cd825511f10
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: db75419f936a2215d174ffd2a733fc1d9b04a927c81738d429f0deecc3398f9df2cf165301b06592267da8bff0a37ea1ebf94e0481c375c2236935fba47cd3da
|
7
|
+
data.tar.gz: 3991d42013a5f7690a49c9a5cc7f8cf2167c243fa40ce839ad251fbb64cb646428a5bb1c0c230ad171438316477d540598bc316dc1ea18fb11ca8790b5d86646
|
data/lib/result-monad/error.rb
CHANGED
@@ -1,19 +1,19 @@
|
|
1
1
|
class Error
|
2
|
-
def initialize(
|
3
|
-
@
|
2
|
+
def initialize(value)
|
3
|
+
@value = value
|
4
4
|
end
|
5
5
|
|
6
6
|
def map!(&block)
|
7
|
-
@
|
7
|
+
@value = Capture {block.call(@value)}
|
8
8
|
self
|
9
9
|
end
|
10
10
|
|
11
11
|
def map(&block)
|
12
|
-
capture_as_error { block.call(@
|
12
|
+
capture_as_error { block.call(@value) }
|
13
13
|
end
|
14
14
|
|
15
15
|
def to_s
|
16
|
-
"Error(#{@
|
16
|
+
"Error(#{@value})"
|
17
17
|
end
|
18
18
|
|
19
19
|
private
|
data/lib/result-monad/version.rb
CHANGED
data/lib/result-monad.rb
CHANGED
@@ -105,6 +105,24 @@ class Result
|
|
105
105
|
ok? ? unwrap : cons
|
106
106
|
end
|
107
107
|
|
108
|
+
def map_when(kind, &block)
|
109
|
+
@m.map(&block) if val.is_a?(kind)
|
110
|
+
self
|
111
|
+
end
|
112
|
+
|
113
|
+
def do_when(kind, &block)
|
114
|
+
Capture { block.call } if val.is_a?(kind)
|
115
|
+
self
|
116
|
+
end
|
117
|
+
|
118
|
+
def raise_or_return!
|
119
|
+
if ok?
|
120
|
+
return val
|
121
|
+
else
|
122
|
+
raise val
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
108
126
|
# Constructors
|
109
127
|
def self.error(error)
|
110
128
|
new(Error.new(error))
|