class ActiveModel::AttributeSet

Experimental RBS support (using type sampling data from the type_fusion project).

# sig/active_model/attribute_set.rbs

class ActiveModel::AttributeSet
  
  type ActiveModel__AttributeSet_[]_return_value = ActiveModel::Attribute::FromUser | ActiveModel::Attribute::FromDatabase | ActiveModel::Attribute::UserProvidedDefault | ActiveModel::Attribute::WithCastValue
  
  def []: (String name) -> ActiveModel__AttributeSet_[]_return_value
  def []=: (String name, (ActiveModel::Attribute::FromDatabase | ActiveModel::Attribute::UserProvidedDefault) value) -> (ActiveModel::Attribute::FromDatabase | ActiveModel::Attribute::UserProvidedDefault)
  def deep_dup: () -> ActiveModel::AttributeSet
  def fetch_value: (String name, ) -> (nil | String | Integer)
  def initialize: (Hash attributes) -> void
  def keys: () -> untyped
  def map: () -> ActiveModel::AttributeSet
  
  type ActiveModel__AttributeSet_write_from_user_value = String | nil | Time | Integer
  type ActiveModel__AttributeSet_write_from_user_return_value = String | nil | Time | Integer
  
  def write_from_user: (String name, ActiveModel__AttributeSet_write_from_user_value value) -> ActiveModel__AttributeSet_write_from_user_return_value
end

:nodoc:

def ==(other)

def ==(other)
  attributes == other.attributes
end

def [](name)

Experimental RBS support (using type sampling data from the type_fusion project).

type ActiveModel__AttributeSet_[]_return_value = ActiveModel::Attribute::FromUser | ActiveModel::Attribute::FromDatabase | ActiveModel::Attribute::UserProvidedDefault | ActiveModel::Attribute::WithCastValue

def []: (String name) -> ActiveModel__AttributeSet_[]_return_value

This signature was generated using 133 samples from 2 applications.

def [](name)
  @attributes[name] || default_attribute(name)
end

def []=(name, value)

Experimental RBS support (using type sampling data from the type_fusion project).

def []=: (String name, (ActiveModel::Attribute::FromDatabase | ActiveModel::Attribute::UserProvidedDefault) value) -> (ActiveModel::Attribute::FromDatabase | ActiveModel::Attribute::UserProvidedDefault)

This signature was generated using 12 samples from 3 applications.

def []=(name, value)
  @attributes[name] = value
end

def accessed

def accessed
  attributes.each_key.select { |name| self[name].has_been_read? }
end

def deep_dup

Experimental RBS support (using type sampling data from the type_fusion project).

def deep_dup: () -> ActiveModel::AttributeSet

This signature was generated using 4 samples from 2 applications.

def deep_dup
  AttributeSet.new(attributes.deep_dup)
end

def default_attribute(name)

def default_attribute(name)
  Attribute.null(name)
end

def fetch_value(name, &block)

Experimental RBS support (using type sampling data from the type_fusion project).

def fetch_value: (String name, ) -> (nil | String | Integer)

This signature was generated using 28 samples from 2 applications.

def fetch_value(name, &block)
  self[name].value(&block)
end

def freeze

def freeze
  attributes.freeze
  super
end

def initialize(attributes)

Experimental RBS support (using type sampling data from the type_fusion project).

def initialize: ((id | ActiveModel::Attribute::FromDatabase | gem_name | ActiveModel::Attribute::FromDatabase | gem_version | ActiveModel::Attribute::FromDatabase | receiver | ActiveModel::Attribute::FromDatabase | method_name | ActiveModel::Attribute::FromDatabase | location | ActiveModel::Attribute::FromDatabase | type_fusion_version | ActiveModel::Attribute::FromDatabase | application_name | ActiveModel::Attribute::FromDatabase | source_ip | ActiveModel::Attribute::FromDatabase | parameters | ActiveModel::Attribute::FromDatabase | created_at | ActiveModel::Attribute::FromDatabase | updated_at | ActiveModel::Attribute::FromDatabase | return_value | ActiveModel::Attribute::FromDatabase |  | id | ActiveModel::Attribute::FromDatabase | zip_code | ActiveModel::Attribute::FromDatabase | longitude | ActiveModel::Attribute::FromDatabase | latitude | ActiveModel::Attribute::FromDatabase | state | ActiveModel::Attribute::FromDatabase | city | ActiveModel::Attribute::FromDatabase | street | ActiveModel::Attribute::FromDatabase | raw_input | ActiveModel::Attribute::FromDatabase | msa_id | ActiveModel::Attribute::FromDatabase | csa_id | ActiveModel::Attribute::FromDatabase | metropolitan_division_id | ActiveModel::Attribute::FromDatabase) attributes) -> void

This signature was generated using 6 samples from 2 applications.

def initialize(attributes)
  @attributes = attributes
end

def initialize_clone(_)

def initialize_clone(_)
  @attributes = @attributes.clone
  super
end

def initialize_dup(_)

def initialize_dup(_)
  @attributes = @attributes.dup
  super
end

def key?(name)

def key?(name)
  attributes.key?(name) && self[name].initialized?
end

def keys

Experimental RBS support (using type sampling data from the type_fusion project).

def keys: () -> untyped

This signature was generated using 4 samples from 2 applications.

def keys
  attributes.each_key.select { |name| self[name].initialized? }
end

def map(&block)

Experimental RBS support (using type sampling data from the type_fusion project).

def map: () -> ActiveModel::AttributeSet

This signature was generated using 3 samples from 1 application.

def map(&block)
  new_attributes = attributes.transform_values(&block)
  AttributeSet.new(new_attributes)
end

def reset(key)

def reset(key)
  if key?(key)
    write_from_database(key, nil)
  end
end

def to_hash

def to_hash
  keys.index_with { |name| self[name].value }
end

def values_before_type_cast

def values_before_type_cast
  attributes.transform_values(&:value_before_type_cast)
end

def values_for_database

def values_for_database
  attributes.transform_values(&:value_for_database)
end

def write_cast_value(name, value)

def write_cast_value(name, value)
  @attributes[name] = self[name].with_cast_value(value)
end

def write_from_database(name, value)

def write_from_database(name, value)
  @attributes[name] = self[name].with_value_from_database(value)
end

def write_from_user(name, value)

Experimental RBS support (using type sampling data from the type_fusion project).

type ActiveModel__AttributeSet_write_from_user_value = String | nil | Time | Integer
type ActiveModel__AttributeSet_write_from_user_return_value = String | nil | Time | Integer

def write_from_user: (String name, ActiveModel__AttributeSet_write_from_user_value value) -> ActiveModel__AttributeSet_write_from_user_return_value

This signature was generated using 26 samples from 2 applications.

def write_from_user(name, value)
  raise FrozenError, "can't modify frozen attributes" if frozen?
  @attributes[name] = self[name].with_value_from_user(value)
  value
end