Active Model ImmutableString Type¶ ↑
Attribute type to represent immutable strings. It casts incoming values to frozen strings.
class Person
include ActiveModel::Attributes
attribute :name, :immutable_string
end
person = Person.new
person.name = 1
person.name
person.name.frozen?
Values are coerced to strings using their to_s method. Boolean values are treated differently, however: true will be cast to "t" and false will be cast to "f".
Methods
- A
-
- I
-
- N
-
- S
-
- T
-
Included Modules
Class Public methods
new(**args)
Link
Source:
show
|
on GitHub
def initialize(**args)
@true = -(args.delete(:true)&.to_s || "t")
@false = -(args.delete(:false)&.to_s || "f")
super
end
Instance Public methods
as_schema_json()
Link
Source:
show
|
on GitHub
def as_schema_json
super.merge!("true" => @true, "false" => @false)
end
init_from_schema_json(coder, references)
Link
Source:
show
|
on GitHub
def init_from_schema_json(coder, references)
super
@true = coder["true"]
@false = coder["false"]
end
serialize(value)
Link
Source:
show
|
on GitHub
def serialize(value)
case value
when ::Numeric, ::Symbol, ActiveSupport::Duration then value.to_s
when true then @true
when false then @false
else super
end
end