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



44
45
46
47
# File 'lib/active_node/persistence.rb', line 44

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

#allObject



28
29
30
# File 'lib/active_node/persistence.rb', line 28

def all
  new_instances(Neo.db.get_nodes_labeled(label), self)
end

#find(ids) ⇒ Object



19
20
21
22
# File 'lib/active_node/persistence.rb', line 19

def find ids
  array = new_instances(Neo.db.get_nodes([ids].flatten))
  ids.is_a?(Array) ? array : array.first
end

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



24
25
26
# File 'lib/active_node/persistence.rb', line 24

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

#labelObject



32
33
34
# File 'lib/active_node/persistence.rb', line 32

def label
  name
end

#timestampsObject



14
15
16
17
# File 'lib/active_node/persistence.rb', line 14

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

#wrap(node, klass = nil) ⇒ Object



36
37
38
# File 'lib/active_node/persistence.rb', line 36

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

#wrap_rel(rel, node, klass) ⇒ Object



40
41
42
# File 'lib/active_node/persistence.rb', line 40

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