Class: Neon::Transaction::Placebo
- Inherits:
-
Object
- Object
- Neon::Transaction::Placebo
- Defined in:
- lib/neon/transaction/placebo.rb
Direct Known Subclasses
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
#close ⇒ Object
12 13 |
# File 'lib/neon/transaction/placebo.rb', line 12 def close end |
#failure ⇒ Object
8 9 10 |
# File 'lib/neon/transaction/placebo.rb', line 8 def failure @success = false end |
#success ⇒ Object
4 5 6 |
# File 'lib/neon/transaction/placebo.rb', line 4 def success @success = true end |
#success? ⇒ Boolean
15 16 17 |
# File 'lib/neon/transaction/placebo.rb', line 15 def success? @success end |