document.write('<link rel="stylesheet" href="http://flowcoder.com/stylesheets/pygment_trac.css" />');
document.write('<link rel="stylesheet" href="http://flowcoder.com/stylesheets/embed.css" />');
document.write('<div class="flowcoder_post flowcoder_clearfix">');
document.write('<div class="flowcoder_posttitle"><a href=\"http://flowcoder.com/148\">Base62 encoding in Ruby<\/a></div>');
document.write('<div class="flowcoder_postbody flowcoder_syntax"><div class=\"highlight\"><pre><span class=\"c1\"># Base62 encoding in Ruby<\/span>\n<span class=\"c1\"># Useful for creating tiny url slugs from numeric ids<\/span>\n<span class=\"c1\">#<\/span>\n<span class=\"c1\"># Example:<\/span>\n<span class=\"c1\">#   Base62.encode 1_000_000   # =&gt; &quot;4c92&quot;<\/span>\n<span class=\"k\">module<\/span> <span class=\"nn\">Base62<\/span>\n  <span class=\"no\">CHARS<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"s1\">&#39;0&#39;<\/span><span class=\"o\">.<\/span><span class=\"n\">.<\/span><span class=\"s1\">&#39;9&#39;<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">to_a<\/span> <span class=\"o\">+<\/span> <span class=\"p\">(<\/span><span class=\"s1\">&#39;a&#39;<\/span><span class=\"o\">.<\/span><span class=\"n\">.<\/span><span class=\"s1\">&#39;z&#39;<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">to_a<\/span> <span class=\"o\">+<\/span> <span class=\"p\">(<\/span><span class=\"s1\">&#39;A&#39;<\/span><span class=\"o\">.<\/span><span class=\"n\">.<\/span><span class=\"s1\">&#39;Z&#39;<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">to_a<\/span>\n\n  <span class=\"c1\"># Adapted from http://refactormycode.com/codes/125-base-62-encoding<\/span>\n  <span class=\"k\">def<\/span> <span class=\"nc\">self<\/span><span class=\"o\">.<\/span><span class=\"nf\">encode<\/span><span class=\"p\">(<\/span><span class=\"n\">i<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">return<\/span> <span class=\"s1\">&#39;0&#39;<\/span> <span class=\"k\">if<\/span> <span class=\"n\">i<\/span> <span class=\"o\">==<\/span> <span class=\"mi\">0<\/span>\n    <span class=\"n\">s<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">&#39;&#39;<\/span>\n    <span class=\"k\">while<\/span> <span class=\"n\">i<\/span> <span class=\"o\">&gt;<\/span> <span class=\"mi\">0<\/span>\n      <span class=\"n\">s<\/span> <span class=\"o\">&lt;&lt;<\/span> <span class=\"no\">CHARS<\/span><span class=\"o\">[<\/span><span class=\"n\">i<\/span><span class=\"o\">.<\/span><span class=\"n\">modulo<\/span><span class=\"p\">(<\/span><span class=\"mi\">62<\/span><span class=\"p\">)<\/span><span class=\"o\">]<\/span>\n      <span class=\"n\">i<\/span> <span class=\"o\">/=<\/span> <span class=\"mi\">62<\/span>\n    <span class=\"k\">end<\/span>\n    <span class=\"n\">s<\/span><span class=\"o\">.<\/span><span class=\"n\">reverse!<\/span>\n    <span class=\"n\">s<\/span>\n  <span class=\"k\">end<\/span>\n<span class=\"k\">end<\/span>\n<\/pre><\/div>\n</div>');
document.write('<div class="flowcoder_bottombar flowcoder_clearfix">');
document.write('<div class="flowcoder_postedby">Posted by <a href=\"http://flowcoder.com/gbuesing\">gbuesing<\/a> on <a href=\"http://flowcoder.com/\">Flowcoder<\/a></div>');
document.write('<div class="flowcoder_viewraw"><a href=\"http://flowcoder.com/148.txt\">view raw<\/a></div>');
document.write('</div></div>');