<?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>abort_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 426</span> 426: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">abort_transaction</span>(<span class="ruby-identifier">name</span> = <span class="ruby-keyword kw">nil</span>) 427: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@__transaction_checkpoint__</span>.<span class="ruby-identifier">nil?</span> 428: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TransactionError</span>, <span class="ruby-constant">Messages</span>[<span class="ruby-identifier">:cannot_abort_no_transaction</span>] 429: <span class="ruby-keyword kw">end</span> 430: 431: <span class="ruby-comment cmt"># Check to see if we are trying to abort a transaction that is</span> 432: <span class="ruby-comment cmt"># outside of the current transaction block. Otherwise, raise</span> 433: <span class="ruby-comment cmt"># TransactionAborted if they are the same.</span> 434: <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> 435: <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> 436: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">nix</span> <span class="ruby-operator"><</span> <span class="ruby-ivar">@__transaction_block__</span> 437: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TransactionError</span>, <span class="ruby-constant">Messages</span>[<span class="ruby-identifier">:cannot_abort_transaction_before_block</span>] 438: <span class="ruby-keyword kw">end</span> 439: 440: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TransactionAborted</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@__transaction_block__</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">nix</span> 441: <span class="ruby-keyword kw">end</span> 442: 443: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TransactionAborted</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@__transaction_block__</span> <span class="ruby-operator">==</span> <span class="ruby-ivar">@__transaction_level__</span> 444: 445: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span>.<span class="ruby-identifier">nil?</span> 446: <span class="ruby-identifier">__abort_transaction</span>(<span class="ruby-identifier">name</span>) 447: <span class="ruby-keyword kw">else</span> 448: <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>) 449: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TransactionError</span>, <span class="ruby-constant">Messages</span>[<span class="ruby-identifier">:cannot_abort_named_transaction</span>] <span class="ruby-operator">%</span> <span class="ruby-identifier">name</span>.<span class="ruby-identifier">inspect</span> 450: <span class="ruby-keyword kw">end</span> 451: <span class="ruby-identifier">__abort_transaction</span>(<span class="ruby-identifier">name</span>) <span class="ruby-keyword kw">while</span> <span class="ruby-ivar">@__transaction_names__</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">name</span>) 452: <span class="ruby-keyword kw">end</span> 453: <span class="ruby-keyword kw">self</span> 454: <span class="ruby-keyword kw">end</span></pre> </body> </html>