Skip to content

Instantly share code, notes, and snippets.

@joerodriguez
Created March 27, 2014 15:53
Show Gist options
  • Save joerodriguez/9810744 to your computer and use it in GitHub Desktop.
Save joerodriguez/9810744 to your computer and use it in GitHub Desktop.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style>
.AlignLeft { text-align: left; }
.AlignCenter { text-align: center; }
.AlignRight { text-align: right; }
body { font-family: sans-serif; font-size: 11pt; }
td { vertical-align: top; padding-left: 4px; padding-right: 4px; }
tr.SectionGap td { font-size: 4px; border-left: none; border-top: none; border-bottom: 1px solid Black; border-right: 1px solid Black; }
tr.SectionAll td { border-left: none; border-top: none; border-bottom: 1px solid Black; border-right: 1px solid Black; }
tr.SectionBegin td { border-left: none; border-top: none; border-right: 1px solid Black; }
tr.SectionEnd td { border-left: none; border-top: none; border-bottom: 1px solid Black; border-right: 1px solid Black; }
tr.SectionMiddle td { border-left: none; border-top: none; border-right: 1px solid Black; }
tr.SubsectionAll td { border-left: none; border-top: none; border-bottom: 1px solid Gray; border-right: 1px solid Black; }
tr.SubsectionEnd td { border-left: none; border-top: none; border-bottom: 1px solid Gray; border-right: 1px solid Black; }
table.fc { border-top: 1px solid Black; border-left: 1px solid Black; width: 100%; font-family: monospace; font-size: 10pt; }
td.TextItemInsigAdd { color: #000000; background-color: #FFF3EB; }
td.TextItemInsigDel { color: #000000; background-color: #FFF3EB; text-decoration: line-through; }
td.TextItemInsigMod { color: #000000; background-color: #FFF3EB; }
td.TextItemInsigOrphan { color: #000000; background-color: #E9F9F5; }
td.TextItemNum { color: #827357; background-color: #F2F2F2; }
td.TextItemSame { color: #000000; background-color: #FFFFFF; }
td.TextItemSigAdd { color: #000000; background-color: #FFE3E3; }
td.TextItemSigDel { color: #000000; background-color: #FFE3E3; text-decoration: line-through; }
td.TextItemSigMod { color: #000000; background-color: #FFE3E3; }
td.TextItemSigOrphan { color: #000000; background-color: #DCF6F6; }
.TextSegInsigDiff { color: #D58000; }
.TextSegReplacedDiff { color: #D58000; font-style: italic; }
.TextSegSigDiff { color: #FF0000; }
</style>
<title>Text Compare</title>
</head>
<body>
Text Compare<br/>
Produced: 3/27/14 9:47:03 AM<br/>
&nbsp; &nbsp;
<br/>
Mode:&nbsp; All &nbsp;
<br/>
File:&nbsp; &nbsp;
<br/>
<table class="fc" cellspacing="0" cellpadding="0">
<tr class="SectionBegin">
<td class="TextItemSame">#</td>
<td class="AlignCenter">=</td>
<td class="TextItemSame">#</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemSame"># Copyright (C) 2013 Instructure, Inc.</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemSame"># Copyright (C) 2013 Instructure, Inc.</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemSame">#</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemSame">#</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemSame"># This file is part of Canvas.</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemSame"># This file is part of Canvas.</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemSame">#</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemSame">#</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemSame"># Canvas is free software: you can redistribute it and/or modify it under</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemSame"># Canvas is free software: you can redistribute it and/or modify it under</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemSame"># the terms of the GNU Affero General Public License as published by the Free</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemSame"># the terms of the GNU Affero General Public License as published by the Free</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemSame"># Software Foundation, version 3 of the License.</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemSame"># Software Foundation, version 3 of the License.</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemSame">#</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemSame">#</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemSame"># Canvas is distributed in the hope that it will be useful, but WITHOUT ANY</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemSame"># Canvas is distributed in the hope that it will be useful, but WITHOUT ANY</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemSame"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemSame"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemSame"># A PARTICULAR PURPOSE. See the GNU Affero General Public License for more</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemSame"># A PARTICULAR PURPOSE. See the GNU Affero General Public License for more</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemSame"># details.</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemSame"># details.</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemSame">#</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemSame">#</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemSame"># You should have received a copy of the GNU Affero General Public License along</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemSame"># You should have received a copy of the GNU Affero General Public License along</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemSame"># with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemSame"># with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemSame">#</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemSame">#</td>
</tr>
<tr class="SectionEnd">
<td class="TextItemSame">&nbsp;</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemSame">&nbsp;</td>
</tr>
<tr class="SectionBegin">
<td class="TextItemSame">&nbsp;</td>
<td class="AlignCenter">&lt;&gt;</td>
<td class="TextItemSigMod"><span class="TextSegSigDiff">#</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">Public:</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">Error</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">thrown</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">when</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">ReplyToAddress</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">is</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">used</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">with</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">an</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">empty</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">address</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">pool.</span></td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemSame">&nbsp;</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemSigMod"><span class="TextSegSigDiff">class</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">EmptyReplyAddressPool</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">&lt;</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">StandardError;</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">end</span></td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemSigMod"><span class="TextSegSigDiff">module</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">IncomingMail</span></td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemSigMod">&nbsp;</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemInsigMod"><span class="TextSegInsigDiff">&nbsp; </span># Public: Represents a reply-to address for a message.</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod"># Public: Represents a reply-to address for a message.</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemInsigMod"><span class="TextSegInsigDiff">&nbsp; </span>class ReplyToAddress</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">class ReplyToAddress</td>
</tr>
<tr class="SectionEnd">
<td class="TextItemInsigMod">&nbsp;&nbsp;<span class="TextSegInsigDiff">&nbsp; </span>attr_reader :message</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp; attr_reader :message</td>
</tr>
<tr class="SectionAll">
<td class="TextItemSame">&nbsp;</td>
<td class="AlignCenter">=</td>
<td class="TextItemSame">&nbsp;</td>
</tr>
<tr class="SectionBegin">
<td class="TextItemSigMod"><span class="TextSegInsigDiff">&nbsp;&nbsp;&nbsp; </span><span class="TextSegSigDiff">#</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">Public:</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">Error</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">thrown</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">when</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">IncomingMail::ReplyToAddress</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">is</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">used</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">with</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">an</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">empty</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">address</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">pool.</span></td>
<td class="AlignCenter">&lt;&gt;</td>
<td class="TextItemSame">&nbsp;</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemSigMod"><span class="TextSegInsigDiff">&nbsp;&nbsp;&nbsp; </span><span class="TextSegSigDiff">class</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">EmptyReplyAddressPool</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">&lt;</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">StandardError</span></td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemSame">&nbsp;</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemSigMod"><span class="TextSegInsigDiff">&nbsp;&nbsp;&nbsp; </span><span class="TextSegSigDiff">end</span></td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemSame">&nbsp;</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemInsigMod">&nbsp;</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemSame">&nbsp;</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemSigMod">&nbsp;&nbsp;<span class="TextSegInsigDiff">&nbsp; </span># Public: Create a new <span class="TextSegSigDiff">IncomingMail::</span>ReplyToAddress.</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemSigMod">&nbsp; # Public: Create a new ReplyToAddress.</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemInsigMod">&nbsp;&nbsp;<span class="TextSegInsigDiff">&nbsp; </span>#</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp; #</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemInsigMod">&nbsp;&nbsp;<span class="TextSegInsigDiff">&nbsp; </span># message - A Message object.</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp; # message - A Message object.</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemSigMod">&nbsp;&nbsp;<span class="TextSegInsigDiff">&nbsp; </span>def initialize(message<span class="TextSegSigDiff">,</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">encryption_key</span>)</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemSigMod">&nbsp; def initialize(message)</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemInsigMod">&nbsp;&nbsp; &nbsp;<span class="TextSegInsigDiff">&nbsp; </span>@message = message</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp;&nbsp;&nbsp; @message = message</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemSigMod"><span class="TextSegInsigDiff">&nbsp;&nbsp; &nbsp;&nbsp; </span><span class="TextSegSigDiff">@encryption_key</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">=</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">encryption_key</span></td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemSame">&nbsp;</td>
</tr>
<tr class="SectionEnd">
<td class="TextItemInsigMod">&nbsp;&nbsp;<span class="TextSegInsigDiff">&nbsp; </span>end</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp; end</td>
</tr>
<tr class="SectionAll">
<td class="TextItemSame">&nbsp;</td>
<td class="AlignCenter">=</td>
<td class="TextItemSame">&nbsp;</td>
</tr>
<tr class="SectionBegin">
<td class="TextItemInsigMod">&nbsp;&nbsp;<span class="TextSegInsigDiff">&nbsp; </span># Public: Construct a reply-to address.</td>
<td class="AlignCenter">&lt;&gt;</td>
<td class="TextItemInsigMod">&nbsp; # Public: Construct a reply-to address.</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemInsigMod">&nbsp;&nbsp;<span class="TextSegInsigDiff">&nbsp; </span>#</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp; #</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemInsigMod">&nbsp;&nbsp;<span class="TextSegInsigDiff">&nbsp; </span># Returns an email address string.</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp; # Returns an email address string.</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemInsigMod">&nbsp;&nbsp;<span class="TextSegInsigDiff">&nbsp; </span>def address</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp; def address</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemInsigMod">&nbsp;&nbsp; &nbsp;<span class="TextSegInsigDiff">&nbsp; </span>return nil if message.path_type == 'sms'</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp;&nbsp;&nbsp; return nil if message.path_type == 'sms'</td>
</tr>
<tr class="SectionEnd">
<td class="TextItemInsigMod">&nbsp;&nbsp; &nbsp;<span class="TextSegInsigDiff">&nbsp; </span>return message.from if message.context_type == 'ErrorReport'</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp;&nbsp;&nbsp; return message.from if message.context_type == 'ErrorReport'</td>
</tr>
<tr class="SectionAll">
<td class="TextItemSame">&nbsp;</td>
<td class="AlignCenter">=</td>
<td class="TextItemSame">&nbsp;</td>
</tr>
<tr class="SectionBegin">
<td class="TextItemSigMod">&nbsp;&nbsp; &nbsp;<span class="TextSegInsigDiff">&nbsp; </span>address, domain = <span class="TextSegSigDiff">IncomingMail::</span>ReplyToAddress.address_from_pool(message).split('@')</td>
<td class="AlignCenter">&lt;&gt;</td>
<td class="TextItemSigMod">&nbsp;&nbsp;&nbsp; address, domain = ReplyToAddress.address_from_pool(message).split('@')</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemInsigMod">&nbsp;&nbsp; &nbsp;<span class="TextSegInsigDiff">&nbsp; </span>&quot;#{address}+#{secure_id}-#{message.global_id}@#{domain}&quot;</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp;&nbsp;&nbsp; &quot;#{address}+#{secure_id}-#{message.global_id}@#{domain}&quot;</td>
</tr>
<tr class="SectionEnd">
<td class="TextItemInsigMod">&nbsp;&nbsp;<span class="TextSegInsigDiff">&nbsp; </span>end</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp; end</td>
</tr>
<tr class="SectionAll">
<td class="TextItemSame">&nbsp;</td>
<td class="AlignCenter">=</td>
<td class="TextItemSame">&nbsp;</td>
</tr>
<tr class="SectionAll">
<td class="TextItemInsigMod">&nbsp;&nbsp;<span class="TextSegInsigDiff">&nbsp; </span>alias :to_s :address</td>
<td class="AlignCenter">&lt;&gt;</td>
<td class="TextItemInsigMod">&nbsp; alias :to_s :address</td>
</tr>
<tr class="SectionAll">
<td class="TextItemSame">&nbsp;</td>
<td class="AlignCenter">=</td>
<td class="TextItemSame">&nbsp;</td>
</tr>
<tr class="SectionBegin">
<td class="TextItemInsigMod">&nbsp;&nbsp;<span class="TextSegInsigDiff">&nbsp; </span># Public: Generate the unique, secure ID for this address' message.</td>
<td class="AlignCenter">&lt;&gt;</td>
<td class="TextItemInsigMod">&nbsp; # Public: Generate the unique, secure ID for this address' message.</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemInsigMod">&nbsp;&nbsp;<span class="TextSegInsigDiff">&nbsp; </span>#</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp; #</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemInsigMod">&nbsp;&nbsp;<span class="TextSegInsigDiff">&nbsp; </span># Returns a secure ID string.</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp; # Returns a secure ID string.</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemInsigMod">&nbsp;&nbsp;<span class="TextSegInsigDiff">&nbsp; </span>def secure_id</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp; def secure_id</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemSigMod">&nbsp;&nbsp; &nbsp;<span class="TextSegInsigDiff">&nbsp; </span><span class="TextSegSigDiff">Open</span><span class="TextSegSigDiff">SSL</span>::<span class="TextSegSigDiff">HMAC.hexdigest(OpenSSL::Digest::Digest.new('</span>sha1<span class="TextSegSigDiff">'),</span><span class="TextSegInsigDiff"> </span><span class="TextSegSigDiff">@encryption_key,</span><span class="TextSegInsigDiff"> </span>message.global_id.to_s)</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemSigMod">&nbsp;&nbsp;&nbsp; <span class="TextSegSigDiff">Ca</span><span class="TextSegSigDiff">nvas</span>::<span class="TextSegSigDiff">S</span><span class="TextSegSigDiff">ecur</span><span class="TextSegSigDiff">i</span><span class="TextSegSigDiff">ty</span><span class="TextSegSigDiff">.hmac_</span>sha1<span class="TextSegSigDiff">(</span>message.global_id.to_s)</td>
</tr>
<tr class="SectionEnd">
<td class="TextItemInsigMod">&nbsp;&nbsp;<span class="TextSegInsigDiff">&nbsp; </span>end</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp; end</td>
</tr>
<tr class="SectionAll">
<td class="TextItemSame">&nbsp;</td>
<td class="AlignCenter">=</td>
<td class="TextItemSame">&nbsp;</td>
</tr>
<tr class="SectionBegin">
<td class="TextItemInsigMod">&nbsp;&nbsp;<span class="TextSegInsigDiff">&nbsp; </span>class &lt;&lt; self</td>
<td class="AlignCenter">&lt;&gt;</td>
<td class="TextItemInsigMod">&nbsp; class &lt;&lt; self</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemInsigMod">&nbsp;&nbsp; &nbsp;<span class="TextSegInsigDiff">&nbsp; </span># Internal: An array of email addresses to be used in the reply-to field.</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp;&nbsp;&nbsp; # Internal: An array of email addresses to be used in the reply-to field.</td>
</tr>
<tr class="SectionEnd">
<td class="TextItemInsigMod">&nbsp;&nbsp; &nbsp;<span class="TextSegInsigDiff">&nbsp; </span>attr_writer :address_pool</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp;&nbsp;&nbsp; attr_writer :address_pool</td>
</tr>
<tr class="SectionAll">
<td class="TextItemSame">&nbsp;</td>
<td class="AlignCenter">=</td>
<td class="TextItemSame">&nbsp;</td>
</tr>
<tr class="SectionBegin">
<td class="TextItemInsigMod">&nbsp;&nbsp; &nbsp;<span class="TextSegInsigDiff">&nbsp; </span># Public: Return a reply-to address from the class' address pool. Use a</td>
<td class="AlignCenter">&lt;&gt;</td>
<td class="TextItemInsigMod">&nbsp;&nbsp;&nbsp; # Public: Return a reply-to address from the class' address pool. Use a</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemInsigMod">&nbsp;&nbsp; &nbsp;<span class="TextSegInsigDiff">&nbsp; </span># modulo operation w/ the message ID to ensure that the same Reply-To is</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp;&nbsp;&nbsp; # modulo operation w/ the message ID to ensure that the same Reply-To is</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemInsigMod">&nbsp;&nbsp; &nbsp;<span class="TextSegInsigDiff">&nbsp; </span># always used for a given message.</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp;&nbsp;&nbsp; # always used for a given message.</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemInsigMod">&nbsp;&nbsp; &nbsp;<span class="TextSegInsigDiff">&nbsp; </span>#</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp;&nbsp;&nbsp; #</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemInsigMod">&nbsp;&nbsp; &nbsp;<span class="TextSegInsigDiff">&nbsp; </span># message - A message object to construct a reply-to address for.</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp;&nbsp;&nbsp; # message - A message object to construct a reply-to address for.</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemInsigMod">&nbsp;&nbsp; &nbsp;<span class="TextSegInsigDiff">&nbsp; </span>#</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp;&nbsp;&nbsp; #</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemInsigMod">&nbsp;&nbsp; &nbsp;<span class="TextSegInsigDiff">&nbsp; </span># Returns an email address string.</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp;&nbsp;&nbsp; # Returns an email address string.</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemInsigMod">&nbsp;&nbsp; &nbsp;<span class="TextSegInsigDiff">&nbsp; </span>def address_from_pool(message)</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp;&nbsp;&nbsp; def address_from_pool(message)</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemSigMod">&nbsp;&nbsp; &nbsp; &nbsp;<span class="TextSegInsigDiff">&nbsp; </span>raise <span class="TextSegSigDiff">IncomingMail::ReplyToAddress::</span>EmptyReplyAddressPool <span class="TextSegSigDiff">if</span> address_pool.<span class="TextSegSigDiff">emp</span><span class="TextSegSigDiff">ty</span>?</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemSigMod">&nbsp;&nbsp; &nbsp;&nbsp; raise EmptyReplyAddressPool <span class="TextSegSigDiff">unless</span> address_pool.<span class="TextSegSigDiff">present</span>?</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemSigMod">&nbsp;&nbsp; &nbsp; &nbsp;<span class="TextSegInsigDiff">&nbsp; </span>index = if <span class="TextSegSigDiff">!</span>message.id.<span class="TextSegSigDiff">nil</span>?</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemSigMod">&nbsp;&nbsp; &nbsp;&nbsp; index = if message.id.<span class="TextSegSigDiff">present</span>?</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemInsigMod">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="TextSegInsigDiff">&nbsp; </span>message.id % address_pool.length</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; message.id % address_pool.length</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemInsigMod">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="TextSegInsigDiff">&nbsp; </span>else</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; else</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemInsigMod">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="TextSegInsigDiff">&nbsp; </span>rand(address_pool.length)</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; rand(address_pool.length)</td>
</tr>
<tr class="SectionEnd">
<td class="TextItemInsigMod">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="TextSegInsigDiff">&nbsp; </span>end</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; end</td>
</tr>
<tr class="SectionAll">
<td class="TextItemSame">&nbsp;</td>
<td class="AlignCenter">=</td>
<td class="TextItemSame">&nbsp;</td>
</tr>
<tr class="SectionBegin">
<td class="TextItemInsigMod">&nbsp;&nbsp; &nbsp; &nbsp;<span class="TextSegInsigDiff">&nbsp; </span>address_pool[index]</td>
<td class="AlignCenter">&lt;&gt;</td>
<td class="TextItemInsigMod">&nbsp;&nbsp; &nbsp;&nbsp; address_pool[index]</td>
</tr>
<tr class="SectionEnd">
<td class="TextItemInsigMod">&nbsp;&nbsp; &nbsp;<span class="TextSegInsigDiff">&nbsp; </span>end</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp;&nbsp;&nbsp; end</td>
</tr>
<tr class="SectionAll">
<td class="TextItemSame">&nbsp;</td>
<td class="AlignCenter">=</td>
<td class="TextItemSame">&nbsp;</td>
</tr>
<tr class="SectionBegin">
<td class="TextItemInsigMod">&nbsp;&nbsp; &nbsp;<span class="TextSegInsigDiff">&nbsp; </span>private</td>
<td class="AlignCenter">&lt;&gt;</td>
<td class="TextItemInsigMod">&nbsp;&nbsp;&nbsp; private</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemInsigMod">&nbsp;&nbsp; &nbsp;<span class="TextSegInsigDiff">&nbsp; </span># Internal: Array of email addresses to use as Reply-To addresses.</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp;&nbsp;&nbsp; # Internal: Array of email addresses to use as Reply-To addresses.</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemInsigMod">&nbsp;&nbsp; &nbsp;<span class="TextSegInsigDiff">&nbsp; </span>attr_reader :address_pool</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp;&nbsp;&nbsp; attr_reader :address_pool</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemInsigMod">&nbsp;&nbsp;<span class="TextSegInsigDiff">&nbsp; </span>end</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">&nbsp; end</td>
</tr>
<tr class="SectionMiddle">
<td class="TextItemInsigMod"><span class="TextSegInsigDiff">&nbsp; </span>end</td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemInsigMod">end</td>
</tr>
<tr class="SectionEnd">
<td class="TextItemSigMod"><span class="TextSegSigDiff">end</span></td>
<td class="AlignCenter">&nbsp;</td>
<td class="TextItemSame">&nbsp;</td>
</tr>
</table>
<br/>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment