123456789_123456789_123456789_123456789_123456789_

Class: ActiveModel::Attributes::Normalization::NormalizedValueType

Do not use. This class is for internal use only.
Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Instance Chain:
Inherits: Object
Defined in: activemodel/lib/active_model/attributes/normalization.rb

Class Method Summary

Instance Attribute Summary

Instance Method Summary

Constructor Details

.new(cast_type:, normalizer:, normalize_nil:) ⇒ NormalizedValueType

[ GitHub ]

  
# File 'activemodel/lib/active_model/attributes/normalization.rb', line 166

def initialize(cast_type:, normalizer:, normalize_nil:)
  @cast_type = cast_type
  @normalizer = normalizer
  @normalize_nil = normalize_nil
  super(cast_type)
end

Instance Attribute Details

#cast_type (readonly)

[ GitHub ]

  
# File 'activemodel/lib/active_model/attributes/normalization.rb', line 163

attr_reader :cast_type, :normalizer, :normalize_nil

#normalize_nil? (readonly)

Alias for #normalize_nil.

[ GitHub ]

  
# File 'activemodel/lib/active_model/attributes/normalization.rb', line 164

alias :normalize_nil? :normalize_nil

#normalizer (readonly)

[ GitHub ]

  
# File 'activemodel/lib/active_model/attributes/normalization.rb', line 163

attr_reader :cast_type, :normalizer, :normalize_nil

Instance Method Details

#==(other) Also known as: #eql?

[ GitHub ]

  
# File 'activemodel/lib/active_model/attributes/normalization.rb', line 189

def ==(other)
  self.class == other.class &&
    normalize_nil? == other.normalize_nil? &&
    normalizer == other.normalizer &&
    cast_type == other.cast_type
end

#assert_valid_value(value)

[ GitHub ]

  
# File 'activemodel/lib/active_model/attributes/normalization.rb', line 177

def assert_valid_value(value)
  cast_type.assert_valid_value(cast(value))
end

#cast(value)

[ GitHub ]

  
# File 'activemodel/lib/active_model/attributes/normalization.rb', line 173

def cast(value)
  normalize(super(value))
end

#eql?(other)

Alias for #==.

[ GitHub ]

  
# File 'activemodel/lib/active_model/attributes/normalization.rb', line 195

alias eql? ==

#hash

[ GitHub ]

  
# File 'activemodel/lib/active_model/attributes/normalization.rb', line 197

def hash
  [self.class, cast_type, normalizer, normalize_nil?].hash
end

#normalize(value) (private)

[ GitHub ]

  
# File 'activemodel/lib/active_model/attributes/normalization.rb', line 209

def normalize(value)
  normalizer.call(value) unless value.nil? && !normalize_nil?
end

#normalize_nil (readonly) Also known as: #normalize_nil?

[ GitHub ]

  
# File 'activemodel/lib/active_model/attributes/normalization.rb', line 163

attr_reader :cast_type, :normalizer, :normalize_nil

#serialize(value)

[ GitHub ]

  
# File 'activemodel/lib/active_model/attributes/normalization.rb', line 181

def serialize(value)
  serialize_cast_value(cast(value))
end

#serialize_cast_value(value)

[ GitHub ]

  
# File 'activemodel/lib/active_model/attributes/normalization.rb', line 185

def serialize_cast_value(value)
  ActiveModel::Type::SerializeCastValue.serialize(cast_type, value)
end