Module: TypedAttribute::Type

Defined in:
lib/typed_attribute/type.rb

Constant Summary collapse

IS_RAILS_5 =
defined?(ActiveModel) && ActiveModel.gem_version >= Gem::Version.new('5.0.0')
DATETIME_TYPE =

Change type name for DateTime in Rails5 related: github.com/rails/rails/pull/24079

IS_RAILS_5 ? :datetime : :date_time

Class Method Summary collapse

Class Method Details

.cast_value(cast_type, value) ⇒ Object



23
24
25
# File 'lib/typed_attribute/type.rb', line 23

def self.cast_value(cast_type, value)
  ActiveModel::Type.lookup(flexible_type_name(cast_type)).cast(value)
end

.flexible_type_name(type) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/typed_attribute/type.rb', line 11

def self.flexible_type_name(type)
  if %i(date_time datetime).include?(type)
    DATETIME_TYPE
  else
    type
  end
end