Module: Deterministic::EnumBuilder::DataType::AnyEnum

Includes:
Monad
Defined in:
lib/deterministic/enum.rb

Instance Method Summary collapse

Methods included from Monad

#==, #bind, #fmap, #initialize, #inspect, #join, #value

Instance Method Details

#match(&block) ⇒ Object



15
16
17
# File 'lib/deterministic/enum.rb', line 15

def match(&block)
  parent.match(self, &block)
end

#nameObject



23
24
25
# File 'lib/deterministic/enum.rb', line 23

def name
  self.class.name.split("::")[-1]
end

#to_sObject



19
20
21
# File 'lib/deterministic/enum.rb', line 19

def to_s
  value.to_s
end

#wrapped_valuesObject

Returns array. Will fail on Nullary objects. TODO: define a Unary module so we can define this method differently on Unary vs Binary



29
30
31
32
33
34
35
# File 'lib/deterministic/enum.rb', line 29

def wrapped_values
  if self.is_a?(Deterministic::EnumBuilder::DataType::Binary)
    value.values
  else
    [value]
  end
end