Class: Jaso::Result

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

Constant Summary collapse

SUCCESS =
:success
FAILURE =
:failure

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(type, data = {}) ⇒ Result

Returns a new instance of Result.



9
10
11
12
# File 'lib/jaso/result.rb', line 9

def initialize(type, data = {})
  @type = type
  @data = data
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *args, &block) ⇒ Object (private)



32
33
34
35
36
37
38
39
# File 'lib/jaso/result.rb', line 32

def method_missing(name, *args, &block)
  key = method_name_to_key(name)
  super unless data.key?(key)

  value = name.to_s.end_with?("?") ? !!data[key] : data[key]
  define_singleton_method(name) { value }
  send(name)
end

Instance Attribute Details

#dataObject (readonly)

Returns the value of attribute data.



4
5
6
# File 'lib/jaso/result.rb', line 4

def data
  @data
end

Instance Method Details

#deconstructObject



22
23
24
# File 'lib/jaso/result.rb', line 22

def deconstruct
  [@type, data]
end

#deconstruct_keys(keys) ⇒ Object



26
27
28
# File 'lib/jaso/result.rb', line 26

def deconstruct_keys(keys)
  { type: @type, **data }
end

#failure?Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/jaso/result.rb', line 18

def failure?
  @type == :failure
end

#success?Boolean

Returns:

  • (Boolean)


14
15
16
# File 'lib/jaso/result.rb', line 14

def success?
  @type == :success
end