Class: Neon::Transaction::Rest

Inherits:
Placebo
  • Object
show all
Defined in:
lib/neon/transaction/rest.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Placebo

#failure, run, #success, #success?

Constructor Details

#initialize(session) ⇒ Rest

Returns a new instance of Rest.



4
5
6
7
8
9
# File 'lib/neon/transaction/rest.rb', line 4

def initialize(session)
  @session = session
  @tx = @session.neo.begin_transaction
  # Mark for failure by default
  failure
end

Class Method Details

.begin_tx(session) ⇒ Object



34
35
36
37
38
# File 'lib/neon/transaction/rest.rb', line 34

def begin_tx(session)
  id = id_mapper(session)
  # Fetch the transaction associated with session. If none is found then begin a new one.
  Thread.current[id] || Thread.current[id] = new(session)
end

.id_mapper(session) ⇒ Object

Identity mapper



41
42
43
# File 'lib/neon/transaction/rest.rb', line 41

def id_mapper(session)
  "Neon::#{session}"
end

Instance Method Details

#closeObject



21
22
23
24
25
26
27
28
29
30
31
# File 'lib/neon/transaction/rest.rb', line 21

def close
  if success?
    # puts "Commited tx"
    @session.neo.commit_transaction @tx
  else
    # puts "Rollabcked tx"
    @session.neo.rollback_transaction @tx
  end
  id = self.class.id_mapper(@session)
  Thread.current[id] = nil if Thread.current[id] == self
end

#keep_aliveObject



11
12
13
# File 'lib/neon/transaction/rest.rb', line 11

def keep_alive
  @session.neo.keep_transaction @tx
end

#run_query(query, params = {}, formats = nil) ⇒ Object



15
16
17
18
19
# File 'lib/neon/transaction/rest.rb', line 15

def run_query(query, params={}, formats=nil)
  query = [query, params] unless query.is_a?(Array) || !params.empty?
  query << formats if formats.is_a?(Array)
  @session.neo.in_transaction(@tx, query)["results"]
end