Refactor
:my
=>
'code'
Codes
Refactorings
Popular
Best
Submit
Spam
Account
Logout
Login
JavaScript doesn't seem to be activated, expect things to be ugly and sloppy!
More Jobs
Recent
Cheap ruby block templating
Bindings on caller
Initial script execution very slow and skewing results
suppress ERB newlines
Keeping the database clean
Arrays, loops, strings...
Similar virtual attributes and their getters/setter
Check type is XML Serializable
Serena Collage slideshow
Shortest regular expression for matching a subdomain.
Popular
Caching Methods
How to find max, min of three numbers?
Similar virtual attributes and their getters/setter
Shortest regular expression for matching a subdomain.
Arrays, loops, strings...
Cheap ruby block templating
Check type is XML Serializable
Bindings on caller
Apache log file sorting
Tab-Switching in jQuery
Pastable version of
Looking for comments on style and clearness
<div style="overflow:auto;border:solid 1px #ccc;background:#000;color:#F8F8F8"> <div class="section"> <pre style="float:left;margin:0 10px;border-right:0;color:#666;">1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86</pre> <pre class="sunburst"><span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">#</span> Ruby Quiz 2 - Scalable LCD Monitor </span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">#</span> Gerard (smeevil) de Brieder - Govannon - 2008-06-12</span> <span style="color:#E28964;">class</span> <span style="text-decoration:underline;">Lcd</span> <span style="color:#E28964;">attr_accessor</span> <span style="color:#3387CC;"><span style="color:#3387CC;">:</span>line</span> <span style="color:#E28964;">def</span> <span style="color:#89BDFF;">initialize</span>(<span style="color:#3E87E3;">numbers<span style="color:#3E87E3;">,</span>scale</span>) total_lines<span style="color:#E28964;">=</span><span style="color:#3387CC;">5</span><span style="color:#E28964;">+</span>((scale<span style="color:#E28964;">-</span><span style="color:#3387CC;">1</span>)<span style="color:#E28964;">*</span><span style="color:#3387CC;">2</span>) <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">#</span>compute the total output lines needed for scale (minimal 5)</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>lines</span><span style="color:#E28964;">=</span><span style="color:#9B859D;">Array</span>.<span style="color:#89BDFF;">new</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">#</span> build and reserve array spaces for the output lines</span> total_lines.<span style="color:#89BDFF;">times</span> <span style="color:#E28964;">do</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>lines</span> <span style="color:#E28964;"><<</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span><span style="color:#65B042;">"</span></span> <span style="color:#E28964;">end</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>scale</span><span style="color:#E28964;">=</span>scale numbers.<span style="color:#89BDFF;">scan</span>(<span style="color:#E9C062;"><span style="color:#E9C062;">/</span></span><span style="color:#E9C062;">.</span><span style="color:#E9C062;"><span style="color:#E9C062;">/</span></span>).<span style="color:#89BDFF;">each</span> { |<span style="color:#3E87E3;">number</span>| <span style="color:#89BDFF;">number_builder</span>(<span style="color:#89BDFF;">get_number_sequence</span>(number)) } <span style="color:#E28964;">end</span> <span style="color:#E28964;">def</span> <span style="color:#89BDFF;">get_number_sequence</span>(<span style="color:#3E87E3;">number</span>) <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">#</span>converts a given number to a sequence used by number_builder</span> <span style="color:#E28964;">case</span> number <span style="color:#E28964;">when</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>0<span style="color:#65B042;">"</span></span> <span style="color:#E28964;">then</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>sequence</span><span style="color:#E28964;">=</span><span style="color:#65B042;"><span style="color:#65B042;">"</span>24142<span style="color:#65B042;">"</span></span> <span style="color:#E28964;">when</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>1<span style="color:#65B042;">"</span></span> <span style="color:#E28964;">then</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>sequence</span><span style="color:#E28964;">=</span><span style="color:#65B042;"><span style="color:#65B042;">"</span>15151<span style="color:#65B042;">"</span></span> <span style="color:#E28964;">when</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>2<span style="color:#65B042;">"</span></span> <span style="color:#E28964;">then</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>sequence</span><span style="color:#E28964;">=</span><span style="color:#65B042;"><span style="color:#65B042;">"</span>25232<span style="color:#65B042;">"</span></span> <span style="color:#E28964;">when</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>3<span style="color:#65B042;">"</span></span> <span style="color:#E28964;">then</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>sequence</span><span style="color:#E28964;">=</span><span style="color:#65B042;"><span style="color:#65B042;">"</span>25252<span style="color:#65B042;">"</span></span> <span style="color:#E28964;">when</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>4<span style="color:#65B042;">"</span></span> <span style="color:#E28964;">then</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>sequence</span><span style="color:#E28964;">=</span><span style="color:#65B042;"><span style="color:#65B042;">"</span>14251<span style="color:#65B042;">"</span></span> <span style="color:#E28964;">when</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>5<span style="color:#65B042;">"</span></span> <span style="color:#E28964;">then</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>sequence</span><span style="color:#E28964;">=</span><span style="color:#65B042;"><span style="color:#65B042;">"</span>23252<span style="color:#65B042;">"</span></span> <span style="color:#E28964;">when</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>6<span style="color:#65B042;">"</span></span> <span style="color:#E28964;">then</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>sequence</span><span style="color:#E28964;">=</span><span style="color:#65B042;"><span style="color:#65B042;">"</span>23242<span style="color:#65B042;">"</span></span> <span style="color:#E28964;">when</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>7<span style="color:#65B042;">"</span></span> <span style="color:#E28964;">then</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>sequence</span><span style="color:#E28964;">=</span><span style="color:#65B042;"><span style="color:#65B042;">"</span>25151<span style="color:#65B042;">"</span></span> <span style="color:#E28964;">when</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>8<span style="color:#65B042;">"</span></span> <span style="color:#E28964;">then</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>sequence</span><span style="color:#E28964;">=</span><span style="color:#65B042;"><span style="color:#65B042;">"</span>24242<span style="color:#65B042;">"</span></span> <span style="color:#E28964;">when</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>9<span style="color:#65B042;">"</span></span> <span style="color:#E28964;">then</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>sequence</span><span style="color:#E28964;">=</span><span style="color:#65B042;"><span style="color:#65B042;">"</span>24252<span style="color:#65B042;">"</span></span> <span style="color:#E28964;">end</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>result</span><span style="color:#E28964;">=</span><span style="color:#65B042;"><span style="color:#65B042;">'</span><span style="color:#65B042;">'</span></span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>sequence</span>.<span style="color:#89BDFF;">scan</span>(<span style="color:#E9C062;"><span style="color:#E9C062;">/</span></span><span style="color:#E9C062;">.</span><span style="color:#E9C062;"><span style="color:#E9C062;">/</span></span>).<span style="color:#89BDFF;">each_with_index</span> { |<span style="color:#3E87E3;">seq</span>,<span style="color:#3E87E3;">index</span>| <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>result</span><span style="color:#E28964;">+=</span>seq <span style="color:#E28964;">unless</span> index<span style="color:#E28964;">%</span><span style="color:#3387CC;">2</span><span style="color:#E28964;">==</span><span style="color:#3387CC;">0</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">#</span>add extra chars for the bigger scale lcd</span> (<span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>scale</span><span style="color:#E28964;">-</span><span style="color:#3387CC;">1</span>).<span style="color:#89BDFF;">times</span>{ <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>result</span><span style="color:#E28964;">+=</span>seq } <span style="color:#E28964;">end</span> } <span style="color:#E28964;">return</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>result</span> <span style="color:#E28964;">end</span> <span style="color:#E28964;">def</span> <span style="color:#89BDFF;">number_builder</span>(<span style="color:#3E87E3;">sequence</span>) <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">#</span>creates an lcd number from a given sequence and adds it to the lines array</span> dashes<span style="color:#E28964;">=</span><span style="color:#65B042;"><span style="color:#65B042;">"</span><span style="color:#65B042;">"</span></span> spaces<span style="color:#E28964;">=</span><span style="color:#65B042;"><span style="color:#65B042;">"</span><span style="color:#65B042;">"</span></span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>scale</span>.<span style="color:#89BDFF;">times</span> <span style="color:#E28964;">do </span><span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">#</span>define spaces and vertical dash size for scale</span> dashes<span style="color:#E28964;">+=</span><span style="color:#65B042;"><span style="color:#65B042;">"</span>-<span style="color:#65B042;">"</span></span> spaces<span style="color:#E28964;">+=</span><span style="color:#65B042;"><span style="color:#65B042;">"</span> <span style="color:#65B042;">"</span></span> <span style="color:#E28964;">end</span> sequence.<span style="color:#89BDFF;">scan</span>(<span style="color:#E9C062;"><span style="color:#E9C062;">/</span></span><span style="color:#E9C062;">.</span><span style="color:#E9C062;"><span style="color:#E9C062;">/</span></span>).<span style="color:#89BDFF;">each_with_index</span> <span style="color:#E28964;">do </span>|<span style="color:#3E87E3;">s</span>,<span style="color:#3E87E3;">i</span>| <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">#</span>create the lcd number </span> <span style="color:#E28964;">case</span> s <span style="color:#E28964;">when</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>1<span style="color:#65B042;">"</span></span> <span style="color:#E28964;">then</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>lines</span>[i]<span style="color:#E28964;">+=</span><span style="color:#65B042;"><span style="color:#65B042;">"</span> <span style="color:#DAEFA3;"><span style="color:#DAEFA3;">#{</span>spaces<span style="color:#DAEFA3;">}</span></span> <span style="color:#65B042;">"</span></span> <span style="color:#E28964;">when</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>2<span style="color:#65B042;">"</span></span> <span style="color:#E28964;">then</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>lines</span>[i]<span style="color:#E28964;">+=</span><span style="color:#65B042;"><span style="color:#65B042;">"</span> <span style="color:#DAEFA3;"><span style="color:#DAEFA3;">#{</span>dashes<span style="color:#DAEFA3;">}</span></span> <span style="color:#65B042;">"</span></span> <span style="color:#E28964;">when</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>3<span style="color:#65B042;">"</span></span> <span style="color:#E28964;">then</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>lines</span>[i]<span style="color:#E28964;">+=</span><span style="color:#65B042;"><span style="color:#65B042;">"</span>|<span style="color:#DAEFA3;"><span style="color:#DAEFA3;">#{</span>spaces<span style="color:#DAEFA3;">}</span></span> <span style="color:#65B042;">"</span></span> <span style="color:#E28964;">when</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>4<span style="color:#65B042;">"</span></span> <span style="color:#E28964;">then</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>lines</span>[i]<span style="color:#E28964;">+=</span><span style="color:#65B042;"><span style="color:#65B042;">"</span>|<span style="color:#DAEFA3;"><span style="color:#DAEFA3;">#{</span>spaces<span style="color:#DAEFA3;">}</span></span>| <span style="color:#65B042;">"</span></span> <span style="color:#E28964;">when</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>5<span style="color:#65B042;">"</span></span> <span style="color:#E28964;">then</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>lines</span>[i]<span style="color:#E28964;">+=</span><span style="color:#65B042;"><span style="color:#65B042;">"</span> <span style="color:#DAEFA3;"><span style="color:#DAEFA3;">#{</span>spaces<span style="color:#DAEFA3;">}</span></span>| <span style="color:#65B042;">"</span></span> <span style="color:#E28964;">end</span> <span style="color:#E28964;">end</span> <span style="color:#E28964;">end</span> <span style="color:#E28964;">def</span> <span style="color:#89BDFF;">print</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>lines</span>.<span style="color:#89BDFF;">each</span> { |<span style="color:#3E87E3;">line</span>| puts line <span style="color:#E28964;">unless</span> line<span style="color:#E28964;">==</span><span style="color:#65B042;"><span style="color:#65B042;">'</span><span style="color:#65B042;">'</span></span>} <span style="color:#E28964;">end</span> <span style="color:#E28964;">end</span> <span style="color:#E28964;">def</span> <span style="color:#89BDFF;">check_arguments</span> <span style="color:#E28964;">if</span> <span style="color:#3E87E3;">ARGV</span>[<span style="color:#3387CC;">0</span>]<span style="color:#E28964;">=~</span><span style="color:#E9C062;"><span style="color:#E9C062;">/</span></span><span style="color:#E9C062;">^<span style="color:#CF7D34;">\d</span>+$</span><span style="color:#E9C062;"><span style="color:#E9C062;">/</span></span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>scale</span><span style="color:#E28964;">=</span><span style="color:#65B042;"><span style="color:#65B042;">"</span>1<span style="color:#65B042;">"</span></span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>number</span><span style="color:#E28964;">=</span><span style="color:#3E87E3;">ARGV</span>[<span style="color:#3387CC;">0</span>] <span style="color:#E28964;">end</span> <span style="color:#E28964;">if</span> <span style="color:#3E87E3;">ARGV</span>[<span style="color:#3387CC;">0</span>]<span style="color:#E28964;">=~</span><span style="color:#E9C062;"><span style="color:#E9C062;">/</span></span><span style="color:#E9C062;">^-s$</span><span style="color:#E9C062;"><span style="color:#E9C062;">/</span></span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>scale</span><span style="color:#E28964;">=</span><span style="color:#3E87E3;">ARGV</span>[<span style="color:#3387CC;">1</span>] <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>number</span><span style="color:#E28964;">=</span><span style="color:#3E87E3;">ARGV</span>[<span style="color:#3387CC;">2</span>] <span style="color:#E28964;">end</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>scale</span> <span style="color:#E28964;">&&</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>number</span> <span style="color:#E28964;">&&</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>number</span><span style="color:#E28964;">=~</span><span style="color:#E9C062;"><span style="color:#E9C062;">/</span></span><span style="color:#E9C062;">^<span style="color:#CF7D34;">\d</span>+$</span><span style="color:#E9C062;"><span style="color:#E9C062;">/</span></span> <span style="color:#E28964;">?</span> <span style="color:#3387CC;">true</span> : <span style="color:#3387CC;">false</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">#</span>are all arguments accepted ?</span> <span style="color:#E28964;">end</span> </pre> </div> </div> <div style="overflow:auto;border:solid 1px #ccc;background:#000;color:#F8F8F8"> <div class="section"> <span style="margin:0;padding:4px 6px;font-size:12px;float:right;">########### MAIN ##############</span> <pre style="float:left;margin:0 10px;border-right:0;color:#666;">1 2 3 4 5 6 7 8 9 10 11 12 13</pre> <pre class="sunburst"> <span style="color:#E28964;">if</span> check_arguments <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>lcd</span><span style="color:#E28964;">=</span><span style="color:#9B859D;">Lcd</span>.<span style="color:#89BDFF;">new</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>number</span>,<span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>scale</span>.<span style="color:#89BDFF;">to_i</span>) <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>lcd</span>.<span style="color:#89BDFF;">print</span> <span style="color:#E28964;">else</span> print <span style="color:#65B042;"><span style="color:#65B042;">"</span></span> <span style="color:#65B042;"> LCD DISPLAY</span> <span style="color:#65B042;"> ===========</span> <span style="color:#65B042;"> usage : quiz2 -s <scale> <number></span> <span style="color:#65B042;"> example : quiz2 -s 2 12345</span> <span style="color:#65B042;"> -s <scale> -s is optional</span> <span style="color:#65B042;"> <span style="color:#65B042;">"</span></span> <span style="color:#E28964;">end</span> </pre> </div> </div> <a href="http://refactormycode.com/codes/327-looking-for-comments-on-style-and-clearness" style="color:#fff" title="As seen on RefactorMyCode.com"><img alt="Small_logo" src="http://refactormycode.com/images/small_logo.gif" style="border:0" /></a>