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
node()
Alias for: neo_node
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