Class: Transaction
- Inherits:
-
Object
- Object
- Transaction
- Defined in:
- lib/transaction.rb
Instance Method Summary collapse
- #<<(task) ⇒ Object
-
#initialize ⇒ Transaction
constructor
A new instance of Transaction.
- #perform ⇒ Object
- #tasks ⇒ Object
Constructor Details
#initialize ⇒ Transaction
Returns a new instance of Transaction.
2 3 4 |
# File 'lib/transaction.rb', line 2 def initialize @tasks = [] end |
Instance Method Details
#<<(task) ⇒ Object
6 7 8 |
# File 'lib/transaction.rb', line 6 def <<(task) @tasks << task end |
#perform ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/transaction.rb', line 14 def perform completed_tasks = [] @tasks.each do |task| completed_tasks.unshift task unless task.perform completed_tasks.each &:undo break end end rescue Exception => e completed_tasks.each &:undo raise end |
#tasks ⇒ Object
10 11 12 |
# File 'lib/transaction.rb', line 10 def tasks @tasks end |