Class: Dry::Monads::Result::Failure
- Inherits:
-
Dry::Monads::Result
- Object
- Dry::Monads::Result
- Dry::Monads::Result::Failure
- Includes:
- Dry::Monads::RightBiased::Left
- Defined in:
- lib/dry/monads/result.rb,
lib/dry/monads/maybe.rb,
lib/dry/monads/validated.rb
Overview
Represents a value of a failed operation.
Instance Attribute Summary collapse
-
#trace ⇒ String
readonly
Line where the value was constructed.
Attributes inherited from Dry::Monads::Result
Class Method Summary collapse
-
.[](*value) ⇒ Object
Shortcut for Failure().
-
.to_proc ⇒ Proc
Returns a constructor proc.
Instance Method Summary collapse
- #===(other) ⇒ Boolean
-
#alt_map(proc = Undefined, &block) ⇒ Object
Lifts a block/proc over Failure.
-
#either(_, g) ⇒ Any
Returns result of applying second function to the internal value.
- #failure ⇒ Object
-
#failure? ⇒ Boolean
Returns true.
-
#flip ⇒ Result::Success
Transform to a Success instance.
-
#initialize(value, trace = RightBiased::Left.trace_caller) ⇒ Failure
constructor
A new instance of Failure.
-
#or(*args) ⇒ Object
If a block is given passes internal value to it and returns the result, otherwise simply returns the first argument.
-
#or_fmap ⇒ Result::Success
A lifted version of ‘#or`.
-
#result(f, _) ⇒ Object
Apply the first function to value.
-
#success? ⇒ Boolean
Returns false.
- #to_maybe ⇒ Maybe::None
- #to_s ⇒ String (also: #inspect)
-
#to_validated ⇒ Validated::Invalid
Transforms to Validated.
- #value_or(val = nil) ⇒ Object
Methods included from Dry::Monads::RightBiased::Left
#and, #apply, #bind, #deconstruct, #deconstruct_keys, #discard, #flatten, #fmap, #tee, trace_caller, #value!, #|
Methods inherited from Dry::Monads::Result
#monad, pure, #to_monad, #to_result
Methods included from Transformer
Constructor Details
#initialize(value, trace = RightBiased::Left.trace_caller) ⇒ Failure
Returns a new instance of Failure.
190 191 192 193 194 |
# File 'lib/dry/monads/result.rb', line 190 def initialize(value, trace = RightBiased::Left.trace_caller) super() @value = value @trace = trace end |
Instance Attribute Details
#trace ⇒ String (readonly)
Line where the value was constructed
186 187 188 |
# File 'lib/dry/monads/result.rb', line 186 def trace @trace end |
Class Method Details
.[](*value) ⇒ Object
171 172 173 |
# File 'lib/dry/monads/result.rb', line 171 def self.[](*value) new(value, RightBiased::Left.trace_caller) end |
.to_proc ⇒ Proc
Returns a constructor proc
178 179 180 |
# File 'lib/dry/monads/result.rb', line 178 def self.to_proc @to_proc ||= method(:new).to_proc end |
Instance Method Details
#===(other) ⇒ Boolean
278 279 280 |
# File 'lib/dry/monads/result.rb', line 278 def ===(other) Failure === other && failure === other.failure end |
#alt_map(proc) ⇒ Result::Failure #alt_map ⇒ Result::Failure
Lifts a block/proc over Failure
304 305 306 307 |
# File 'lib/dry/monads/result.rb', line 304 def alt_map(proc = Undefined, &block) f = Undefined.default(proc, block) self.class.new(f.(failure), RightBiased::Left.trace_caller) end |
#either(_, g) ⇒ Any
Returns result of applying second function to the internal value.
290 291 292 |
# File 'lib/dry/monads/result.rb', line 290 def either(_, g) g.(failure) end |
#failure ⇒ Object
197 198 199 |
# File 'lib/dry/monads/result.rb', line 197 def failure @value end |
#failure? ⇒ Boolean
Returns true
209 210 211 |
# File 'lib/dry/monads/result.rb', line 209 def failure? true end |
#flip ⇒ Result::Success
Transform to a Success instance
263 264 265 |
# File 'lib/dry/monads/result.rb', line 263 def flip Success.new(@value) end |
#or(*args) ⇒ Object
If a block is given passes internal value to it and returns the result, otherwise simply returns the first argument.
229 230 231 232 233 234 235 |
# File 'lib/dry/monads/result.rb', line 229 def or(*args) if block_given? yield(@value, *args) else args[0] end end |
#or_fmap ⇒ Result::Success
A lifted version of ‘#or`. Wraps the passed value or the block result with Result::Success.
246 247 248 |
# File 'lib/dry/monads/result.rb', line 246 def or_fmap(...) Success.new(self.or(...)) end |
#result(f, _) ⇒ Object
Apply the first function to value.
204 205 206 |
# File 'lib/dry/monads/result.rb', line 204 def result(f, _) f.(@value) end |
#success? ⇒ Boolean
Returns false
214 215 216 |
# File 'lib/dry/monads/result.rb', line 214 def success? false end |
#to_maybe ⇒ Maybe::None
396 397 398 |
# File 'lib/dry/monads/maybe.rb', line 396 def to_maybe Maybe::None.new(trace) end |
#to_s ⇒ String Also known as: inspect
251 252 253 254 255 256 257 |
# File 'lib/dry/monads/result.rb', line 251 def to_s if Unit.equal?(@value) "Failure()" else "Failure(#{@value.inspect})" end end |
#to_validated ⇒ Validated::Invalid
Transforms to Validated
301 302 303 |
# File 'lib/dry/monads/validated.rb', line 301 def to_validated Validated::Invalid.new(failure, trace) end |
#value_or(val = nil) ⇒ Object
268 269 270 271 272 273 274 |
# File 'lib/dry/monads/result.rb', line 268 def value_or(val = nil) if block_given? yield(@value) else val end end |