Class: Jaso::Result
- Inherits:
-
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
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
#data ⇒ Object
Returns the value of attribute data.
4
5
6
|
# File 'lib/jaso/result.rb', line 4
def data
@data
end
|
Instance Method Details
#deconstruct ⇒ Object
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
18
19
20
|
# File 'lib/jaso/result.rb', line 18
def failure?
@type == :failure
end
|
#success? ⇒ Boolean
14
15
16
|
# File 'lib/jaso/result.rb', line 14
def success?
@type == :success
end
|