Module: ActiveNode::Persistence::ClassMethods

Defined in:
lib/active_node/persistence.rb

Instance Method Summary collapse

Instance Method Details

#active_node_class(class_name, default_klass = nil) ⇒ Object



42
43
44
45
# File 'lib/active_node/persistence.rb', line 42

def active_node_class(class_name, default_klass=nil)
  klass = Module.const_get(class_name) rescue nil
  klass && klass < ActiveNode::Base && klass || default_klass
end

#create_rel(rel, node) ⇒ Object



38
39
40
# File 'lib/active_node/persistence.rb', line 38

def create_rel rel, node
  ActiveNode::Relationship.new node, rel['data'].merge(id: get_id(rel).to_i)
end

#find_by_cypher(query, params = {}, klass = nil) ⇒ Object



22
23
24
# File 'lib/active_node/persistence.rb', line 22

def find_by_cypher query, params={}, klass=nil
  wrap(Neo.db.execute_query(query, params)['data'].map(&:first), klass)
end

#graphObject



47
48
49
# File 'lib/active_node/persistence.rb', line 47

def graph
  ActiveNode::Graph.new(self)
end

#labelObject



26
27
28
# File 'lib/active_node/persistence.rb', line 26

def label
  name
end

#timestampsObject



17
18
19
20
# File 'lib/active_node/persistence.rb', line 17

def timestamps
  attribute :created_at, type: Time
  attribute :updated_at, type: Time
end

#wrap(node, klass = nil) ⇒ Object



30
31
32
# File 'lib/active_node/persistence.rb', line 30

def wrap node, klass=nil
  node.is_a?(Array) ? new_instances(node, klass) : new_instance(node, klass)
end

#wrap_rel(rel, node, klass) ⇒ Object



34
35
36
# File 'lib/active_node/persistence.rb', line 34

def wrap_rel rel, node, klass
  create_rel rel, wrap(node, klass)
end