Class: TypedOperation::Result::Success

Inherits:
Object
  • Object
show all
Defined in:
lib/typed_operation/result/success.rb

Overview

Represents a successful result. Immutable value object.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(value) ⇒ Success

: (untyped) -> void



13
14
15
16
# File 'lib/typed_operation/result/success.rb', line 13

def initialize(value)
  @value = value
  freeze
end

Instance Attribute Details

#valueObject (readonly)

Returns the value of attribute value.



10
11
12
# File 'lib/typed_operation/result/success.rb', line 10

def value
  @value
end

Instance Method Details

#==(other) ⇒ Object Also known as: eql?

: (untyped) -> bool



58
59
60
# File 'lib/typed_operation/result/success.rb', line 58

def ==(other)
  other.is_a?(Success) && other.value == @value
end

#deconstructObject

Pattern matching support - array destructuring. : () -> Array



42
43
44
# File 'lib/typed_operation/result/success.rb', line 42

def deconstruct
  @value.is_a?(::Array) ? @value : [@value]
end

#deconstruct_keys(keys) ⇒ Object

Pattern matching support - hash destructuring. Delegates to the inner value if it responds to deconstruct_keys. : (Array?) -> Hash[Symbol, untyped]



49
50
51
52
53
54
55
# File 'lib/typed_operation/result/success.rb', line 49

def deconstruct_keys(keys)
  if @value.respond_to?(:deconstruct_keys)
    @value.deconstruct_keys(keys)
  else
    {value: @value}
  end
end

#failureObject

Returns nil for Success. : () -> nil



36
37
38
# File 'lib/typed_operation/result/success.rb', line 36

def failure
  nil
end

#failure?Boolean

: () -> false

Returns:

  • (Boolean)


24
25
26
# File 'lib/typed_operation/result/success.rb', line 24

def failure?
  false
end

#hashObject

: () -> Integer



64
65
66
# File 'lib/typed_operation/result/success.rb', line 64

def hash
  [self.class, @value].hash
end

#inspectObject Also known as: to_s

: () -> String



69
70
71
# File 'lib/typed_operation/result/success.rb', line 69

def inspect
  "Success(#{@value.inspect})"
end

#success?Boolean

: () -> true

Returns:

  • (Boolean)


19
20
21
# File 'lib/typed_operation/result/success.rb', line 19

def success?
  true
end

#value!Object

Returns the wrapped value. : () -> untyped



30
31
32
# File 'lib/typed_operation/result/success.rb', line 30

def value!
  @value
end