module Neomirror::Node
Public Class Methods
included(base)
click to toggle source
# File lib/neomirror/node.rb, line 2 def self.included(base) base.extend(ClassMethods) base.after_create :create_neo_node if base.respond_to?(:after_create) base.after_update :update_neo_node if base.respond_to?(:after_update) base.after_destroy :destroy_neo_node if base.respond_to?(:after_destroy) end
Public Instance Methods
create_neo_node()
click to toggle source
# File lib/neomirror/node.rb, line 54 def create_neo_node return true unless self.class.neo_mirror @neo_node = ::Neography::Node.create(neo_node_properties, ::Neomirror.neo) ::Neomirror.neo.set_label(@neo_node, self.class.neo_mirror[:label]) @neo_node end
destroy_neo_node()
click to toggle source
# File lib/neomirror/node.rb, line 71 def destroy_neo_node return true unless self.class.neo_mirror && find_neo_node ::Neomirror.neo.delete_node!(@neo_node) true end
find_neo_node()
click to toggle source
# File lib/neomirror/node.rb, line 46 def find_neo_node raise "Couldn't find neo_node declaration" unless self.class.neo_mirror label = self.class.neo_mirror[:label] id = self.__send__(self.class.neo_primary_key) return nil unless node = ::Neomirror.neo.find_nodes_labeled(label, { :id => id }).first @neo_node = ::Neography::Node.load(node, ::Neomirror.neo) end
neo_node()
click to toggle source
# File lib/neomirror/node.rb, line 32 def neo_node raise "Couldn't find neo_node declaration" unless self.class.neo_mirror find_neo_node || create_neo_node end
Also aliased as: node
neo_node_properties()
click to toggle source
# File lib/neomirror/node.rb, line 38 def neo_node_properties hash = { :id => self.__send__(self.class.neo_primary_key) } if self.class.neo_mirror && self.class.neo_mirror[:properties] self.class.neo_mirror[:properties].each { |property, rule| hash[property] = rule.call(self) } end hash end
update_neo_node()
click to toggle source
# File lib/neomirror/node.rb, line 61 def update_neo_node return true unless self.class.neo_mirror if find_neo_node ::Neomirror.neo.reset_node_properties(@neo_node, neo_node_properties) if self.class.neo_mirror[:properties] true else create_neo_node end end