Sophie

Sophie

distrib > Mandriva > 2008.1 > i586 > by-pkgid > 1323cab6b89f7da46eae4ec745a30cb7 > files > 24

ruby-transaction-simple-1.3.0-2mdv2008.1.noarch.rpm

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>
<head>
  <title>rewind_transaction (Transaction::Simple)</title>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
</head>
<body class="standalone-code">
  <pre>     <span class="ruby-comment cmt"># File lib/transaction/simple.rb, line 376</span>
376:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rewind_transaction</span>(<span class="ruby-identifier">name</span> = <span class="ruby-keyword kw">nil</span>)
377:       <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@__transaction_checkpoint__</span>.<span class="ruby-identifier">nil?</span>
378:         <span class="ruby-identifier">raise</span> <span class="ruby-constant">TransactionError</span>, <span class="ruby-constant">Messages</span>[<span class="ruby-identifier">:cannot_rewind_no_transaction</span>]
379:       <span class="ruby-keyword kw">end</span>
380: 
381:         <span class="ruby-comment cmt"># Check to see if we are trying to rewind a transaction that is</span>
382:         <span class="ruby-comment cmt"># outside of the current transaction block.</span>
383:       <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@__transaction_block__</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">name</span>
384:         <span class="ruby-identifier">nix</span> = <span class="ruby-ivar">@__transaction_names__</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">name</span>) <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
385:         <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">nix</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@__transaction_block__</span>
386:           <span class="ruby-identifier">raise</span> <span class="ruby-constant">TransactionError</span>, <span class="ruby-constant">Messages</span>[<span class="ruby-identifier">:cannot_rewind_transaction_before_block</span>]
387:         <span class="ruby-keyword kw">end</span>
388:       <span class="ruby-keyword kw">end</span>
389: 
390:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span>.<span class="ruby-identifier">nil?</span>
391:         <span class="ruby-identifier">__rewind_this_transaction</span>
392:         <span class="ruby-identifier">ss</span> = <span class="ruby-value str">&quot;&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Transaction</span><span class="ruby-operator">::</span><span class="ruby-constant">Simple</span>.<span class="ruby-identifier">debugging?</span>
393:       <span class="ruby-keyword kw">else</span>
394:         <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@__transaction_names__</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">name</span>)
395:           <span class="ruby-identifier">raise</span> <span class="ruby-constant">TransactionError</span>, <span class="ruby-constant">Messages</span>[<span class="ruby-identifier">:cannot_rewind_named_transaction</span>] <span class="ruby-operator">%</span> <span class="ruby-identifier">name</span>.<span class="ruby-identifier">inspect</span>
396:         <span class="ruby-keyword kw">end</span>
397:         <span class="ruby-identifier">ss</span> = <span class="ruby-node">&quot;(#{name})&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Transaction</span><span class="ruby-operator">::</span><span class="ruby-constant">Simple</span>.<span class="ruby-identifier">debugging?</span>
398: 
399:         <span class="ruby-keyword kw">while</span> <span class="ruby-ivar">@__transaction_names__</span>[<span class="ruby-value">-1</span>] <span class="ruby-operator">!=</span> <span class="ruby-identifier">name</span>
400:           <span class="ruby-ivar">@__transaction_checkpoint__</span> = <span class="ruby-identifier">__rewind_this_transaction</span>
401:           <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Transaction</span><span class="ruby-operator">::</span><span class="ruby-constant">Simple</span>.<span class="ruby-identifier">debugging?</span>
402:             <span class="ruby-constant">Transaction</span><span class="ruby-operator">::</span><span class="ruby-constant">Simple</span>.<span class="ruby-identifier">debug_io</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{'|' * @__transaction_level__} &quot;</span> <span class="ruby-operator">&lt;&lt;</span>
403:               <span class="ruby-node">&quot;Rewind Transaction#{ss}\n&quot;</span>
404:           <span class="ruby-keyword kw">end</span>
405:           <span class="ruby-ivar">@__transaction_level__</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>
406:           <span class="ruby-ivar">@__transaction_names__</span>.<span class="ruby-identifier">pop</span>
407:         <span class="ruby-keyword kw">end</span>
408:         <span class="ruby-identifier">__rewind_this_transaction</span>
409:       <span class="ruby-keyword kw">end</span>
410:       <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Transaction</span><span class="ruby-operator">::</span><span class="ruby-constant">Simple</span>.<span class="ruby-identifier">debugging?</span>
411:         <span class="ruby-constant">Transaction</span><span class="ruby-operator">::</span><span class="ruby-constant">Simple</span>.<span class="ruby-identifier">debug_io</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{'|' * @__transaction_level__} &quot;</span> <span class="ruby-operator">&lt;&lt;</span>
412:           <span class="ruby-node">&quot;Rewind Transaction#{ss}\n&quot;</span>
413:       <span class="ruby-keyword kw">end</span>
414:       <span class="ruby-keyword kw">self</span>
415:     <span class="ruby-keyword kw">end</span></pre>
</body>
</html>