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.



139
140
141
142
143
144
145
# File 'lib/unmagic/enum/active_record_extensions.rb', line 139

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