class Neo4j::Transaction::Base

Attributes

root[R]
session[R]

Public Class Methods

new(session, _options = {}) click to toggle source
   # File lib/neo4j/transaction.rb
18 def initialize(session, _options = {})
19   @session = session
20 
21   Transaction.stack_for(session) << self
22 
23   @root = Transaction.stack_for(session).first
24   # Neo4j::Core::Label::SCHEMA_QUERY_SEMAPHORE.lock if root?
25 
26   # @parent = session_transaction_stack.last
27   # session_transaction_stack << self
28 end

Public Instance Methods

autoclosed!() click to toggle source
   # File lib/neo4j/transaction.rb
57 def autoclosed!
58   @autoclosed = true if transient_failures_autoclose?
59 end
close() click to toggle source

Commits or marks this transaction for rollback, depending on whether mark_failed has been previously invoked.

   # File lib/neo4j/transaction.rb
39 def close
40   tx_stack = Transaction.stack_for(@session)
41   fail 'Tried closing when transaction stack is empty (maybe you closed too many?)' if tx_stack.empty?
42   fail "Closed transaction which wasn't the most recent on the stack (maybe you forgot to close one?)" if tx_stack.pop != self
43 
44   @closed = true
45 
46   post_close! if tx_stack.empty?
47 end
closed?() click to toggle source
   # File lib/neo4j/transaction.rb
61 def closed?
62   !!@closed
63 end
commit() click to toggle source
   # File lib/neo4j/transaction.rb
53 def commit
54   fail 'not implemented'
55 end
delete() click to toggle source
   # File lib/neo4j/transaction.rb
49 def delete
50   fail 'not implemented'
51 end
expired?() click to toggle source
   # File lib/neo4j/transaction.rb
87 def expired?
88   !!@expired
89 end
failed?() click to toggle source

If it has been marked as failed. Aliased for legacy purposes.

   # File lib/neo4j/transaction.rb
77 def failed?
78   !!@failure
79 end
Also aliased as: failure?
failure()
Alias for: mark_failed
failure?()
Alias for: failed?
inspect() click to toggle source
   # File lib/neo4j/transaction.rb
30 def inspect
31   status_string = %i[id failed? active? commit_url].map do |method|
32     "#{method}: #{send(method)}" if respond_to?(method)
33   end.compact.join(', ')
34 
35   "<#{self.class} [#{status_string}]"
36 end
mark_expired() click to toggle source
   # File lib/neo4j/transaction.rb
82 def mark_expired
83   @parent.mark_expired if @parent
84   @expired = true
85 end
mark_failed() click to toggle source

Marks this transaction as failed, which means that it will unconditionally be rolled back when close is called. Aliased for legacy purposes.

   # File lib/neo4j/transaction.rb
69 def mark_failed
70   root.mark_failed if root && root != self
71   @failure = true
72 end
Also aliased as: failure
root?() click to toggle source
   # File lib/neo4j/transaction.rb
91 def root?
92   @root == self
93 end

Private Instance Methods

active?() click to toggle source
    # File lib/neo4j/transaction.rb
105 def active?
106   !closed?
107 end
autoclosed?() click to toggle source
    # File lib/neo4j/transaction.rb
101 def autoclosed?
102   !!@autoclosed
103 end
post_close!() click to toggle source
    # File lib/neo4j/transaction.rb
109 def post_close!
110   return if autoclosed?
111   if failed?
112     delete
113   else
114     commit
115   end
116 end
transient_failures_autoclose?() click to toggle source
   # File lib/neo4j/transaction.rb
97 def transient_failures_autoclose?
98   Gem::Version.new(@session.version) >= Gem::Version.new('2.2.6')
99 end