<?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>Module: Random::String::Self</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" /> <script language="JavaScript" type="text/javascript"> // <![CDATA[ function toggleSource( id ) { var elem var link if( document.getElementById ) { elem = document.getElementById( id ) link = document.getElementById( "l_" + id ) } else if ( document.all ) { elem = eval( "document.all." + id ) link = eval( "document.all.l_" + id ) } else return false; if( elem.style.display == "block" ) { elem.style.display = "none" link.innerHTML = "+" } else { elem.style.display = "block" link.innerHTML = "-" } } function openCode( url ) { window.open( url, "SOURCE_CODE", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=480,width=750" ).focus(); } // ]]> </script> </head> <body> <table width="100%" border='0' cellpadding='0' cellspacing='0' class='banner'><tr> <td class="file-title"><span class="file-title-prefix">Module</span><br />Random::String::Self</td> <td align="right"> <table cellspacing="0" cellpadding="2"> <tr valign="top"> <td>In:</td> <td> <a href="../../../files/lib/more/facets/random_rb.html">lib/more/facets/random.rb</a> </td> </tr> </table> </td> </tr> </table> <!-- banner header --> <div id="bodyContent"> <div id="content"> <div class="description"><p> Class-level methods. </p> </div> <div class="sectiontitle">Methods</div> <span style="padding-right: 5px;"><a href="#M000823">rand_letter</a></span> <span style="padding-right: 5px;"><a href="#M000822">random</a></span> <div class="sectiontitle">Public Instance methods</div> <div class="method"> <div class="title"> <a name="M000823"></a><b>rand_letter</b>() </div> <div class="description"> <p> <a href="../../Module.html">Module</a> method to generate a <a href="Self.html#M000822">random</a> letter. </p> <pre> String::Random.rand_letter #=> "q" String::Random.rand_letter #=> "r" String::Random.rand_letter #=> "a" </pre> </div> <div class="sourcecode"> <p class="source-link">[ <a href="javascript:toggleSource('M000823_source')" id="l_M000823_source">+</a> ]</p> <div id="M000823_source" class="dyn-source"> <pre> <span class="ruby-comment cmt"># File lib/more/facets/random.rb, line 355</span> <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rand_letter</span> (<span class="ruby-constant">Random</span>.<span class="ruby-identifier">number</span>(<span class="ruby-value">26</span>) <span class="ruby-operator">+</span> (<span class="ruby-constant">Random</span>.<span class="ruby-identifier">number</span>(<span class="ruby-value">2</span>) <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> <span class="ruby-value">65</span> <span class="ruby-operator">:</span> <span class="ruby-value">97</span>) ).<span class="ruby-identifier">chr</span> <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div class="method"> <div class="title"> <a name="M000822"></a><b>random</b>(max_length = 8, char_re = /[\w\d]/) </div> <div class="description"> <p> Returns a randomly generated string. One possible use is password initialization. Takes a max legnth of characters (default 8) and an optional valid char Regexp (default /\w\d/). </p> </div> <div class="sourcecode"> <p class="source-link">[ <a href="javascript:toggleSource('M000822_source')" id="l_M000822_source">+</a> ]</p> <div id="M000822_source" class="dyn-source"> <pre> <span class="ruby-comment cmt"># File lib/more/facets/random.rb, line 336</span> <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">random</span>(<span class="ruby-identifier">max_length</span> = <span class="ruby-value">8</span>, <span class="ruby-identifier">char_re</span> = <span class="ruby-regexp re">/[\w\d]/</span>) <span class="ruby-comment cmt"># gmosx: this is a nice example of input parameter checking.</span> <span class="ruby-comment cmt"># this is NOT a real time called method so we can add this</span> <span class="ruby-comment cmt"># check. Congrats to the author.</span> <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'char_re must be a regular expression!'</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">char_re</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Regexp</span>) <span class="ruby-identifier">string</span> = <span class="ruby-value str">""</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">string</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator"><</span> <span class="ruby-identifier">max_length</span> <span class="ruby-identifier">ch</span> = <span class="ruby-constant">Random</span>.<span class="ruby-identifier">number</span>(<span class="ruby-value">255</span>).<span class="ruby-identifier">chr</span> <span class="ruby-identifier">string</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">ch</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ch</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">char_re</span> <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">string</span> <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> </div> </div> </body> </html>