Class: ActiveModel::Type::String
| Relationships & Source Files | |
| Extension / Inclusion / Inheritance Descendants | |
|
Subclasses:
|
|
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
self,
ImmutableString,
Value
|
|
|
Instance Chain:
|
|
| Inherits: |
ActiveModel::Type::ImmutableString
|
| Defined in: | activemodel/lib/active_model/type/string.rb |
Overview
Active Model String Type
::ActiveModel::Attribute type for strings. It is registered under the :string key.
This class is a specialization of 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.
Class Method Summary
ImmutableString - Inherited
Value - Inherited
| .new | Initializes a type with three basic configuration settings: precision, limit, and scale. |
Instance Attribute Summary
- #mutable? ⇒ Boolean readonly Internal use only
Helpers::Immutable - Included
Value - Inherited
| #limit, #precision, #scale, | |
| #binary? | These predicates are not documented, as I need to look further into their use, and see if they can be removed entirely. |
| #mutable?, #serialized? | |
Instance Method Summary
- #changed_in_place?(raw_old_value, new_value) ⇒ Boolean
- #to_immutable_string
- #cast_value(value) private
ImmutableString - Inherited
Value - Inherited
| #==, #as_json, #assert_valid_value, | |
| #cast |
|
| #changed? | Determines whether a value has changed for dirty checking. |
| #changed_in_place? | Determines whether the mutable value has been modified since it was read. |
| #deserialize | Converts a value from database input to the appropriate ruby type. |
| #eql? | Alias for Value#==. |
| #hash, | |
| #serializable? | Returns true if this type can convert |
| #serialize | Casts a value from the ruby type to a type that the database knows how to understand. |
| #type | Returns the unique type name as a |
| #cast_value | Convenience method for types which do not need separate type casting behavior for user and database inputs. |
| #force_equality?, #map, | |
| #type_cast_for_schema |
|
| #value_constructed_by_mass_assignment? | |
SerializeCastValue - Included
Constructor Details
This class inherits a constructor from ActiveModel::Type::ImmutableString
Instance Attribute Details
#mutable? ⇒ Boolean (readonly)
# File 'activemodel/lib/active_model/type/string.rb', line 22
def mutable? # :nodoc: true end
Instance Method Details
#cast_value(value) (private)
[ GitHub ]#changed_in_place?(raw_old_value, new_value) ⇒ Boolean
# File 'activemodel/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
[ GitHub ]# File 'activemodel/lib/active_model/type/string.rb', line 26
def to_immutable_string ImmutableString.new( true: @true, false: @false, limit: limit, precision: precision, scale: scale, ) end