Sha256: 96214e0b4ac9c89b34250634362efa8618a3c51433bb81f2d8a8ad11575cf90e
Contents?: true
Size: 1007 Bytes
Versions: 34
Compression:
Stored size: 1007 Bytes
Contents
require 'active_model/attribute_set' module ActiveGraph class LazyAttributeHash < ActiveModel::LazyAttributeHash def initialize(values, attr_list) @types = {} @values = {} @additional_types = {} @materialized = false @delegate_hash = values @default_attributes = process_default_attributes(attr_list) end private def marshal_load(values) initialize(values[4], values[3]) end def process_default_attributes(attr_list) if attr_list.is_a?(Hash) attr_list else # initialize default attributes map with nil values attr_list.each_with_object({}) do |name, map| map[name] = nil end end end # we are using with_cast_value here because at the moment casting is being managed by # Neo4j and not in ActiveModel def assign_default_value(name) delegate_hash[name] = ActiveModel::Attribute.with_cast_value(name, default_attributes[name].dup, nil) end end end
Version data entries
34 entries across 34 versions & 1 rubygems