Sha256: 19d109b9c17630f1820ae603f9c780997f2ce94456703ec2afd3eca21a404bcb
Contents?: true
Size: 1.37 KB
Versions: 3
Compression:
Stored size: 1.37 KB
Contents
require 'active_record/attribute_set/builder' module ActiveRecord class AttributeSet # :nodoc: def initialize(attributes) @attributes = attributes end def [](name) attributes[name] || Attribute.null(name) end def values_before_type_cast attributes.transform_values(&:value_before_type_cast) end def to_hash initialized_attributes.transform_values(&:value) end alias_method :to_h, :to_hash def key?(name) attributes.key?(name) && self[name].initialized? end def keys attributes.initialized_keys end def fetch_value(name) self[name].value { |n| yield n if block_given? } end def write_from_database(name, value) attributes[name] = self[name].with_value_from_database(value) end def write_from_user(name, value) attributes[name] = self[name].with_value_from_user(value) end def freeze @attributes.freeze super end def initialize_dup(_) @attributes = attributes.dup super end def initialize_clone(_) @attributes = attributes.clone super end def reset(key) if key?(key) write_from_database(key, nil) end end protected attr_reader :attributes private def initialized_attributes attributes.select { |_, attr| attr.initialized? } end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
activerecord-4.2.0.rc3 | lib/active_record/attribute_set.rb |
activerecord-4.2.0.rc2 | lib/active_record/attribute_set.rb |
activerecord-4.2.0.rc1 | lib/active_record/attribute_set.rb |