# File lib/dm-core/transaction.rb, line 131 def within raise "No block provided" unless block_given? raise "Illegal state for within: #{@state}" unless @state == :begin @adapters.each do |adapter, state| adapter.push_transaction(self) end begin return yield(self) ensure @adapters.each do |adapter, state| adapter.pop_transaction end end end