Module: Unmagic::Enum::ActiveRecordExtensions::ClassMethods

Defined in:
lib/unmagic/enum/active_record_extensions.rb

Instance Method Summary collapse

Instance Method Details

#column_type(validate: false, array: false) ⇒ Object

For ActiveRecord attribute type definition. validate: mirrors ActiveRecord::Enum (default false = raise eagerly on an unknown value; true = let model validations handle it). array: true returns a type for columns holding multiple values of the enum as a JSON array. Memoised per option set.



144
145
146
147
148
149
150
# File 'lib/unmagic/enum/active_record_extensions.rb', line 144

def column_type(validate: false, array: false)
  (@column_types ||= {})[[validate, array]] ||= if array
    Unmagic::Enum::ActiveRecordExtensions::ArrayColumnType.new(self, validate: validate)
  else
    Unmagic::Enum::ActiveRecordExtensions::ColumnType.new(self, validate: validate)
  end
end