Class: L43::Core::Result

Inherits:
Object
  • Object
show all
Extended by:
Constructors
Defined in:
lib/l43/core/result.rb,
lib/l43/core/result/constructors.rb

Defined Under Namespace

Modules: Constructors

Instance Method Summary collapse

Methods included from Constructors

error, ok

Instance Method Details

#deconstructObject



11
12
13
14
15
16
17
# File 'lib/l43/core/result.rb', line 11

def deconstruct(*) 
  if @ok
    [:ok, @value]
  else
    [:error, @message]
  end
end

#deconstruct_keysObject



19
20
21
22
23
24
25
# File 'lib/l43/core/result.rb', line 19

def deconstruct_keys(*)
  if @ok
    {ok: @value}
  else
    {error: @message}
  end
end

#error?Boolean

Returns:

  • (Boolean)


27
# File 'lib/l43/core/result.rb', line 27

def error? = !@ok

#message!Object

Raises:



29
30
31
32
# File 'lib/l43/core/result.rb', line 29

def message!
  return @message unless @ok
  raise IllegalState, "No error message in an ok result"
end

#ok?Boolean

Returns:

  • (Boolean)


34
# File 'lib/l43/core/result.rb', line 34

def ok? = @ok

#value!Object

Raises:



36
37
38
39
# File 'lib/l43/core/result.rb', line 36

def value!
  return @value if @ok
  raise IllegalState, "No value in an error result"
end