Class: Neon::Transaction::Placebo

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

Direct Known Subclasses

Rest

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.run(tx) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/neon/transaction/placebo.rb', line 19

def self.run(tx)
  placebo = new
  placebo.success # Mark for success by default
  result = yield(placebo) if block_given?
  if placebo.success?
    tx.success
  else
    tx.failure
  end
  tx.close
  return result, placebo.success?
rescue Exception => e
  # Roll back the transaction
  tx.failure
  tx.close
  raise e # Let the exception bubble up
end

Instance Method Details

#closeObject



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

def close
end

#failureObject



8
9
10
# File 'lib/neon/transaction/placebo.rb', line 8

def failure
  @success = false
end

#successObject



4
5
6
# File 'lib/neon/transaction/placebo.rb', line 4

def success
  @success = true
end

#success?Boolean

Returns:

  • (Boolean)


15
16
17
# File 'lib/neon/transaction/placebo.rb', line 15

def success?
  @success
end