Class: Dry::Monads::Try::Error

Inherits:
Dry::Monads::Try show all
Includes:
RightBiased::Left
Defined in:
lib/dry/monads/try.rb,
lib/dry/monads/maybe.rb,
lib/dry/monads/either.rb,
lib/dry/monads/result.rb

Overview

Represents a result of a failed execution.

Constant Summary

Constants inherited from Dry::Monads::Try

DEFAULT_EXCEPTIONS

Instance Attribute Summary

Attributes inherited from Dry::Monads::Try

#exception

Instance Method Summary collapse

Methods included from RightBiased::Left

#and, #apply, #bind, #deconstruct, #deconstruct_keys, #discard, #flatten, #fmap, #or_fmap, #tee, trace_caller, #value!, #value_or

Methods inherited from Dry::Monads::Try

[], #error?, pure, run, #to_monad, #value?

Constructor Details

#initialize(exception) ⇒ Error

Returns a new instance of Error.

Parameters:

  • exception (Exception)


178
179
180
# File 'lib/dry/monads/try.rb', line 178

def initialize(exception)
  @exception = exception
end

Instance Method Details

#===(other) ⇒ Boolean

Parameters:

Returns:

  • (Boolean)


208
209
210
# File 'lib/dry/monads/try.rb', line 208

def ===(other)
  Error === other && exception === other.exception
end

#or(*args) ⇒ Object

If a block is given passes internal value to it and returns the result, otherwise simply returns the first argument.

Examples:

Try(ZeroDivisionError) { 1 / 0 }.or { "zero!" } # => "zero!"

Parameters:

  • args (Array<Object>)

    arguments that will be passed to a block if one was given, otherwise the first value will be returned

Returns:

  • (Object)


198
199
200
201
202
203
204
# File 'lib/dry/monads/try.rb', line 198

def or(*args)
  if block_given?
    yield(exception, *args)
  else
    args[0]
  end
end

#to_maybeMaybe::None

Returns:



363
364
365
# File 'lib/dry/monads/maybe.rb', line 363

def to_maybe
  Maybe::None.new(RightBiased::Left.trace_caller)
end

#to_resultResult::Failure

Returns:



433
434
435
# File 'lib/dry/monads/result.rb', line 433

def to_result
  Result::Failure.new(exception, RightBiased::Left.trace_caller)
end

#to_sString Also known as: inspect

Returns:

  • (String)


183
184
185
# File 'lib/dry/monads/try.rb', line 183

def to_s
  "Try::Error(#{ exception.class }: #{ exception.message })"
end