Module: Keymaker::Node::InstanceMethods
- Defined in:
- lib/keymaker/node.rb
Instance Method Summary collapse
- #create ⇒ Object
- #create_or_update ⇒ Object
- #initialize(attrs = {}) ⇒ Object
- #neo_service ⇒ Object
- #new? ⇒ Boolean
- #persisted? ⇒ Boolean
- #sanitize(attrs) ⇒ Object
- #save ⇒ Object
- #to_key ⇒ Object
- #update(attrs) ⇒ Object
Instance Method Details
#create ⇒ Object
108 109 110 111 112 113 114 115 116 |
# File 'lib/keymaker/node.rb', line 108 def create run_callbacks :create do neo_service.create_node(sanitize(attributes)).on_success do |response| self.node_id = response.neo4j_id self.new_node = false end self end end |
#create_or_update ⇒ Object
102 103 104 105 106 |
# File 'lib/keymaker/node.rb', line 102 def create_or_update run_callbacks :save do new? ? create : update(attributes) end end |
#initialize(attrs = {}) ⇒ Object
81 82 83 84 |
# File 'lib/keymaker/node.rb', line 81 def initialize(attrs = {}) @new_node = true process_attrs(attrs) if attrs.present? end |
#neo_service ⇒ Object
86 87 88 |
# File 'lib/keymaker/node.rb', line 86 def neo_service self.class.neo_service end |
#new? ⇒ Boolean
90 91 92 |
# File 'lib/keymaker/node.rb', line 90 def new? @new_node end |
#persisted? ⇒ Boolean
123 124 125 |
# File 'lib/keymaker/node.rb', line 123 def persisted? node_id.present? end |
#sanitize(attrs) ⇒ Object
94 95 96 |
# File 'lib/keymaker/node.rb', line 94 def sanitize(attrs) serializable_hash(except: :node_id).merge(attrs.except('node_id')).reject {|k,v| v.blank?} end |
#save ⇒ Object
98 99 100 |
# File 'lib/keymaker/node.rb', line 98 def save create_or_update end |
#to_key ⇒ Object
127 128 129 |
# File 'lib/keymaker/node.rb', line 127 def to_key persisted? ? [node_id] : nil end |
#update(attrs) ⇒ Object
118 119 120 121 |
# File 'lib/keymaker/node.rb', line 118 def update(attrs) process_attrs(sanitize(attrs.merge(updated_at: Time.now.utc.to_i))) neo_service.update_node_properties(node_id, sanitize(attributes)) end |