<!DOCTYPE html>
<html> <head> <meta content=“text/html; charset=UTF-8” http-equiv=“Content-Type”>
<title>class UUID - review-1.7.2 Documentation</title>
<link type=“text/css” media=“screen” href=“./rdoc.css” rel=“stylesheet”>
<script type=“text/javascript”>
var rdoc_rel_prefix = "./";
</script>
<script type=“text/javascript” charset=“utf-8” src=“./js/jquery.js”></script> <script type=“text/javascript” charset=“utf-8” src=“./js/navigation.js”></script> <script type=“text/javascript” charset=“utf-8” src=“./js/search_index.js”></script> <script type=“text/javascript” charset=“utf-8” src=“./js/search.js”></script> <script type=“text/javascript” charset=“utf-8” src=“./js/searcher.js”></script> <script type=“text/javascript” charset=“utf-8” src=“./js/darkfish.js”></script>
<body id=“top” class=“class”> <nav id=“metadata”>
<nav id="home-section" class="section"> <h3 class="section-header"> <a href="./index.html">Home</a> <a href="./table_of_contents.html#classes">Classes</a> <a href="./table_of_contents.html#methods">Methods</a> </h3>
</nav>
<nav id="search-section" class="section project-section" class="initially-hidden"> <form action="#" method="get" accept-charset="utf-8"> <h3 class="section-header"> <input type="text" name="search" placeholder="Search" id="search-field" title="Type to search, Up and Down to navigate, Enter to load"> </h3> </form> <ul id="search-results" class="initially-hidden"></ul>
</nav>
<div id="file-metadata"> <nav id="file-list-section" class="section"> <h3 class="section-header">Defined In</h3> <ul> <li>lib/uuid.rb </ul>
</nav>
</div> <div id="class-metadata"> <nav id="parent-class-section" class="section"> <h3 class="section-header">Parent</h3> <p class="link"><a href="Object.html">Object</a>
</nav>
<!-- Included Modules -->
<nav id=“includes-section” class=“section”>
<h3 class="section-header">Included Modules</h3> <ul class="link-list"> <li><span class="include">Comparable</span> </ul>
</nav>
<!-- Method Quickref -->
<nav id=“method-list-section” class=“section”>
<h3 class="section-header">Methods</h3> <ul class="link-list"> <li ><a href="#method-c-create">::create</a> <li ><a href="#method-c-create_md5">::create_md5</a> <li ><a href="#method-c-create_random">::create_random</a> <li ><a href="#method-c-create_sha1">::create_sha1</a> <li ><a href="#method-c-new">::new</a> <li ><a href="#method-c-pack">::pack</a> <li ><a href="#method-c-parse">::parse</a> <li ><a href="#method-i-3C-3D-3E">#<=></a> <li ><a href="#method-i-3D-3D">#==</a> <li ><a href="#method-i-clock">#clock</a> <li ><a href="#method-i-eql-3F">#eql?</a> <li ><a href="#method-i-guid">#guid</a> <li ><a href="#method-i-hash">#hash</a> <li ><a href="#method-i-ieee802">#ieee802</a> <li ><a href="#method-i-inspect">#inspect</a> <li ><a href="#method-i-mac_address">#mac_address</a> <li ><a href="#method-i-node">#node</a> <li ><a href="#method-i-raw_bytes">#raw_bytes</a> <li ><a href="#method-i-time">#time</a> <li ><a href="#method-i-to_i">#to_i</a> <li ><a href="#method-i-to_int">#to_int</a> <li ><a href="#method-i-to_s">#to_s</a> <li ><a href="#method-i-to_uri">#to_uri</a> <li ><a href="#method-i-unpack">#unpack</a> <li ><a href="#method-i-urn">#urn</a> <li ><a href="#method-i-version">#version</a> </ul>
</nav>
</div> <div id="project-metadata"> <nav id="fileindex-section" class="section project-section"> <h3 class="section-header">Pages</h3> <ul> <li class="file"><a href="./ChangeLog.html">ChangeLog</a> <li class="file"><a href="./README_rdoc.html">README</a> </ul>
</nav>
<nav id="classindex-section" class="section project-section"> <h3 class="section-header">Class and Module Index</h3> <ul class="link-list"> <li><a href="./EPUBMaker.html">EPUBMaker</a> <li><a href="./EPUBMaker/Content.html">EPUBMaker::Content</a> <li><a href="./EPUBMaker/EPUBCommon.html">EPUBMaker::EPUBCommon</a> <li><a href="./EPUBMaker/EPUBv2.html">EPUBMaker::EPUBv2</a> <li><a href="./EPUBMaker/EPUBv3.html">EPUBMaker::EPUBv3</a> <li><a href="./EPUBMaker/Producer.html">EPUBMaker::Producer</a> <li><a href="./HTMLLayout.html">HTMLLayout</a> <li><a href="./LineInput.html">LineInput</a> <li><a href="./Object.html">Object</a> <li><a href="./ReVIEW.html">ReVIEW</a> <li><a href="./ReVIEW/ApplicationError.html">ReVIEW::ApplicationError</a> <li><a href="./ReVIEW/Book.html">ReVIEW::Book</a> <li><a href="./ReVIEW/Book/Base.html">ReVIEW::Book::Base</a> <li><a href="./ReVIEW/Book/BibpaperIndex.html">ReVIEW::Book::BibpaperIndex</a> <li><a href="./ReVIEW/Book/Chapter.html">ReVIEW::Book::Chapter</a> <li><a href="./ReVIEW/Book/ChapterIndex.html">ReVIEW::Book::ChapterIndex</a> <li><a href="./ReVIEW/Book/ChapterSet.html">ReVIEW::Book::ChapterSet</a> <li><a href="./ReVIEW/Book/ColumnIndex.html">ReVIEW::Book::ColumnIndex</a> <li><a href="./ReVIEW/Book/Compilable.html">ReVIEW::Book::Compilable</a> <li><a href="./ReVIEW/Book/FootnoteIndex.html">ReVIEW::Book::FootnoteIndex</a> <li><a href="./ReVIEW/Book/FormatRef.html">ReVIEW::Book::FormatRef</a> <li><a href="./ReVIEW/Book/HeadlineIndex.html">ReVIEW::Book::HeadlineIndex</a> <li><a href="./ReVIEW/Book/IconIndex.html">ReVIEW::Book::IconIndex</a> <li><a href="./ReVIEW/Book/ImageFinder.html">ReVIEW::Book::ImageFinder</a> <li><a href="./ReVIEW/Book/ImageIndex.html">ReVIEW::Book::ImageIndex</a> <li><a href="./ReVIEW/Book/ImageIndex/Item.html">ReVIEW::Book::ImageIndex::Item</a> <li><a href="./ReVIEW/Book/IndepImageIndex.html">ReVIEW::Book::IndepImageIndex</a> <li><a href="./ReVIEW/Book/IndepImageIndex/Item.html">ReVIEW::Book::IndepImageIndex::Item</a> <li><a href="./ReVIEW/Book/Index.html">ReVIEW::Book::Index</a> <li><a href="./ReVIEW/Book/ListIndex.html">ReVIEW::Book::ListIndex</a> <li><a href="./ReVIEW/Book/NumberlessImageIndex.html">ReVIEW::Book::NumberlessImageIndex</a> <li><a href="./ReVIEW/Book/NumberlessImageIndex/Item.html">ReVIEW::Book::NumberlessImageIndex::Item</a> <li><a href="./ReVIEW/Book/PageMetric.html">ReVIEW::Book::PageMetric</a> <li><a href="./ReVIEW/Book/Part.html">ReVIEW::Book::Part</a> <li><a href="./ReVIEW/Book/TableIndex.html">ReVIEW::Book::TableIndex</a> <li><a href="./ReVIEW/Book/Volume.html">ReVIEW::Book::Volume</a> <li><a href="./ReVIEW/Builder.html">ReVIEW::Builder</a> <li><a href="./ReVIEW/Catalog.html">ReVIEW::Catalog</a> <li><a href="./ReVIEW/CompileError.html">ReVIEW::CompileError</a> <li><a href="./ReVIEW/Compiler.html">ReVIEW::Compiler</a> <li><a href="./ReVIEW/Compiler/InlineSyntaxElement.html">ReVIEW::Compiler::InlineSyntaxElement</a> <li><a href="./ReVIEW/Compiler/SyntaxElement.html">ReVIEW::Compiler::SyntaxElement</a> <li><a href="./ReVIEW/ConfigError.html">ReVIEW::ConfigError</a> <li><a href="./ReVIEW/Configure.html">ReVIEW::Configure</a> <li><a href="./ReVIEW/EPUBBuilder.html">ReVIEW::EPUBBuilder</a> <li><a href="./ReVIEW/EPUBMaker.html">ReVIEW::EPUBMaker</a> <li><a href="./ReVIEW/EPUBMaker/ReVIEWHeaderListener.html">ReVIEW::EPUBMaker::ReVIEWHeaderListener</a> <li><a href="./ReVIEW/EWBBuilder.html">ReVIEW::EWBBuilder</a> <li><a href="./ReVIEW/Error.html">ReVIEW::Error</a> <li><a href="./ReVIEW/ErrorUtils.html">ReVIEW::ErrorUtils</a> <li><a href="./ReVIEW/FileNotFound.html">ReVIEW::FileNotFound</a> <li><a href="./ReVIEW/HTMLBuilder.html">ReVIEW::HTMLBuilder</a> <li><a href="./ReVIEW/HTMLTOCPrinter.html">ReVIEW::HTMLTOCPrinter</a> <li><a href="./ReVIEW/HTMLToc.html">ReVIEW::HTMLToc</a> <li><a href="./ReVIEW/HTMLUtils.html">ReVIEW::HTMLUtils</a> <li><a href="./ReVIEW/I18n.html">ReVIEW::I18n</a> <li><a href="./ReVIEW/IDGTOCPrinter.html">ReVIEW::IDGTOCPrinter</a> <li><a href="./ReVIEW/IDGXMLBuilder.html">ReVIEW::IDGXMLBuilder</a> <li><a href="./ReVIEW/INAOBuilder.html">ReVIEW::INAOBuilder</a> <li><a href="./ReVIEW/KeyError.html">ReVIEW::KeyError</a> <li><a href="./ReVIEW/LATEXBuilder.html">ReVIEW::LATEXBuilder</a> <li><a href="./ReVIEW/LaTeXIndex.html">ReVIEW::LaTeXIndex</a> <li><a href="./ReVIEW/LaTeXUtils.html">ReVIEW::LaTeXUtils</a> <li><a href="./ReVIEW/LaTeXUtils/NKF.html">ReVIEW::LaTeXUtils::NKF</a> <li><a href="./ReVIEW/Line.html">ReVIEW::Line</a> <li><a href="./ReVIEW/LineInput.html">ReVIEW::LineInput</a> <li><a href="./ReVIEW/Location.html">ReVIEW::Location</a> <li><a href="./ReVIEW/MARKDOWNBuilder.html">ReVIEW::MARKDOWNBuilder</a> <li><a href="./ReVIEW/MakerHelper.html">ReVIEW::MakerHelper</a> <li><a href="./ReVIEW/PDFMaker.html">ReVIEW::PDFMaker</a> <li><a href="./ReVIEW/Preprocessor.html">ReVIEW::Preprocessor</a> <li><a href="./ReVIEW/Preprocessor/Directive.html">ReVIEW::Preprocessor::Directive</a> <li><a href="./ReVIEW/Preprocessor/Strip.html">ReVIEW::Preprocessor::Strip</a> <li><a href="./ReVIEW/Repository.html">ReVIEW::Repository</a> <li><a href="./ReVIEW/SecCounter.html">ReVIEW::SecCounter</a> <li><a href="./ReVIEW/SyntaxError.html">ReVIEW::SyntaxError</a> <li><a href="./ReVIEW/TEXTBuilder.html">ReVIEW::TEXTBuilder</a> <li><a href="./ReVIEW/TOCParser.html">ReVIEW::TOCParser</a> <li><a href="./ReVIEW/TOCParser/Chapter.html">ReVIEW::TOCParser::Chapter</a> <li><a href="./ReVIEW/TOCParser/List.html">ReVIEW::TOCParser::List</a> <li><a href="./ReVIEW/TOCParser/Node.html">ReVIEW::TOCParser::Node</a> <li><a href="./ReVIEW/TOCParser/Paragraph.html">ReVIEW::TOCParser::Paragraph</a> <li><a href="./ReVIEW/TOCParser/Section.html">ReVIEW::TOCParser::Section</a> <li><a href="./ReVIEW/TOCPrinter.html">ReVIEW::TOCPrinter</a> <li><a href="./ReVIEW/TOCRoot.html">ReVIEW::TOCRoot</a> <li><a href="./ReVIEW/TOPBuilder.html">ReVIEW::TOPBuilder</a> <li><a href="./ReVIEW/Template.html">ReVIEW::Template</a> <li><a href="./ReVIEW/TextTOCPrinter.html">ReVIEW::TextTOCPrinter</a> <li><a href="./ReVIEW/TextUtils.html">ReVIEW::TextUtils</a> <li><a href="./ReVIEW/Unfold.html">ReVIEW::Unfold</a> <li><a href="./ReVIEW/WrongInput.html">ReVIEW::WrongInput</a> <li><a href="./String.html">String</a> <li><a href="./UUID.html">UUID</a> </ul>
</nav>
</div>
</nav>
<div id=“documentation”>
<h1 class="class">class UUID</h1> <div id="description" class="description">
<p>Pure ruby <a href=“UUID.html”>UUID</a> generator, which is compatible with RFC4122</p>
</div><!-- description --> <section id="5Buntitled-5D" class="documentation-section"> <!-- Constants --> <section id="constants-list" class="section"> <h3 class="section-header">Constants</h3> <dl> <dt id="NameSpace_DNS">NameSpace_DNS <dd class="description"><p>Pre-defined <a href="UUID.html">UUID</a> Namespaces described in RFC4122
Appendix C.</p>
<dt id="NameSpace_OID">NameSpace_OID <dd class="description"> <dt id="NameSpace_URL">NameSpace_URL <dd class="description"> <dt id="NameSpace_X500">NameSpace_X500 <dd class="description"> <dt id="Nil">Nil <dd class="description"><p>The <a href="UUID.html#Nil">Nil</a> <a href="UUID.html">UUID</a> in RFC4122
Section 4.1.7</p>
<dt id="STATE_FILE">STATE_FILE <dd class="description"> <dt id="UNIXEpoch">UNIXEpoch <dd class="description"><p><a href="UUID.html">UUID</a> epoch is 15th Oct. 1582</p> </dl> </section> <!-- Methods --> <section id="public-class-5Buntitled-5D-method-details" class="method-section section"> <h3 class="section-header">Public Class Methods</h3> <div id="method-c-create" class="method-detail "> <div class="method-heading"> <span class="method-name">create</span><span class="method-args">(clock=nil, time=Time.now, mac_addr=nil)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>create the “version 1” <a href="UUID.html">UUID</a> with current system
clock, current UTC timestamp, and the IEEE 802 address (so-called MAC address).</p>
<p>Speed notice: it's slow. It writes some data into hard drive on every invokation. If you want to speed this up, try remounting tmpdir with a memory based filesystem (such as tmpfs). STILL slow? then no way but rewrite it with c :)</p>
<div class="method-source-code" id="create-source"> <pre><span class="ruby-comment"># File lib/uuid.rb, line 131</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>create</span> <span class=“ruby-identifier”>clock</span>=<span class=“ruby-keyword”>nil</span>, <span class=“ruby-identifier”>time</span>=<span class=“ruby-constant”>Time</span>.<span class=“ruby-identifier”>now</span>, <span class=“ruby-identifier”>mac_addr</span>=<span class=“ruby-keyword”>nil</span>
<span class="ruby-identifier">c</span> = <span class="ruby-identifier">t</span> = <span class="ruby-identifier">m</span> = <span class="ruby-keyword">nil</span> <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">chdir</span> <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">tmpdir</span> <span class="ruby-keyword">do</span> <span class="ruby-keyword">unless</span> <span class="ruby-constant">FileTest</span>.<span class="ruby-identifier">exist?</span> <span class="ruby-constant">STATE_FILE</span> <span class="ruby-keyword">then</span> <span class="ruby-comment"># Generate a pseudo MAC address because we have no pure-ruby way</span> <span class="ruby-comment"># to know the MAC address of the NIC this system uses. Note</span> <span class="ruby-comment"># that cheating with pseudo arresses here is completely legal:</span> <span class="ruby-comment"># see Section 4.5 of RFC4122 for details.</span> <span class="ruby-identifier">sha1</span> = <span class="ruby-constant">Digest</span><span class="ruby-operator">::</span><span class="ruby-constant">SHA1</span>.<span class="ruby-identifier">new</span> <span class="ruby-value">256</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword">do</span> <span class="ruby-identifier">r</span> = [<span class="ruby-identifier">prand</span>].<span class="ruby-identifier">pack</span> <span class="ruby-string">"N"</span> <span class="ruby-identifier">sha1</span>.<span class="ruby-identifier">update</span> <span class="ruby-identifier">r</span> <span class="ruby-keyword">end</span> <span class="ruby-identifier">ary</span> = <span class="ruby-identifier">sha1</span>.<span class="ruby-identifier">digest</span>.<span class="ruby-identifier">bytes</span>.<span class="ruby-identifier">to_a</span> <span class="ruby-identifier">node</span> = <span class="ruby-identifier">ary</span>.<span class="ruby-identifier">last</span> <span class="ruby-value">6</span> <span class="ruby-identifier">node</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">|=</span> <span class="ruby-value">0x01</span> <span class="ruby-comment"># multicast bit</span> <span class="ruby-identifier">node</span> = <span class="ruby-identifier">node</span>.<span class="ruby-identifier">pack</span> <span class="ruby-string">"C*"</span> <span class="ruby-identifier">k</span> = <span class="ruby-identifier">rand</span> <span class="ruby-value">0x40000</span> <span class="ruby-identifier">open</span> <span class="ruby-constant">STATE_FILE</span>, <span class="ruby-string">'w'</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">fp</span><span class="ruby-operator">|</span> <span class="ruby-identifier">fp</span>.<span class="ruby-identifier">flock</span> <span class="ruby-constant">IO</span><span class="ruby-operator">::</span><span class="ruby-constant">LOCK_EX</span> <span class="ruby-identifier">write_state</span> <span class="ruby-identifier">fp</span>, <span class="ruby-identifier">k</span>, <span class="ruby-identifier">node</span> <span class="ruby-identifier">fp</span>.<span class="ruby-identifier">chmod</span> <span class="ruby-value">0o777</span> <span class="ruby-comment"># must be world writable</span> <span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span> <span class="ruby-identifier">open</span> <span class="ruby-constant">STATE_FILE</span>, <span class="ruby-string">'r+'</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">fp</span><span class="ruby-operator">|</span> <span class="ruby-identifier">fp</span>.<span class="ruby-identifier">flock</span> <span class="ruby-constant">IO</span><span class="ruby-operator">::</span><span class="ruby-constant">LOCK_EX</span> <span class="ruby-identifier">c</span>, <span class="ruby-identifier">m</span> = <span class="ruby-identifier">read_state</span> <span class="ruby-identifier">fp</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-comment"># important; increment here</span> <span class="ruby-identifier">write_state</span> <span class="ruby-identifier">fp</span>, <span class="ruby-identifier">c</span>, <span class="ruby-identifier">m</span> <span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span> <span class="ruby-identifier">c</span> = <span class="ruby-identifier">clock</span> <span class="ruby-operator">&</span> <span class="ruby-value">0b11_1111_1111_1111</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">clock</span> <span class="ruby-identifier">m</span> = <span class="ruby-identifier">mac_addr</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">mac_addr</span> <span class="ruby-identifier">time</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">at</span> <span class="ruby-identifier">time</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">time</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Float</span> <span class="ruby-keyword">case</span> <span class="ruby-identifier">time</span> <span class="ruby-keyword">when</span> <span class="ruby-constant">Time</span> <span class="ruby-identifier">t</span> = <span class="ruby-identifier">time</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">*</span> <span class="ruby-value">10_000_000</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">time</span>.<span class="ruby-identifier">tv_usec</span> <span class="ruby-operator">*</span> <span class="ruby-value">10</span> <span class="ruby-operator">+</span> <span class="ruby-constant">UNIXEpoch</span> <span class="ruby-keyword">when</span> <span class="ruby-constant">Integer</span> <span class="ruby-identifier">t</span> = <span class="ruby-identifier">time</span> <span class="ruby-operator">+</span> <span class="ruby-constant">UNIXEpoch</span> <span class="ruby-keyword">else</span> <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-node">"cannot convert ``#{time}'' into Time."</span> <span class="ruby-keyword">end</span> <span class="ruby-identifier">tl</span> = <span class="ruby-identifier">t</span> <span class="ruby-operator">&</span> <span class="ruby-value">0xFFFF_FFFF</span> <span class="ruby-identifier">tm</span> = <span class="ruby-identifier">t</span> <span class="ruby-operator">>></span> <span class="ruby-value">32</span> <span class="ruby-identifier">tm</span> = <span class="ruby-identifier">tm</span> <span class="ruby-operator">&</span> <span class="ruby-value">0xFFFF</span> <span class="ruby-identifier">th</span> = <span class="ruby-identifier">t</span> <span class="ruby-operator">>></span> <span class="ruby-value">48</span> <span class="ruby-identifier">th</span> = <span class="ruby-identifier">th</span> <span class="ruby-operator">&</span> <span class="ruby-value">0b0000_1111_1111_1111</span> <span class="ruby-identifier">th</span> = <span class="ruby-identifier">th</span> <span class="ruby-operator">|</span> <span class="ruby-value">0b0001_0000_0000_0000</span> <span class="ruby-identifier">cl</span> = <span class="ruby-identifier">c</span> <span class="ruby-operator">&</span> <span class="ruby-value">0b0000_0000_1111_1111</span> <span class="ruby-identifier">ch</span> = <span class="ruby-identifier">c</span> <span class="ruby-operator">&</span> <span class="ruby-value">0b0011_1111_0000_0000</span> <span class="ruby-identifier">ch</span> = <span class="ruby-identifier">ch</span> <span class="ruby-operator">>></span> <span class="ruby-value">8</span> <span class="ruby-identifier">ch</span> = <span class="ruby-identifier">ch</span> <span class="ruby-operator">|</span> <span class="ruby-value">0b1000_0000</span> <span class="ruby-identifier">pack</span> <span class="ruby-identifier">tl</span>, <span class="ruby-identifier">tm</span>, <span class="ruby-identifier">th</span>, <span class="ruby-identifier">ch</span>, <span class="ruby-identifier">cl</span>, <span class="ruby-identifier">m</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- create-source --> </div> </div><!-- create-method --> <div id="method-c-create_md5" class="method-detail "> <div class="method-heading"> <span class="method-name">create_md5</span><span class="method-args">(str, namespace)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p><a href="UUID.html">UUID</a> generation using MD5 (for backward compat.)</p> <div class="method-source-code" id="create_md5-source"> <pre><span class="ruby-comment"># File lib/uuid.rb, line 92</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>create_md5</span> <span class=“ruby-identifier”>str</span>, <span class=“ruby-identifier”>namespace</span>
<span class="ruby-identifier">md5</span> = <span class="ruby-constant">Digest</span><span class="ruby-operator">::</span><span class="ruby-constant">MD5</span>.<span class="ruby-identifier">new</span> <span class="ruby-identifier">md5</span>.<span class="ruby-identifier">update</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">raw_bytes</span> <span class="ruby-identifier">md5</span>.<span class="ruby-identifier">update</span> <span class="ruby-identifier">str</span> <span class="ruby-identifier">sum</span> = <span class="ruby-identifier">md5</span>.<span class="ruby-identifier">digest</span> <span class="ruby-identifier">raw</span> = <span class="ruby-identifier">mask</span> <span class="ruby-value">3</span>, <span class="ruby-identifier">sum</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">16</span>] <span class="ruby-identifier">new</span> <span class="ruby-identifier">raw</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- create_md5-source --> </div> </div><!-- create_md5-method --> <div id="method-c-create_random" class="method-detail "> <div class="method-heading"> <span class="method-name">create_random</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p><a href="UUID.html">UUID</a> generation using random-number generator.
From it's random nature, there's no warranty that the created ID is really universaly unique.</p>
<div class="method-source-code" id="create_random-source"> <pre><span class="ruby-comment"># File lib/uuid.rb, line 104</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>create_random</span>
<span class="ruby-identifier">rnd</span> = [<span class="ruby-identifier">prand</span>, <span class="ruby-identifier">prand</span>, <span class="ruby-identifier">prand</span>, <span class="ruby-identifier">prand</span>].<span class="ruby-identifier">pack</span> <span class="ruby-string">"N4"</span> <span class="ruby-identifier">raw</span> = <span class="ruby-identifier">mask</span> <span class="ruby-value">4</span>, <span class="ruby-identifier">rnd</span> <span class="ruby-identifier">new</span> <span class="ruby-identifier">raw</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- create_random-source --> </div> </div><!-- create_random-method --> <div id="method-c-create_sha1" class="method-detail "> <div class="method-heading"> <span class="method-name">create_sha1</span><span class="method-args">(str, namespace)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p><a href="UUID.html">UUID</a> generation using SHA1. Recommended over
create_md5. Namespace object is another <a href=“UUID.html”>UUID</a>, some of them are pre-defined below.</p>
<div class="method-source-code" id="create_sha1-source"> <pre><span class="ruby-comment"># File lib/uuid.rb, line 82</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>create_sha1</span> <span class=“ruby-identifier”>str</span>, <span class=“ruby-identifier”>namespace</span>
<span class="ruby-identifier">sha1</span> = <span class="ruby-constant">Digest</span><span class="ruby-operator">::</span><span class="ruby-constant">SHA1</span>.<span class="ruby-identifier">new</span> <span class="ruby-identifier">sha1</span>.<span class="ruby-identifier">update</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">raw_bytes</span> <span class="ruby-identifier">sha1</span>.<span class="ruby-identifier">update</span> <span class="ruby-identifier">str</span> <span class="ruby-identifier">sum</span> = <span class="ruby-identifier">sha1</span>.<span class="ruby-identifier">digest</span> <span class="ruby-identifier">raw</span> = <span class="ruby-identifier">mask</span> <span class="ruby-value">5</span>, <span class="ruby-identifier">sum</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">15</span>] <span class="ruby-identifier">new</span> <span class="ruby-identifier">raw</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- create_sha1-source --> </div> </div><!-- create_sha1-method --> <div id="method-c-new" class="method-detail "> <div class="method-heading"> <span class="method-name">new</span><span class="method-args">(str)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="new-source"> <pre><span class="ruby-comment"># File lib/uuid.rb, line 37</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>initialize</span> <span class=“ruby-identifier”>str</span>
<span class="ruby-identifier">tmp</span> = <span class="ruby-identifier">str</span>.<span class="ruby-identifier">unpack</span> <span class="ruby-string">"C*"</span> <span class="ruby-ivar">@num</span> = <span class="ruby-identifier">tmp</span>.<span class="ruby-identifier">inject</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">r</span>, <span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">r</span> <span class="ruby-operator">*</span> <span class="ruby-value">256</span> <span class="ruby-operator">|</span> <span class="ruby-identifier">i</span> <span class="ruby-keyword">end</span> <span class="ruby-ivar">@num</span>.<span class="ruby-identifier">freeze</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">freeze</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- new-source --> </div> </div><!-- new-method --> <div id="method-c-pack" class="method-detail "> <div class="method-heading"> <span class="method-name">pack</pan><span class="method-args">(tl, tm, th, ch, cl, n)</span> <span class="method-click-advice">click to toggle source</pan> </div> <div class="method-description"> <p>The 'primitive constructor' of this class Note <a
href=“UUID.html#method-c-pack”>::pack</a> == uuid</p>
<div class="method-source-code" id="pack-source"> <pre><span class="ruby-comment"># File lib/uuid.rb, line 198</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>pack</span> <span class=“ruby-identifier”>tl</span>, <span class=“ruby-identifier”>tm</span>, <span class=“ruby-identifier”>th</span>, <span class=“ruby-identifier”>ch</span>, <span class=“ruby-identifier”>cl</span>, <span class=“ruby-identifier”>n</span>
<span class="ruby-identifier">raw</span> = [<span class="ruby-identifier">tl</span>, <span class="ruby-identifier">tm</span>, <span class="ruby-identifier">th</span>, <span class="ruby-identifier">ch</span>, <span class="ruby-identifier">cl</span>, <span class="ruby-identifier">n</span>].<span class="ruby-identifier">pack</span> <span class="ruby-string">"NnnCCa6"</span> <span class="ruby-identifier">new</span> <span class="ruby-identifier">raw</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- pack-source --> </div> </div><!-- pack-method --> <div id="method-c-parse" class="method-detail "> <div class="method-heading"> <span class="method-name">parse</span><span class="method-args">(obj)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>A simple GUID parser: just ignores unknown characters and convert
hexadecimal dump into 16-octet object.</p>
<div class="method-source-code" id="parse-source"> <pre><span class="ruby-comment"># File lib/uuid.rb, line 189</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>parse</span> <span class=“ruby-identifier”>obj</span>
<span class="ruby-identifier">str</span> = <span class="ruby-identifier">obj</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">sub</span> <span class="ruby-regexp">/\Aurn:uuid:/</span>, <span class="ruby-string">''</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">gsub!</span> <span class="ruby-regexp">/[^0-9A-Fa-f]/</span>, <span class="ruby-string">''</span> <span class="ruby-identifier">raw</span> = [<span class="ruby-identifier">str</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">31</span>]].<span class="ruby-identifier">pack</span> <span class="ruby-string">'H*'</span> <span class="ruby-identifier">new</span> <span class="ruby-identifier">raw</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- parse-source --> </div> </div><!-- parse-method --> </section><!-- public-class-method-details --> <section id="public-instance-5Buntitled-5D-method-details" class="method-section section"> <h3 class="section-header">Public Instance Methods</h3> <div id="method-i-3C-3D-3E" class="method-detail "> <div class="method-heading"> <span class="method-name"><=></span><span class="method-args">(other)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>UUIDs are comparable (don't know what benefits are there, though).</p> <div class="method-source-code" id="3C-3D-3E-source"> <pre><span class="ruby-comment"># File lib/uuid.rb, line 288</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-operator”><=></span> <span class=“ruby-identifier”>other</span>
<span class="ruby-identifier">to_s</span> <span class="ruby-operator"><=></span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">to_s</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- 3C-3D-3E-source --> </div> </div><!-- 3C-3D-3E-method --> <div id="method-i-3D-3D" class="method-detail "> <div class="method-heading"> <span class="method-name">==</span><span class="method-args">(other)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>Two UUIDs are said to be equal if and only if their (byte-order
canonicalized) integer representations are equivallent. Refer RFC4122 for details.</p>
<div class="method-source-code" id="3D-3D-source"> <pre><span class="ruby-comment"># File lib/uuid.rb, line 276</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-operator”>==</span> <span class=“ruby-identifier”>other</span>
<span class="ruby-identifier">to_i</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">to_i</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- 3D-3D-source --> </div> <div class="aliases"> Also aliased as: <a href="UUID.html#method-i-eql-3F">eql?</a> </div> </div><!-- 3D-3D-method --> <div id="method-i-clock" class="method-detail "> <div class="method-heading"> <span class="method-name">clock</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>The clock sequence of this <a href="UUID.html">UUID</a></p> <div class="method-source-code" id="clock-source"> <pre><span class="ruby-comment"># File lib/uuid.rb, line 234</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>clock</span>
<span class="ruby-identifier">a</span> = <span class="ruby-identifier">unpack</span> <span class="ruby-identifier">ch</span> = <span class="ruby-identifier">a</span>[<span class="ruby-value">3</span>] <span class="ruby-operator">&</span> <span class="ruby-value">0b0001_1111</span> <span class="ruby-identifier">cl</span> = <span class="ruby-identifier">a</span>[<span class="ruby-value">4</span>] <span class="ruby-identifier">c</span> = <span class="ruby-identifier">cl</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">ch</span> <span class="ruby-operator"><<</span> <span class="ruby-value">8</span> <span class="ruby-identifier">c</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- clock-source --> </div> </div><!-- clock-method --> <div id="method-i-eql-3F" class="method-detail method-alias"> <div class="method-heading"> <span class="method-name">eql?</span><span class="method-args">(other)</span> </div> <div class="method-description"> </div> <div class="aliases"> Alias for: <a href="UUID.html#method-i-3D-3D">==</a> </div> </div><!-- eql-3F-method --> <div id="method-i-guid" class="method-detail method-alias"> <div class="method-heading"> <span class="method-name">guid</span><span class="method-args">()</span> </div> <div class="method-description"> </div> <div class="aliases"> Alias for: <a href="UUID.html#method-i-to_s">to_s</a> </div> </div><!-- guid-method --> <div id="method-i-hash" class="method-detail "> <div class="method-heading"> <span class="method-name">hash</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>Two identical UUIDs should have same hash</p> <div class="method-source-code" id="hash-source"> <pre><span class="ruby-comment"># File lib/uuid.rb, line 282</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>hash</span>
<span class="ruby-identifier">to_i</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- hash-source --> </div> </div><!-- hash-method --> <div id="method-i-ieee802" class="method-detail method-alias"> <div class="method-heading"> <span class="method-name">ieee802</span><span class="method-args">()</span> </div> <div class="method-description"> </div> <div class="aliases"> Alias for: <a href="UUID.html#method-i-node">node</a> </div> </div><!-- ieee802-method --> <div id="method-i-inspect" class="method-detail method-alias"> <div class="method-heading"> <span class="method-name">inspect</span><span class="method-args">()</span> </div> <div class="method-description"> </div> <div class="aliases"> Alias for: <a href="UUID.html#method-i-to_uri">to_uri</a> </div> </div><!-- inspect-method --> <div id="method-i-mac_address" class="method-detail method-alias"> <div class="method-heading"> <span class="method-name">mac_address</span><span class="method-args">()</span> </div> <div class="method-description"> </div> <div class="aliases"> Alias for: <a href="UUID.html#method-i-node">node</a> </div> </div><!-- mac_address-method --> <div id="method-i-node" class="method-detail "> <div class="method-heading"> <span class="method-name">node</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>The IEEE 802 address in a hexadecimal format</p> <div class="method-source-code" id="node-source"> <pre><span class="ruby-comment"># File lib/uuid.rb, line 244</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>node</span>
<span class="ruby-identifier">m</span> = <span class="ruby-identifier">unpack</span>[<span class="ruby-value">5</span>].<span class="ruby-identifier">unpack</span> <span class="ruby-string">'C*'</span> <span class="ruby-string">'%02x%02x%02x%02x%02x%02x'</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">m</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- node-source --> </div> <div class="aliases"> Also aliased as: <a href="UUID.html#method-i-mac_address">mac_address</a>, <a href="UUID.html#method-i-ieee802">ieee802</a> </div> </div><!-- node-method --> <div id="method-i-raw_bytes" class="method-detail "> <div class="method-heading"> <span class="method-name">raw_bytes</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="raw_bytes-source"> <pre><span class="ruby-comment"># File lib/uuid.rb, line 48</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>raw_bytes</span>
<span class="ruby-identifier">ret</span> = <span class="ruby-constant">String</span>.<span class="ruby-identifier">new</span> <span class="ruby-identifier">tmp</span> = <span class="ruby-ivar">@num</span> <span class="ruby-value">16</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">x</span>, <span class="ruby-identifier">y</span> = <span class="ruby-identifier">tmp</span>.<span class="ruby-identifier">divmod</span> <span class="ruby-value">256</span> <span class="ruby-identifier">ret</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">y</span> <span class="ruby-identifier">tmp</span> = <span class="ruby-identifier">x</span> <span class="ruby-keyword">end</span> <span class="ruby-identifier">ret</span>.<span class="ruby-identifier">reverse!</span> <span class="ruby-identifier">ret</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- raw_bytes-source --> </div> </div><!-- raw_bytes-method --> <div id="method-i-time" class="method-detail "> <div class="method-heading"> <span class="method-name">time</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>The timestamp of this <a href="UUID.html">UUID</a>. Throws RageError if
that time exceeds UNIX time range</p>
<div class="method-source-code" id="time-source"> <pre><span class="ruby-comment"># File lib/uuid.rb, line 212</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>time</span>
<span class="ruby-identifier">a</span> = <span class="ruby-identifier">unpack</span> <span class="ruby-identifier">tl</span> = <span class="ruby-identifier">a</span>[<span class="ruby-value">0</span>] <span class="ruby-identifier">tm</span> = <span class="ruby-identifier">a</span>[<span class="ruby-value">1</span>] <span class="ruby-identifier">th</span> = <span class="ruby-identifier">a</span>[<span class="ruby-value">2</span>] <span class="ruby-operator">&</span> <span class="ruby-value">0x0FFF</span> <span class="ruby-identifier">t</span> = <span class="ruby-identifier">tl</span> <span class="ruby-identifier">t</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">tm</span> <span class="ruby-operator"><<</span> <span class="ruby-value">32</span> <span class="ruby-identifier">t</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">th</span> <span class="ruby-operator"><<</span> <span class="ruby-value">48</span> <span class="ruby-identifier">t</span> <span class="ruby-operator">-=</span> <span class="ruby-constant">UNIXEpoch</span> <span class="ruby-identifier">tv_sec</span> = <span class="ruby-identifier">t</span> <span class="ruby-operator">/</span> <span class="ruby-value">10_000_000</span> <span class="ruby-identifier">t</span> <span class="ruby-operator">-=</span> <span class="ruby-identifier">tv_sec</span> <span class="ruby-operator">*</span> <span class="ruby-value">10_000_000</span> <span class="ruby-identifier">tv_usec</span> = <span class="ruby-identifier">t</span> <span class="ruby-operator">/</span> <span class="ruby-value">10</span> <span class="ruby-constant">Time</span>.<span class="ruby-identifier">at</span> <span class="ruby-identifier">tv_sec</span>, <span class="ruby-identifier">tv_usec</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- time-source --> </div> </div><!-- time-method --> <div id="method-i-to_i" class="method-detail method-alias"> <div class="method-heading"> <span class="method-name">to_i</span><span class="method-args">()</span> </div> <div class="method-description"> </div> <div class="aliases"> Alias for: <a href="UUID.html#method-i-to_int">to_int</a> </div> </div><!-- to_i-method --> <div id="method-i-to_int" class="method-detail "> <div class="method-heading"> <span class="method-name">to_int</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>Convert into 128-bit unsigned integer Typically a Bignum instance, but can
be a Fixnum.</p>
<div class="method-source-code" id="to_int-source"> <pre><span class="ruby-comment"># File lib/uuid.rb, line 268</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>to_int</span>
<span class="ruby-ivar">@num</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- to_int-source --> </div> <div class="aliases"> Also aliased as: <a href="UUID.html#method-i-to_i">to_i</a> </div> </div><!-- to_int-method --> <div id="method-i-to_s" class="method-detail "> <div class="method-heading"> <span class="method-name">to_s</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>Generate the string representation (a.k.a GUID) of this <a
href=“UUID.html”>UUID</a></p>
<div class="method-source-code" id="to_s-source"> <pre><span class="ruby-comment"># File lib/uuid.rb, line 252</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>to_s</span>
<span class="ruby-identifier">a</span> = <span class="ruby-identifier">unpack</span> <span class="ruby-identifier">a</span>[<span class="ruby-value">-1</span>] = <span class="ruby-identifier">mac_address</span> <span class="ruby-string">"%08x-%04x-%04x-%02x%02x-%s"</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">a</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- to_s-source --> </div> <div class="aliases"> Also aliased as: <a href="UUID.html#method-i-guid">guid</a> </div> </div><!-- to_s-method --> <div id="method-i-to_uri" class="method-detail "> <div class="method-heading"> <span class="method-name">to_uri</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>Convert into a RFC4122-comforming URN representation</p> <div class="method-source-code" id="to_uri-source"> <pre><span class="ruby-comment"># File lib/uuid.rb, line 260</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>to_uri</span>
<span class="ruby-string">"urn:uuid:"</span> <span class="ruby-operator">+</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">to_s</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- to_uri-source --> </div> <div class="aliases"> Also aliased as: <a href="UUID.html#method-i-urn">urn</a>, <a href="UUID.html#method-i-inspect">inspect</a> </div> </div><!-- to_uri-method --> <div id="method-i-unpack" class="method-detail "> <div class="method-heading"> <span class="method-name">unpack</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>The 'primitive deconstructor', or the dual to pack. Note <a
href=“UUID.html#method-c-pack”>::pack</a> == uuid</p>
<div class="method-source-code" id="unpack-source"> <pre><span class="ruby-comment"># File lib/uuid.rb, line 206</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>unpack</span>
<span class="ruby-identifier">raw_bytes</span>.<span class="ruby-identifier">unpack</span> <span class="ruby-string">"NnnCCa6"</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- unpack-source --> </div> </div><!-- unpack-method --> <div id="method-i-urn" class="method-detail method-alias"> <div class="method-heading"> <span class="method-name">urn</span><span class="method-args">()</span> </div> <div class="method-description"> </div> <div class="aliases"> Alias for: <a href="UUID.html#method-i-to_uri">to_uri</a> </div> </div><!-- urn-method --> <div id="method-i-version" class="method-detail "> <div class="method-heading"> <span class="method-name">version</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>The version of this <a href="UUID.html">UUID</a></p> <div class="method-source-code" id="version-source"> <pre><span class="ruby-comment"># File lib/uuid.rb, line 228</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>version</span>
<span class="ruby-identifier">v</span> = <span class="ruby-identifier">unpack</span>[<span class="ruby-value">2</span>] <span class="ruby-operator">&</span> <span class="ruby-value">0b1111_0000_0000_0000</span> <span class="ruby-identifier">v</span> <span class="ruby-operator">>></span> <span class="ruby-value">12</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- version-source --> </div> </div><!-- version-method --> </section><!-- public-instance-method-details --> </section><!-- 5Buntitled-5D -->
</div><!– documentation –>
<footer id=“validator-badges”>
<p><a href="http://validator.w3.org/check/referer">[Validate]</a> <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 4.0.0. <p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
</footer>