module TypedEnum::TypedEnumClassMethods

Public Instance Methods

_load(str) click to toggle source
# File lib/typed_enum.rb, line 61
def _load(str)
  parse(str.to_sym)
end
from_name(sym) click to toggle source
# File lib/typed_enum.rb, line 48
def from_name(sym)
  inverse_map[sym.to_sym] or raise NameError.new("No mapping for symbol #{sym} to vertical")
end
init() click to toggle source
# File lib/typed_enum.rb, line 66
def init
  if !@initialized
    @initialized = true
    @@values = @enum.call
  else
    raise "Attempt to re-initialize typed enum #{self.class}"
  end
end
parse(token) click to toggle source
# File lib/typed_enum.rb, line 52
def parse(token)
  sym = token.to_sym
  from_symbol(sym)
end
values() click to toggle source
# File lib/typed_enum.rb, line 57
def values
  @@values
end

Private Instance Methods

inverse_map() click to toggle source
# File lib/typed_enum.rb, line 77
def inverse_map
  @@inverse_map ||= values.inject({}) { |m, v| m[v.name] = v; m }
end