Sha256: 97f2a7312e63ee7f5212e06ef6710470d1391d39fa1e814a07431501b5502586
Contents?: true
Size: 1.87 KB
Versions: 4
Compression:
Stored size: 1.87 KB
Contents
module Neo4j::Shared module Initialize extend ActiveSupport::Concern # Implements the Neo4j::Node#wrapper and Neo4j::Relationship#wrapper method # so that we don't have to care if the node is wrapped or not. # @return self def wrapper self end private def convert_and_assign_attributes(properties) @attributes ||= Hash[self.class.attributes_nil_hash] stringify_attributes!(@attributes, properties) self.default_properties = properties if respond_to?(:default_properties=) self.class.declared_properties.convert_properties_to(self, :ruby, @attributes) end def stringify_attributes!(attr, properties) properties.each_pair do |k, v| key = self.class.declared_properties.string_key(k) attr[key.freeze] = v end end # We should be using #clear_changes_information # but right now we don't use `ActiveModel` attributes correctly and so it doesn't work def changed_attributes_clear! return if changed_attributes.nil? # changed_attributes is frozen starting with ActiveModel 5.2.0 # Not a good long term solution if changed_attributes.frozen? @attributes_changed_by_setter = ActiveSupport::HashWithIndifferentAccess.new else changed_attributes && changed_attributes.clear end end def changed_attributes_selective_clear!(hash_to_clear) # changed_attributes is frozen starting with ActiveModel 5.2.0 # Not a good long term solution if changed_attributes.frozen? attributes_changed_by_setter = ActiveSupport::HashWithIndifferentAccess.new(changed_attributes) hash_to_clear.keys.each { |k| attributes_changed_by_setter.delete(k) } @attributes_changed_by_setter = attributes_changed_by_setter else hash_to_clear.each_key { |k| changed_attributes.delete(k) } end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
neo4j-9.3.0 | lib/neo4j/shared/initialize.rb |
neo4j-9.2.4 | lib/neo4j/shared/initialize.rb |
neo4j-9.2.3 | lib/neo4j/shared/initialize.rb |
neo4j-9.2.2 | lib/neo4j/shared/initialize.rb |