within (DataMapper::Transaction)

    # File lib/dm-core/transaction.rb, line 153
        def within
          unless block_given?
            raise 'No block provided'
          end

          unless @state == :begin
            raise "Illegal state for within: #{@state}"
          end

          @adapters.each do |adapter, state|
            adapter.push_transaction(self)
          end

          begin
            yield self
          ensure
            @adapters.each do |adapter, state|
              adapter.pop_transaction
            end
          end
        end