class ActiveModel::Type::String

Active Model String Type

Attribute type for strings. It is registered under the :string key.

This class is a specialization of ActiveModel::Type::ImmutableString. It performs coercion in the same way, and can be configured in the same way. However, it accounts for mutable strings, so dirty tracking can properly check if a string has changed.

Public Instance Methods

changed_in_place?(raw_old_value, new_value) click to toggle source
# File lib/active_model/type/string.rb, line 16
def changed_in_place?(raw_old_value, new_value)
  if new_value.is_a?(::String)
    raw_old_value != new_value
  end
end
to_immutable_string() click to toggle source
# File lib/active_model/type/string.rb, line 22
def to_immutable_string
  ImmutableString.new(
    true: @true,
    false: @false,
    limit: limit,
    precision: precision,
    scale: scale,
  )
end

Private Instance Methods

cast_value(value) click to toggle source
# File lib/active_model/type/string.rb, line 33
def cast_value(value)
  case value
  when ::String then ::String.new(value)
  when true then @true
  when false then @false
  else value.to_s
  end
end