module ReeEnum::Enumerable::ClassMethods
def enum_name
def enum_name return if !@values @values.enum_name end
def setup_enum(enum_name)
def setup_enum(enum_name) @values ||= ReeEnum::Values.new(self, enum_name) end
def val(value, number, label = nil)
def val(value, number, label = nil) if value == :new raise ArgumentError.new(":new is not allowed as enum value") end enum_value = values.add(value, number: number, label: label) define_method "#{enum_value.value}" do by_value(enum_value.value) end define_singleton_method "#{enum_value.value}" do by_value(enum_value.value) end enum_value end
def values
def values @values end