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

Version Path
activegraph-11.4.0 lib/active_graph/lazy_attribute_hash.rb
activegraph-11.3.1 lib/active_graph/lazy_attribute_hash.rb
activegraph-11.3.0 lib/active_graph/lazy_attribute_hash.rb
activegraph-11.2.0 lib/active_graph/lazy_attribute_hash.rb
activegraph-11.1.0 lib/active_graph/lazy_attribute_hash.rb
activegraph-11.1.0.beta.1 lib/active_graph/lazy_attribute_hash.rb
activegraph-11.1.0.alpha.4 lib/active_graph/lazy_attribute_hash.rb
activegraph-11.1.0.alpha.3 lib/active_graph/lazy_attribute_hash.rb
activegraph-11.1.0.alpha.2 lib/active_graph/lazy_attribute_hash.rb
activegraph-11.1.0.alpha.1 lib/active_graph/lazy_attribute_hash.rb
activegraph-10.2.0.beta.1 lib/active_graph/lazy_attribute_hash.rb
activegraph-11.0.2-java lib/active_graph/lazy_attribute_hash.rb
activegraph-10.1.1 lib/active_graph/lazy_attribute_hash.rb
activegraph-11.0.1-java lib/active_graph/lazy_attribute_hash.rb
activegraph-11.0.0-java lib/active_graph/lazy_attribute_hash.rb
activegraph-10.1.0 lib/active_graph/lazy_attribute_hash.rb
activegraph-11.0.0.beta.4-java lib/active_graph/lazy_attribute_hash.rb
activegraph-10.0.2 lib/active_graph/lazy_attribute_hash.rb
activegraph-11.0.0.beta.3-java lib/active_graph/lazy_attribute_hash.rb
activegraph-11.0.0.beta.2-java lib/active_graph/lazy_attribute_hash.rb