Module: ActiveNode::Persistence::ClassMethods
- Defined in:
- lib/active_node/persistence.rb
Instance Method Summary collapse
- #active_node_class(class_name, default_klass = nil) ⇒ Object
- #all ⇒ Object
- #filterClass(nodes, klass) ⇒ Object
- #find(ids) ⇒ Object
- #timestamps ⇒ Object
- #type ⇒ 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 |
#all ⇒ Object
19 20 21 22 |
# File 'lib/active_node/persistence.rb', line 19 def all result = Neography::Node.find(:node_auto_index, :type, type) (result.is_a?(Enumerable) ? result : [result]).map { |node| new_instance(node) }.compact end |
#filterClass(nodes, klass) ⇒ Object
39 40 41 |
# File 'lib/active_node/persistence.rb', line 39 def filterClass(nodes, klass) wrap(nodes, klass).select { |model| klass.nil? || model.instance_of?(klass) } end |
#find(ids) ⇒ Object
15 16 17 |
# File 'lib/active_node/persistence.rb', line 15 def find ids ids.is_a?(Enumerable) ? ids.map { |id| find(id) } : new_instance(Neography::Node.load(ids)) end |
#timestamps ⇒ Object
10 11 12 13 |
# File 'lib/active_node/persistence.rb', line 10 def attribute :created_at, type: String attribute :updated_at, type: String end |
#type ⇒ Object
24 25 26 |
# File 'lib/active_node/persistence.rb', line 24 def type name.underscore end |
#wrap(node, klass = nil) ⇒ Object
28 29 30 31 32 |
# File 'lib/active_node/persistence.rb', line 28 def wrap node, klass=nil node.is_a?(Enumerable) ? node.map { |n| wrap(n, klass) } : node.is_a?(Neography::Node) && (active_node_class(node.type.camelize, klass)).try(:new, node) || node end |