<?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>commit_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 462</span> 462: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">commit_transaction</span>(<span class="ruby-identifier">name</span> = <span class="ruby-keyword kw">nil</span>) 463: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@__transaction_checkpoint__</span>.<span class="ruby-identifier">nil?</span> 464: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TransactionError</span>, <span class="ruby-constant">Messages</span>[<span class="ruby-identifier">:cannot_commit_no_transaction</span>] 465: <span class="ruby-keyword kw">end</span> 466: <span class="ruby-ivar">@__transaction_block__</span> <span class="ruby-operator">||=</span> <span class="ruby-keyword kw">nil</span> 467: 468: <span class="ruby-comment cmt"># Check to see if we are trying to commit a transaction that is</span> 469: <span class="ruby-comment cmt"># outside of the current transaction block. Otherwise, raise</span> 470: <span class="ruby-comment cmt"># TransactionCommitted if they are the same.</span> 471: <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> 472: <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> 473: <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> 474: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TransactionError</span>, <span class="ruby-constant">Messages</span>[<span class="ruby-identifier">:cannot_commit_transaction_before_block</span>] 475: <span class="ruby-keyword kw">end</span> 476: 477: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TransactionCommitted</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> 478: <span class="ruby-keyword kw">end</span> 479: 480: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TransactionCommitted</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> 481: 482: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span>.<span class="ruby-identifier">nil?</span> 483: <span class="ruby-identifier">ss</span> = <span class="ruby-value str">""</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> 484: <span class="ruby-identifier">__commit_transaction</span> 485: <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> 486: <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"><<</span> <span class="ruby-node">"#{'<' * @__transaction_level__} "</span> <span class="ruby-operator"><<</span> 487: <span class="ruby-node">"Commit Transaction#{ss}\n"</span> 488: <span class="ruby-keyword kw">end</span> 489: <span class="ruby-keyword kw">else</span> 490: <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>) 491: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TransactionError</span>, <span class="ruby-constant">Messages</span>[<span class="ruby-identifier">:cannot_commit_named_transaction</span>] <span class="ruby-operator">%</span> <span class="ruby-identifier">name</span>.<span class="ruby-identifier">inspect</span> 492: <span class="ruby-keyword kw">end</span> 493: <span class="ruby-identifier">ss</span> = <span class="ruby-node">"(#{name})"</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> 494: 495: <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> 496: <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> 497: <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"><<</span> <span class="ruby-node">"#{'<' * @__transaction_level__} "</span> <span class="ruby-operator"><<</span> 498: <span class="ruby-node">"Commit Transaction#{ss}\n"</span> 499: <span class="ruby-keyword kw">end</span> 500: <span class="ruby-identifier">__commit_transaction</span> 501: <span class="ruby-keyword kw">end</span> 502: <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> 503: <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"><<</span> <span class="ruby-node">"#{'<' * @__transaction_level__} "</span> <span class="ruby-operator"><<</span> 504: <span class="ruby-node">"Commit Transaction#{ss}\n"</span> 505: <span class="ruby-keyword kw">end</span> 506: <span class="ruby-identifier">__commit_transaction</span> 507: <span class="ruby-keyword kw">end</span> 508: 509: <span class="ruby-keyword kw">self</span> 510: <span class="ruby-keyword kw">end</span></pre> </body> </html>