<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Module: AMQP</title> <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" /> <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" /> <script type="text/javascript" charset="utf-8"> relpath = ''; if (relpath != '') relpath += '/'; </script> <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script> <script type="text/javascript" charset="utf-8" src="js/app.js"></script> </head> <body> <script type="text/javascript" charset="utf-8"> if (window.top.frames.main) document.body.className = 'frames'; </script> <div id="header"> <div id="menu"> <a href="_index.html">Index (A)</a> » <span class="title">AMQP</span> <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div> </div> <div id="search"> <a id="class_list_link" href="#">Class List</a> <a id="method_list_link" href="#">Method List</a> <a id ="file_list_link" href="#">File List</a> </div> <div class="clear"></div> </div> <iframe id="search_frame"></iframe> <div id="content"><h1>Module: AMQP </h1> <dl class="box"> <dt class="r1 last">Defined in:</dt> <dd class="r1 last">lib/amqp/connection.rb<span class="defines">,<br /> lib/amqp/queue.rb,<br /> lib/amqp/client.rb,<br /> lib/amqp/header.rb,<br /> lib/amqp/version.rb,<br /> lib/amqp/channel.rb,<br /> lib/amqp/exchange.rb,<br /> lib/amqp/exceptions.rb,<br /> lib/amqp/basic_client.rb,<br /> lib/amqp/deprecated/rpc.rb,<br /> lib/amqp/deprecated/fork.rb,<br /> lib/amqp/deprecated/logger.rb</span> </dd> </dl> <div class="clear"></div> <h2>Overview</h2><div class="docstring"> <div class="discussion"> <p>Top-level namespace of amqp gem. Please refer to “See also” section below.</p> </div> </div> <div class="tags"> <h3>See Also:</h3> <ul class="see"> <li><span class='object_link'><a href="#connect-class_method" title="AMQP.connect (method)">connect</a></span></li> <li><span class='object_link'><a href="#start-class_method" title="AMQP.start (method)">start</a></span></li> <li><span class='object_link'><a href="AMQP/Channel.html" title="AMQP::Channel (class)">Channel</a></span></li> <li><span class='object_link'><a href="AMQP/Exchange.html" title="AMQP::Exchange (class)">Exchange</a></span></li> <li><span class='object_link'><a href="AMQP/Queue.html" title="AMQP::Queue (class)">Queue</a></span></li> </ul> </div><h2>Defined Under Namespace</h2> <p class="children"> <strong class="modules">Modules:</strong> <span class='object_link'><a href="AMQP/Client.html" title="AMQP::Client (module)">Client</a></span> <strong class="classes">Classes:</strong> <span class='object_link'><a href="AMQP/BasicClient.html" title="AMQP::BasicClient (class)">BasicClient</a></span>, <span class='object_link'><a href="AMQP/Channel.html" title="AMQP::Channel (class)">Channel</a></span>, <span class='object_link'><a href="AMQP/ChannelClosedError.html" title="AMQP::ChannelClosedError (class)">ChannelClosedError</a></span>, <span class='object_link'><a href="AMQP/Error.html" title="AMQP::Error (class)">Error</a></span>, <span class='object_link'><a href="AMQP/Exchange.html" title="AMQP::Exchange (class)">Exchange</a></span>, <span class='object_link'><a href="AMQP/Header.html" title="AMQP::Header (class)">Header</a></span>, <span class='object_link'><a href="AMQP/IncompatibleOptionsError.html" title="AMQP::IncompatibleOptionsError (class)">IncompatibleOptionsError</a></span>, <span class='object_link'><a href="AMQP/Logger.html" title="AMQP::Logger (class)">Logger</a></span>, <span class='object_link'><a href="AMQP/Queue.html" title="AMQP::Queue (class)">Queue</a></span>, <span class='object_link'><a href="AMQP/RPC.html" title="AMQP::RPC (class)">RPC</a></span> </p> <h2>Constant Summary</h2> <dl class="constants"> <dt id="VERSION-constant" class="">VERSION = </dt> <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>0.8.0.pre</span><span class='tstring_end'>'</span></span></pre></dd> </dl> <h2> Class Method Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small> </h2> <ul class="summary"> <li class="public "> <span class="summary_signature"> <a href="#closing%3F-class_method" title="closing? (class method)">+ (Boolean) <strong>closing?</strong> </a> </span> <span class="summary_desc"><div class='inline'><p>Indicates that default connection is closing.</p></div></span> </li> <li class="public deprecated"> <span class="summary_signature"> <a href="#conn-class_method" title="conn (class method)">+ (Object) <strong>conn</strong> </a> </span> <span class="deprecated note title">Deprecated</span> <span class="summary_desc"><strong>Deprecated.</strong> <div class='inline'></div></span> </li> <li class="public deprecated"> <span class="summary_signature"> <a href="#conn%3D-class_method" title="conn= (class method)">+ (Object) <strong>conn=</strong>(value) </a> </span> <span class="deprecated note title">Deprecated</span> <span class="summary_desc"><strong>Deprecated.</strong> <div class='inline'></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#connect-class_method" title="connect (class method)">+ (Object) <strong>connect</strong>(connection_options_or_string = {}, other_options = {}, &block) </a> </span> <span class="summary_desc"><div class='inline'><p>Connects to <span class="caps">AMQP</span> broker and yields connection object to the block as soon as connection is considered open.</p></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#connection-class_method" title="connection (class method)">+ (Object) <strong>connection</strong> </a> </span> <span class="summary_desc"><div class='inline'><p>Default connection.</p></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#connection%3D-class_method" title="connection= (class method)">+ (Object) <strong>connection=</strong>(value) </a> </span> <span class="summary_desc"><div class='inline'></div></span> </li> <li class="public deprecated"> <span class="summary_signature"> <a href="#fork-class_method" title="fork (class method)">+ (Object) <strong>fork</strong>(workers) </a> </span> <span class="deprecated note title">Deprecated</span> <span class="summary_desc"><strong>Deprecated.</strong> <div class='inline'></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#logging-class_method" title="logging (class method)">+ (Object) <strong>logging</strong> </a> </span> <span class="summary_desc"><div class='inline'></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#logging%3D-class_method" title="logging= (class method)">+ (Object) <strong>logging=</strong>(value) </a> </span> <span class="summary_desc"><div class='inline'></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#run-class_method" title="run (class method)">+ (Object) <strong>run</strong>(*args, &block) </a> </span> <span class="summary_desc"><div class='inline'><p>Alias for <span class='object_link'><a href="#start-class_method" title="AMQP.start (method)">start</a></span>.</p></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#settings-class_method" title="settings (class method)">+ (Hash) <strong>settings</strong> </a> </span> <span class="summary_desc"><div class='inline'><p>If default connection is set up, returns settings it was set up with.</p></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#start-class_method" title="start (class method)">+ (Object) <strong>start</strong>(connection_options_or_string = {}, other_options = {}, &block) </a> </span> <span class="summary_desc"><div class='inline'><p>Starts EventMachine event loop unless it is already running and connects to <span class="caps">AMQP</span> broker using <span class='object_link'><a href="#connect-class_method" title="AMQP.connect (method)">connect</a></span>.</p></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#stop-class_method" title="stop (class method)">+ (Object) <strong>stop</strong>(reply_code = 200, reply_text = "Goodbye", &block) </a> </span> <span class="summary_desc"><div class='inline'><p>Properly closes default <span class="caps">AMQP</span> connection and then underlying <span class="caps">TCP</span> connection.</p></div></span> </li> </ul> <div id="class_method_details" class="method_details_list"> <h2>Class Method Details</h2> <div class="method_details first"> <p class="signature first" id="closing?-class_method"> + (<tt>Boolean</tt>) <strong>closing?</strong> </p><div class="docstring"> <div class="discussion"> <p>Indicates that default connection is closing.</p> </div> </div> <div class="tags"> <h3>Returns:</h3> <ul class="return"> <li> <span class='type'>(<tt>Boolean</tt>)</span> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 74 75 76</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/amqp/connection.rb', line 74</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id closing?'>closing?</span> <span class='ivar'>@connection</span><span class='period'>.</span><span class='id closing?'>closing?</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="conn-class_method"> + (<tt>Object</tt>) <strong>conn</strong> </p><div class="docstring"> <div class="discussion"> <div class="note deprecated"><strong>Deprecated.</strong> <div class='inline'></div></div> <p>Alias for <span class='object_link'><a href="#connection-class_method" title="AMQP.connection (method)">connection</a></span></p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 105 106 107 108</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/amqp/connection.rb', line 105</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id conn'>conn</span> <span class='id warn'>warn</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>AMQP.conn will be removed in 1.0. Please use AMQP.connection.</span><span class='tstring_end'>"</span></span> <span class='ivar'>@connection</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="conn=-class_method"> + (<tt>Object</tt>) <strong>conn=</strong>(value) </p><div class="docstring"> <div class="discussion"> <div class="note deprecated"><strong>Deprecated.</strong> <div class='inline'></div></div> <p>Alias for <span class='object_link'><a href="#connection%3D-class_method" title="AMQP.connection= (method)">connection=</a></span></p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 113 114 115 116</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/amqp/connection.rb', line 113</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id conn='>conn=</span><span class='lparen'>(</span><span class='id value'>value</span><span class='rparen'>)</span> <span class='id warn'>warn</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>AMQP.conn= will be removed in 1.0. Please use AMQP.connection=(connection).</span><span class='tstring_end'>"</span></span> <span class='kw'>self</span><span class='period'>.</span><span class='id connection'>connection</span> <span class='op'>=</span> <span class='id value'>value</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="connect-class_method"> <span class="overload">+ (<tt>Object</tt>) <strong>connect</strong>(connection_string, options = {}) </span> <span class="overload">+ (<tt>Object</tt>) <strong>connect</strong>(connection_options) </span> </p><div class="docstring"> <div class="discussion"> <div class="note notetag"> <strong>Note:</strong> <div class='inline'><p>This method assumes that EventMachine even loop is already running. If it is not the case or you are not sure, we recommend you use <span class='object_link'><a href="#start-class_method" title="AMQP.start (method)">start</a></span> instead. It takes exactly the same parameters.</p></div> </div> <p>Connects to <span class="caps">AMQP</span> broker and yields connection object to the block as soon as connection is considered open.</p> <h2>Handling authentication failures</h2> <p><span class="caps">AMQP</span> 0.9.1 specification dictates that broker closes <span class="caps">TCP</span> connection when it detects that authentication has failed. However, broker does exactly the same thing when other connection-level exception occurs so there is no way to guarantee that connection was closed because of authentication failure.</p> <p>Because of that, <span class="caps">AMQP</span> gem follows Java client example and hints at <em>possibility</em> of authentication failure. To handle it, pass a callable object (a proc, a lambda, an instance of a class that responds to #call) with :on_possible_authentication_failure option.</p> </div> </div> <div class="tags"> <div class="examples"> <h3>Examples:</h3> <h4><div class='inline'><p>Using <span class="caps">AMQP</span>.connect with default connection settings</p></div></h4> <pre class="example code"> <span class='const'>AMQP</span><span class='period'>.</span><span class='id connect'>connect</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id connection'>connection</span><span class='op'>|</span> <span class='const'>AMQP</span><span class='op'>::</span><span class='const'>Channel</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='id connection'>connection</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id channel'>channel</span><span class='op'>|</span> <span class='comment'># channel is ready: set up your messaging flow by creating exchanges, </span> <span class='comment'># queues, binding them together and so on. </span> <span class='kw'>end</span> <span class='kw'>end</span></pre> <h4><div class='inline'><p>Using <span class="caps">AMQP</span>.connect to connect to a public RabbitMQ instance with connection settings given as a hash</p></div></h4> <pre class="example code"> <span class='const'>AMQP</span><span class='period'>.</span><span class='id connect'>connect</span><span class='lparen'>(</span><span class='symbol'>:host</span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>dev.rabbitmq.com</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='symbol'>:username</span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>guest</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='symbol'>:password</span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>guest</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id connection'>connection</span><span class='op'>|</span> <span class='const'>AMQP</span><span class='op'>::</span><span class='const'>Channel</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='id connection'>connection</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id channel'>channel</span><span class='op'>|</span> <span class='comment'># ... </span> <span class='kw'>end</span> <span class='kw'>end</span></pre> <h4><div class='inline'><p>Using <span class="caps">AMQP</span>.connect to connect to a public RabbitMQ instance with connection settings given as a <span class="caps">URI</span></p></div></h4> <pre class="example code"> <span class='const'>AMQP</span><span class='period'>.</span><span class='id connect'>connect</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>amqp://guest:guest@dev.rabbitmq.com:5672/</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='symbol'>:on_possible_authentication_failure</span> <span class='op'>=></span> <span class='const'>Proc</span><span class='period'>.</span><span class='id new'>new</span> <span class='lbrace'>{</span> <span class='id puts'>puts</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Looks like authentication has failed</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span> <span class='rbrace'>}</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id connection'>connection</span><span class='op'>|</span> <span class='const'>AMQP</span><span class='op'>::</span><span class='const'>Channel</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='id connection'>connection</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id channel'>channel</span><span class='op'>|</span> <span class='comment'># ... </span> <span class='kw'>end</span> <span class='kw'>end</span></pre> </div> <h3>Overloads:</h3> <ul class="overload"> <li class="overload_item"> <span class="signature">+ (<tt>Object</tt>) <strong>connect</strong>(connection_string, options = {}) </span> <div class="docstring"> <div class="discussion"> <p>Used to pass connection parameters as a connection string</p> </div> </div> <div class="tags"> <h3>Parameters:</h3> <ul class="param"> <li> <span class='type'>(<tt>String</tt>)</span> <span class='name'>:connection_string</span> — <div class='inline'><p><span class="caps">AMQP</span> connection <span class="caps">URI</span>, à la <span class="caps">JDBC</span> connection string. For example: amqp://bus.megacorp.internal:5877/qa</p></div> </li> </ul> </div> </li> <li class="overload_item"> <span class="signature">+ (<tt>Object</tt>) <strong>connect</strong>(connection_options) </span> <div class="docstring"> <div class="discussion"> <p>Used to pass connection options as a Hash.</p> </div> </div> <div class="tags"> <h3>Parameters:</h3> <ul class="param"> <li> <span class='type'>(<tt>Hash</tt>)</span> <span class='name'>:connection_options</span> — <div class='inline'><p><span class="caps">AMQP</span> connection options (:host, :port, :username, :vhost, :password)</p></div> </li> </ul> </div> </li> </ul> <h3>Parameters:</h3> <ul class="param"> <li> <span class='type'>(<tt>Hash</tt>)</span> <span class='name'>connection_options_or_string</span> <em class="default">(defaults to: <tt>{}</tt>)</em> — <div class='inline'><p>a customizable set of options</p></div> </li> </ul> <h3>Options Hash (<tt>connection_options_or_string</tt>):</h3> <ul class="option"> <li> <span class="type">(<tt>String</tt>)</span> <span class="name">:host</span> <span class="default"> — default: <tt>"localhost"</tt> </span> — <div class='inline'><p>Host to connect to.</p></div> </tr> <li> <span class="type">(<tt>Integer</tt>)</span> <span class="name">:port</span> <span class="default"> — default: <tt>5672</tt> </span> — <div class='inline'><p>Port to connect to.</p></div> </tr> <li> <span class="type">(<tt>String</tt>)</span> <span class="name">:vhost</span> <span class="default"> — default: <tt>"/"</tt> </span> — <div class='inline'><p>Virtual host to connect to.</p></div> </tr> <li> <span class="type">(<tt>String</tt>)</span> <span class="name">:username</span> <span class="default"> — default: <tt>"guest"</tt> </span> — <div class='inline'><p>Username to use. Also can be specified as :user.</p></div> </tr> <li> <span class="type">(<tt>String</tt>)</span> <span class="name">:password</span> <span class="default"> — default: <tt>"guest"</tt> </span> — <div class='inline'><p>Password to use. Also can be specified as :pass.</p></div> </tr> <li> <span class="type">(<tt>Hash</tt>)</span> <span class="name">:ssl</span> <span class="default"> </span> — <div class='inline'><p><span class="caps">TLS</span> (<span class="caps">SSL</span>) parameters to use.</p></div> </tr> <li> <span class="type">(<tt>#call</tt>)</span> <span class="name">:on_possible_authentication_failure</span> <span class="default"> </span> — <div class='inline'><p>A callable object that will be run if authentication fails (see Authentication failure section)</p></div> </tr> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 179 180 181</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/amqp/connection.rb', line 179</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id connect'>connect</span><span class='lparen'>(</span><span class='id connection_options_or_string'>connection_options_or_string</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='id other_options'>other_options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&</span><span class='id block'>block</span><span class='rparen'>)</span> <span class='const'>Client</span><span class='period'>.</span><span class='id connect'>connect</span><span class='lparen'>(</span><span class='id connection_options_or_string'>connection_options_or_string</span><span class='comma'>,</span> <span class='id other_options'>other_options</span><span class='comma'>,</span> <span class='op'>&</span><span class='id block'>block</span><span class='rparen'>)</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="connection-class_method"> + (<tt>Object</tt>) <strong>connection</strong> </p><div class="docstring"> <div class="discussion"> <p>Default connection. When you do not pass connection instance to methods like <span class='object_link'><a href="AMQP/Channel.html#initialize-instance_method" title="AMQP::Channel#initialize (method)">AMQP::Channel#initialize</a></span>, <span class="caps">AMQP</span> gem will use this default connection.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 93 94 95</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/amqp/connection.rb', line 93</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id connection'>connection</span> <span class='ivar'>@connection</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="connection=-class_method"> + (<tt>Object</tt>) <strong>connection=</strong>(value) </p><div class="docstring"> <div class="discussion"> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 98 99 100</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/amqp/connection.rb', line 98</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id connection='>connection=</span><span class='lparen'>(</span><span class='id value'>value</span><span class='rparen'>)</span> <span class='ivar'>@connection</span> <span class='op'>=</span> <span class='id value'>value</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="fork-class_method"> + (<tt>Object</tt>) <strong>fork</strong>(workers) </p><div class="docstring"> <div class="discussion"> <div class="note deprecated"><strong>Deprecated.</strong> <div class='inline'></div></div> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 6 7 8 9 10 11 12 13 14</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/amqp/deprecated/fork.rb', line 6</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id fork'>fork</span><span class='lparen'>(</span><span class='id workers'>workers</span><span class='rparen'>)</span> <span class='const'>EM</span><span class='period'>.</span><span class='id fork'>fork</span><span class='lparen'>(</span><span class='id workers'>workers</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='comment'># clean up globals in the fork </span> <span class='const'>Thread</span><span class='period'>.</span><span class='id current'>current</span><span class='lbracket'>[</span><span class='symbol'>:mq</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='const'>AMQP</span><span class='period'>.</span><span class='id instance_variable_set'>instance_variable_set</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>@conn</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='kw'>nil</span><span class='rparen'>)</span> <span class='kw'>yield</span> <span class='kw'>end</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="logging-class_method"> + (<tt>Object</tt>) <strong>logging</strong> </p><div class="docstring"> <div class="discussion"> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 80 81 82</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/amqp/connection.rb', line 80</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id logging'>logging</span> <span class='kw'>self</span><span class='period'>.</span><span class='id settings'>settings</span><span class='lbracket'>[</span><span class='symbol'>:logging</span><span class='rbracket'>]</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="logging=-class_method"> + (<tt>Object</tt>) <strong>logging=</strong>(value) </p><div class="docstring"> <div class="discussion"> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 85 86 87</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/amqp/connection.rb', line 85</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id logging='>logging=</span><span class='lparen'>(</span><span class='id value'>value</span><span class='rparen'>)</span> <span class='kw'>self</span><span class='period'>.</span><span class='id settings'>settings</span><span class='lbracket'>[</span><span class='symbol'>:logging</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='op'>!</span><span class='op'>!</span> <span class='id value'>value</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="run-class_method"> + (<tt>Object</tt>) <strong>run</strong>(*args, &block) </p><div class="docstring"> <div class="discussion"> <p>Alias for <span class='object_link'><a href="#start-class_method" title="AMQP.start (method)">start</a></span></p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 47 48 49</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/amqp/connection.rb', line 47</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id run'>run</span><span class='lparen'>(</span><span class='op'>*</span><span class='id args'>args</span><span class='comma'>,</span> <span class='op'>&</span><span class='id block'>block</span><span class='rparen'>)</span> <span class='kw'>self</span><span class='period'>.</span><span class='id start'>start</span><span class='lparen'>(</span><span class='op'>*</span><span class='id args'>args</span><span class='comma'>,</span> <span class='op'>&</span><span class='id block'>block</span><span class='rparen'>)</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="settings-class_method"> + (<tt>Hash</tt>) <strong>settings</strong> </p><div class="docstring"> <div class="discussion"> <p>If default connection is set up, returns settings it was set up with. Otherwise, returns default settings.</p> </div> </div> <div class="tags"> <h3>Returns:</h3> <ul class="return"> <li> <span class='type'>(<tt>Hash</tt>)</span> — <div class='inline'><p>If default connection is set up, returns settings it was set up with. Otherwise, returns default settings.</p></div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 185 186 187 188 189 190 191</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/amqp/connection.rb', line 185</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id settings'>settings</span> <span class='kw'>if</span> <span class='ivar'>@connection</span> <span class='ivar'>@connection</span><span class='period'>.</span><span class='id settings'>settings</span> <span class='kw'>else</span> <span class='const'>AMQ</span><span class='op'>::</span><span class='const'>Client</span><span class='op'>::</span><span class='const'>Settings</span><span class='period'>.</span><span class='id default'>default</span> <span class='kw'>end</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="start-class_method"> + (<tt>Object</tt>) <strong>start</strong>(connection_options_or_string = {}, other_options = {}, &block) </p><div class="docstring"> <div class="discussion"> <p>Starts EventMachine event loop unless it is already running and connects to <span class="caps">AMQP</span> broker using <span class='object_link'><a href="#connect-class_method" title="AMQP.connect (method)">connect</a></span>. It is generally a good idea to start EventMachine event loop in a separate thread and use <span class='object_link'><a href="#connect-class_method" title="AMQP.connect (method)">connect</a></span>. That said, for applications that do not publish or handle large volumes of data <span class='object_link'><a href="#start-class_method" title="AMQP.start (method)">start</a></span> works very well and it’s use is not discouraged.</p> <p>See <span class='object_link'><a href="#connect-class_method" title="AMQP.connect (method)">connect</a></span> for information about arguments this method takes and information about relevant topics such as authentication failure handling.</p> </div> </div> <div class="tags"> <div class="examples"> <h3>Examples:</h3> <h4><div class='inline'><p>Using <span class="caps">AMQP</span>.start to connect to <span class="caps">AMQP</span> broker, EventMachine loop isn’t yet running</p></div></h4> <pre class="example code"><span class='const'>AMQP</span><span class='period'>.</span><span class='id start'>start</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id connection'>connection</span><span class='op'>|</span> <span class='comment'># default is to connect to localhost:5672, to root ("/") vhost as guest/guest </span> <span class='comment'># this block never exits unless either AMQP.stop or EM.stop </span> <span class='comment'># is called. </span> <span class='const'>AMQP</span><span class='op'>::</span><span class='const'>Channel</span><span class='lparen'>(</span><span class='id connection'>connection</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id channel'>channel</span><span class='op'>|</span> <span class='id channel'>channel</span><span class='period'>.</span><span class='id queue'>queue</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='symbol'>:auto_delete</span> <span class='op'>=></span> <span class='kw'>true</span><span class='rparen'>)</span><span class='period'>.</span><span class='id bind'>bind</span><span class='lparen'>(</span><span class='id channel'>channel</span><span class='period'>.</span><span class='id fanout'>fanout</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>amq.fanout</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='rparen'>)</span><span class='period'>.</span><span class='id subscribe'>subscribe</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id headers'>headers</span><span class='comma'>,</span> <span class='id payload'>payload</span><span class='op'>|</span> <span class='comment'># handle deliveries here </span> <span class='kw'>end</span> <span class='kw'>end</span> <span class='kw'>end</span></pre> </div> </div><table class="source_code"> <tr> <td> <pre class="lines"> 38 39 40 41 42 43</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/amqp/connection.rb', line 38</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id start'>start</span><span class='lparen'>(</span><span class='id connection_options_or_string'>connection_options_or_string</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='id other_options'>other_options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&</span><span class='id block'>block</span><span class='rparen'>)</span> <span class='const'>EM</span><span class='period'>.</span><span class='id run'>run</span> <span class='kw'>do</span> <span class='ivar'>@connection</span> <span class='op'>||=</span> <span class='id connect'>connect</span><span class='lparen'>(</span><span class='id connection_options_or_string'>connection_options_or_string</span><span class='comma'>,</span> <span class='id other_options'>other_options</span><span class='comma'>,</span> <span class='op'>&</span><span class='id block'>block</span><span class='rparen'>)</span> <span class='ivar'>@connection</span> <span class='kw'>end</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <p class="signature " id="stop-class_method"> + (<tt>Object</tt>) <strong>stop</strong>(reply_code = 200, reply_text = "Goodbye", &block) </p><div class="docstring"> <div class="discussion"> <div class="note notetag"> <strong>Note:</strong> <div class='inline'><p>If default connection was never estabilished or is in the closing state already, this method has no effect.</p></div> </div> <p>Properly closes default <span class="caps">AMQP</span> connection and then underlying <span class="caps">TCP</span> connection. Pass it a block if you want a piece of code to be run once default connection is successfully closed.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 58 59 60 61 62 63 64 65 66 67 68</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/amqp/connection.rb', line 58</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id stop'>stop</span><span class='lparen'>(</span><span class='id reply_code'>reply_code</span> <span class='op'>=</span> <span class='int'>200</span><span class='comma'>,</span> <span class='id reply_text'>reply_text</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Goodbye</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='op'>&</span><span class='id block'>block</span><span class='rparen'>)</span> <span class='kw'>return</span> <span class='kw'>if</span> <span class='ivar'>@connection</span><span class='period'>.</span><span class='id nil?'>nil?</span> <span class='op'>||</span> <span class='kw'>self</span><span class='period'>.</span><span class='id closing?'>closing?</span> <span class='const'>EM</span><span class='period'>.</span><span class='id next_tick'>next_tick</span> <span class='kw'>do</span> <span class='id shim'>shim</span> <span class='op'>=</span> <span class='const'>Proc</span><span class='period'>.</span><span class='id new'>new</span> <span class='lbrace'>{</span> <span class='id block'>block</span><span class='period'>.</span><span class='id call'>call</span> <span class='const'>AMQP</span><span class='period'>.</span><span class='id connection'>connection</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='rbrace'>}</span> <span class='ivar'>@connection</span><span class='period'>.</span><span class='id disconnect'>disconnect</span><span class='lparen'>(</span><span class='id reply_code'>reply_code</span><span class='comma'>,</span> <span class='id reply_text'>reply_text</span><span class='comma'>,</span> <span class='op'>&</span><span class='id shim'>shim</span><span class='rparen'>)</span> <span class='kw'>end</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> </div> </div> <div id="footer"> Generated on Sun Apr 17 03:16:05 2011 by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a> 0.6.8 (ruby-1.9.2). </div> </body> </html>