File: C:/Ruby27-x64/share/doc/ruby/html/Net/SMTP/Response.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>class Net::SMTP::Response - RDoc Documentation</title>
<script type="text/javascript">
var rdoc_rel_prefix = "../../";
var index_rel_prefix = "../../";
</script>
<script src="../../js/navigation.js" defer></script>
<script src="../../js/search.js" defer></script>
<script src="../../js/search_index.js" defer></script>
<script src="../../js/searcher.js" defer></script>
<script src="../../js/darkfish.js" defer></script>
<link href="../../css/fonts.css" rel="stylesheet">
<link href="../../css/rdoc.css" rel="stylesheet">
<body id="top" role="document" class="class">
<nav role="navigation">
<div id="project-navigation">
<div id="home-section" role="region" title="Quick navigation" class="nav-section">
<h2>
<a href="../../index.html" rel="home">Home</a>
</h2>
<div id="table-of-contents-navigation">
<a href="../../table_of_contents.html#pages">Pages</a>
<a href="../../table_of_contents.html#classes">Classes</a>
<a href="../../table_of_contents.html#methods">Methods</a>
</div>
</div>
<div id="search-section" role="search" class="project-section initially-hidden">
<form action="#" method="get" accept-charset="utf-8">
<div id="search-field-wrapper">
<input id="search-field" role="combobox" aria-label="Search"
aria-autocomplete="list" aria-controls="search-results"
type="text" name="search" placeholder="Search" spellcheck="false"
title="Type to search, Up and Down to navigate, Enter to load">
</div>
<ul id="search-results" aria-label="Search Results"
aria-busy="false" aria-expanded="false"
aria-atomic="false" class="initially-hidden"></ul>
</form>
</div>
</div>
<div id="class-metadata">
<div id="parent-class-section" class="nav-section">
<h3>Parent</h3>
<p class="link"><a href="../../Object.html">Object</a>
</div>
<!-- Method Quickref -->
<div id="method-list-section" class="nav-section">
<h3>Methods</h3>
<ul class="link-list" role="directory">
<li ><a href="#method-c-new">::new</a>
<li ><a href="#method-c-parse">::parse</a>
<li ><a href="#method-i-capabilities">#capabilities</a>
<li ><a href="#method-i-continue-3F">#continue?</a>
<li ><a href="#method-i-cram_md5_challenge">#cram_md5_challenge</a>
<li ><a href="#method-i-exception_class">#exception_class</a>
<li ><a href="#method-i-message">#message</a>
<li ><a href="#method-i-status_type_char">#status_type_char</a>
<li ><a href="#method-i-success-3F">#success?</a>
</ul>
</div>
</div>
</nav>
<main role="main" aria-labelledby="class-Net::SMTP::Response">
<h1 id="class-Net::SMTP::Response" class="class">
class Net::SMTP::Response
</h1>
<section class="description">
<p>This class represents a response received by the <a href="../SMTP.html"><code>SMTP</code></a> server. Instances of this class are created by the <a href="../SMTP.html"><code>SMTP</code></a> class; they should not be directly created by the user. For more information on <a href="../SMTP.html"><code>SMTP</code></a> responses, view <a href="http://tools.ietf.org/html/rfc5321#section-4.2">Section 4.2 of RFC 5321</a></p>
</section>
<section id="5Buntitled-5D" class="documentation-section">
<section class="attribute-method-details" class="method-section">
<header>
<h3>Attributes</h3>
</header>
<div id="attribute-i-status" class="method-detail">
<div class="method-heading attribute-method-heading">
<span class="method-name">status</span><span
class="attribute-access-type">[R]</span>
</div>
<div class="method-description">
<p>The three digit reply code of the <a href="../SMTP.html"><code>SMTP</code></a> response</p>
</div>
</div>
<div id="attribute-i-string" class="method-detail">
<div class="method-heading attribute-method-heading">
<span class="method-name">string</span><span
class="attribute-access-type">[R]</span>
</div>
<div class="method-description">
<p>The human readable reply text of the <a href="../SMTP.html"><code>SMTP</code></a> response</p>
</div>
</div>
</section>
<section id="public-class-5Buntitled-5D-method-details" class="method-section">
<header>
<h3>Public Class Methods</h3>
</header>
<div id="method-c-new" class="method-detail ">
<div class="method-heading">
<span class="method-name">new</span><span
class="method-args">(status, string)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<p>Creates a new instance of the <a href="Response.html"><code>Response</code></a> class and sets the status and string attributes</p>
<div class="method-source-code" id="new-source">
<pre><span class="ruby-comment"># File lib/net/smtp.rb, line 998</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">initialize</span>(<span class="ruby-identifier">status</span>, <span class="ruby-identifier">string</span>)
<span class="ruby-ivar">@status</span> = <span class="ruby-identifier">status</span>
<span class="ruby-ivar">@string</span> = <span class="ruby-identifier">string</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-c-parse" class="method-detail ">
<div class="method-heading">
<span class="method-name">parse</span><span
class="method-args">(str)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<p>Parses the received response and separates the reply code and the human readable reply text</p>
<div class="method-source-code" id="parse-source">
<pre><span class="ruby-comment"># File lib/net/smtp.rb, line 992</span>
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">parse</span>(<span class="ruby-identifier">str</span>)
<span class="ruby-identifier">new</span>(<span class="ruby-identifier">str</span>[<span class="ruby-value">0</span>,<span class="ruby-value">3</span>], <span class="ruby-identifier">str</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
</section>
<section id="public-instance-5Buntitled-5D-method-details" class="method-section">
<header>
<h3>Public Instance Methods</h3>
</header>
<div id="method-i-capabilities" class="method-detail ">
<div class="method-heading">
<span class="method-name">capabilities</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<p>Returns a hash of the human readable reply text in the response if it is multiple lines. It does not return the first line. The key of the hash is the first word the value of the hash is an array with each word thereafter being a value in the array</p>
<div class="method-source-code" id="capabilities-source">
<pre><span class="ruby-comment"># File lib/net/smtp.rb, line 1041</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">capabilities</span>
<span class="ruby-keyword">return</span> {} <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@string</span>[<span class="ruby-value">3</span>, <span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-string">'-'</span>
<span class="ruby-identifier">h</span> = {}
<span class="ruby-ivar">@string</span>.<span class="ruby-identifier">lines</span>.<span class="ruby-identifier">drop</span>(<span class="ruby-value">1</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
<span class="ruby-identifier">k</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">v</span> = <span class="ruby-identifier">line</span>[<span class="ruby-value">4</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>].<span class="ruby-identifier">chomp</span>.<span class="ruby-identifier">split</span>
<span class="ruby-identifier">h</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">v</span>
<span class="ruby-keyword">end</span>
<span class="ruby-identifier">h</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-continue-3F" class="method-detail ">
<div class="method-heading">
<span class="method-name">continue?</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<p>Determines whether the response received was a Positive Intermediate reply (3xx reply code)</p>
<div class="method-source-code" id="continue-3F-source">
<pre><span class="ruby-comment"># File lib/net/smtp.rb, line 1022</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">continue?</span>
<span class="ruby-identifier">status_type_char</span>() <span class="ruby-operator">==</span> <span class="ruby-string">'3'</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-cram_md5_challenge" class="method-detail ">
<div class="method-heading">
<span class="method-name">cram_md5_challenge</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<p>Creates a CRAM-MD5 challenge. You can view more information on CRAM-MD5 on Wikipedia: <a href="https://en.wikipedia.org/wiki/CRAM-MD5">en.wikipedia.org/wiki/CRAM-MD5</a></p>
<div class="method-source-code" id="cram_md5_challenge-source">
<pre><span class="ruby-comment"># File lib/net/smtp.rb, line 1033</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">cram_md5_challenge</span>
<span class="ruby-ivar">@string</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp">/ /</span>)[<span class="ruby-value">1</span>].<span class="ruby-identifier">unpack1</span>(<span class="ruby-string">'m'</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-exception_class" class="method-detail ">
<div class="method-heading">
<span class="method-name">exception_class</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<p>Determines whether there was an error and raises the appropriate error based on the reply code of the response</p>
<div class="method-source-code" id="exception_class-source">
<pre><span class="ruby-comment"># File lib/net/smtp.rb, line 1053</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">exception_class</span>
<span class="ruby-keyword">case</span> <span class="ruby-ivar">@status</span>
<span class="ruby-keyword">when</span> <span class="ruby-regexp">/\A4/</span> <span class="ruby-keyword">then</span> <span class="ruby-constant">SMTPServerBusy</span>
<span class="ruby-keyword">when</span> <span class="ruby-regexp">/\A50/</span> <span class="ruby-keyword">then</span> <span class="ruby-constant">SMTPSyntaxError</span>
<span class="ruby-keyword">when</span> <span class="ruby-regexp">/\A53/</span> <span class="ruby-keyword">then</span> <span class="ruby-constant">SMTPAuthenticationError</span>
<span class="ruby-keyword">when</span> <span class="ruby-regexp">/\A5/</span> <span class="ruby-keyword">then</span> <span class="ruby-constant">SMTPFatalError</span>
<span class="ruby-keyword">else</span> <span class="ruby-constant">SMTPUnknownError</span>
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-message" class="method-detail ">
<div class="method-heading">
<span class="method-name">message</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<p>The first line of the human readable reply text</p>
<div class="method-source-code" id="message-source">
<pre><span class="ruby-comment"># File lib/net/smtp.rb, line 1027</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">message</span>
<span class="ruby-ivar">@string</span>.<span class="ruby-identifier">lines</span>.<span class="ruby-identifier">first</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-status_type_char" class="method-detail ">
<div class="method-heading">
<span class="method-name">status_type_char</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<p>Takes the first digit of the reply code to determine the status type</p>
<div class="method-source-code" id="status_type_char-source">
<pre><span class="ruby-comment"># File lib/net/smtp.rb, line 1010</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">status_type_char</span>
<span class="ruby-ivar">@status</span>[<span class="ruby-value">0</span>, <span class="ruby-value">1</span>]
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-success-3F" class="method-detail ">
<div class="method-heading">
<span class="method-name">success?</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<p>Determines whether the response received was a Positive Completion reply (2xx reply code)</p>
<div class="method-source-code" id="success-3F-source">
<pre><span class="ruby-comment"># File lib/net/smtp.rb, line 1016</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">success?</span>
<span class="ruby-identifier">status_type_char</span>() <span class="ruby-operator">==</span> <span class="ruby-string">'2'</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
</section>
</section>
</main>
<footer id="validator-badges" role="contentinfo">
<p><a href="https://validator.w3.org/check/referer">Validate</a>
<p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.2.1.1.
<p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
</footer>