Module: ActiveNode::Persistence::ClassMethods
- Defined in:
- lib/active_node/persistence.rb
Instance Method Summary collapse
- #active_node_class(class_name, default_klass = nil) ⇒ Object
- #data(hash) ⇒ Object
- #extract_id(id) ⇒ Object
- #find_by_cypher(query, params = {}, klass = nil) ⇒ Object
- #graph ⇒ Object
- #label ⇒ Object
- #timestamps ⇒ Object
- #to_neo(value) ⇒ Object
- #to_neo!(attrs) ⇒ Object
- #wrap(node, klass = nil) ⇒ Object
Instance Method Details
#active_node_class(class_name, default_klass = nil) ⇒ Object
34 35 36 37 |
# File 'lib/active_node/persistence.rb', line 34 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 |
#data(hash) ⇒ Object
43 44 45 |
# File 'lib/active_node/persistence.rb', line 43 def data hash hash['data'].merge(id: extract_id(hash)) end |
#extract_id(id) ⇒ Object
47 48 49 50 51 52 53 54 55 56 |
# File 'lib/active_node/persistence.rb', line 47 def extract_id(id) case id when Array id.map { |i| extract_id(i) } when ActiveNode::Base id.id else get_id(id).to_i end 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 |
#graph ⇒ Object
39 40 41 |
# File 'lib/active_node/persistence.rb', line 39 def graph ActiveNode::Graph.new(self) end |
#label ⇒ Object
26 27 28 |
# File 'lib/active_node/persistence.rb', line 26 def label name end |
#timestamps ⇒ Object
17 18 19 20 |
# File 'lib/active_node/persistence.rb', line 17 def attribute :created_at, type: Time attribute :updated_at, type: Time end |
#to_neo(value) ⇒ Object
62 63 64 65 66 67 68 69 70 71 |
# File 'lib/active_node/persistence.rb', line 62 def to_neo value case value when Time, DateTime value.utc.iso8601(3) when Date value.to_s else value end end |
#to_neo!(attrs) ⇒ Object
58 59 60 |
# File 'lib/active_node/persistence.rb', line 58 def to_neo! attrs attrs.each { |k, v| attrs[k] = to_neo v } 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 |