Module: FunctionalLightService::EnumBuilder::DataType::AnyEnum
- Includes:
- Monad
- Defined in:
- lib/functional-light-service/functional/enum.rb
Instance Method Summary collapse
-
#deconstruct ⇒ Object
Supporto al pattern matching nativo di Ruby (case/in): case result in FunctionalLightService::Result::Success(s) then ...
- #deconstruct_keys(_keys) ⇒ Object
- #match ⇒ Object
- #name ⇒ Object
- #to_s ⇒ Object
-
#wrapped_values ⇒ Object
Returns array.
Methods included from Monad
#==, #bind, #fmap, #initialize, #inspect, #join, #value
Instance Method Details
#deconstruct ⇒ Object
Supporto al pattern matching nativo di Ruby (case/in):
case result
in FunctionalLightService::Result::Success(s) then ...
in FunctionalLightService::Result::Failure(f) then ...
end
44 45 46 |
# File 'lib/functional-light-service/functional/enum.rb', line 44 def deconstruct is_a?(FunctionalLightService::EnumBuilder::DataType::Nullary) ? [] : wrapped_values end |
#deconstruct_keys(_keys) ⇒ Object
48 49 50 51 52 53 54 55 56 |
# File 'lib/functional-light-service/functional/enum.rb', line 48 def deconstruct_keys(_keys) if is_a?(FunctionalLightService::EnumBuilder::DataType::Binary) value.dup elsif is_a?(FunctionalLightService::EnumBuilder::DataType::Nullary) {} else { args[0] => value } end end |
#match ⇒ Object
17 18 19 |
# File 'lib/functional-light-service/functional/enum.rb', line 17 def match(&) parent.match(self, &) end |
#name ⇒ Object
25 26 27 |
# File 'lib/functional-light-service/functional/enum.rb', line 25 def name self.class.name.split("::")[-1] end |
#to_s ⇒ Object
21 22 23 |
# File 'lib/functional-light-service/functional/enum.rb', line 21 def to_s value.to_s end |
#wrapped_values ⇒ Object
Returns array. Will fail on Nullary objects. TODO: define a Unary module so we can define this method differently on Unary vs Binary
31 32 33 34 35 36 37 |
# File 'lib/functional-light-service/functional/enum.rb', line 31 def wrapped_values if is_a?(FunctionalLightService::EnumBuilder::DataType::Binary) value.values else [value] end end |