module Dimensional::Enum::ClassMethods
Public Instance Methods
def_enum( enum_key )
click to toggle source
Calls superclass method
# File lib/dimensional/enum.rb, line 23 def def_enum( enum_key ) if @enum_attributes.nil? raise ::Dimensional::Enum::InvalidDefinition, "Undefined @enum_attributes on #{self}" end unless @enum_attributes.include? enum_key raise ::Dimensional::Enum::InvalidDefinition, "Undefined enum_key #{enum_key} in @enum_attributes" end enum_values = @enum_attributes.to_value_h( enum_key ) enum_attribute = @enum_attributes.to_attribute_h( enum_key ) self.class_eval do enum enum_key => enum_values define_method enum_key do return nil unless attr_key = super() ::Dimensional::Enum::Attribute.new attr_key, enum_attribute end end end
set_enum_attributes( enum_attributes )
click to toggle source
# File lib/dimensional/enum.rb, line 19 def set_enum_attributes( enum_attributes ) @enum_attributes = enum_attributes end