Module: AmazingActivist::Outcome

Included in:
Failure, Success
Defined in:
lib/amazing_activist/outcome.rb,
lib/amazing_activist/outcome/failure.rb,
lib/amazing_activist/outcome/success.rb

Constant Summary collapse

Failure =
Deprecated.

Use AmazingActivist::Failure

AmazingActivist::Failure
Success =
Deprecated.

Use AmazingActivist::Success

AmazingActivist::Success

Instance Method Summary collapse

Instance Method Details

#inspectString Also known as: to_s

Returns:

  • (String)


9
# File 'lib/amazing_activist/outcome.rb', line 9

def inspect = "#<#{self.class} (#{activity.class})>"

#unwrap!Object

Returns #success if outcome is Success.

Returns:

  • (Object)

    #success if outcome is Success

Raises:



46
47
48
49
50
# File 'lib/amazing_activist/outcome.rb', line 46

def unwrap!
  return value if success?

  raise UnwrapError, self
end

#value_or(default) ⇒ Object #value_or {|self| ... } ⇒ Object Also known as: success_or

Overloads:

  • #value_or(default) ⇒ Object

    Parameters:

    • default (Object)

    Returns:

    • (Object)

      ‘default` if outcome is Failure

    • (Object)

      #success otherwise

  • #value_or {|self| ... } ⇒ Object

    Yelds outcome, when outcome is Failure, or returns #success without yielding the control when Success.

    Yields:

    • (self)

    Yield Parameters:

    Yield Returns:

    • (Object)

      result of the block

Raises:

  • (ArgumentError)

    if neither default value, nor block given



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/amazing_activist/outcome.rb', line 26

def value_or(default = UNDEFINED)
  if block_given?
    warn "block supersedes default value argument" unless default == UNDEFINED

    return value if success?

    yield self
  elsif default != UNDEFINED
    return value if success?

    default
  else
    raise ArgumentError, "either default value, or block must be given"
  end
end