shenanigans 1.0.4 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/doc/Array.html +3 -1
- data/doc/Fixnum.html +189 -0
- data/doc/Hash.html +2 -0
- data/doc/Kernel.html +2 -0
- data/doc/Object.html +12 -10
- data/doc/README_rdoc.html +2 -0
- data/doc/created.rid +7 -5
- data/doc/index.html +2 -0
- data/doc/js/search_index.js +1 -1
- data/doc/table_of_contents.html +6 -1
- data/lib/shenanigans.rb +1 -0
- data/lib/shenanigans/array/caret.rb +1 -1
- data/lib/shenanigans/fixnum.rb +1 -0
- data/lib/shenanigans/fixnum/string_length.rb +14 -0
- data/test/fixnum/test_string_length.rb +16 -0
- metadata +6 -3
- data/lib/shenanigans/shenanigans-0.0.1.gem +0 -0
data/doc/Array.html
CHANGED
@@ -101,6 +101,8 @@
|
|
101
101
|
|
102
102
|
<li><a href="./Array.html">Array</a>
|
103
103
|
|
104
|
+
<li><a href="./Fixnum.html">Fixnum</a>
|
105
|
+
|
104
106
|
<li><a href="./Hash.html">Hash</a>
|
105
107
|
|
106
108
|
<li><a href="./Kernel.html">Kernel</a>
|
@@ -160,7 +162,7 @@
|
|
160
162
|
<div class="method-source-code" id="5E-source">
|
161
163
|
<pre><span class="ruby-comment"># File lib/shenanigans/array/caret.rb, line 5</span>
|
162
164
|
<span class="ruby-keyword">def</span> <span class="ruby-operator">^</span>(<span class="ruby-identifier">other</span>)
|
163
|
-
(<span class="ruby-keyword">self</span> <span class="ruby-operator"
|
165
|
+
(<span class="ruby-keyword">self</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">other</span>) <span class="ruby-operator">|</span> (<span class="ruby-identifier">other</span> <span class="ruby-operator">-</span> <span class="ruby-keyword">self</span>)
|
164
166
|
<span class="ruby-keyword">end</span></pre>
|
165
167
|
</div><!-- 5E-source -->
|
166
168
|
|
data/doc/Fixnum.html
ADDED
@@ -0,0 +1,189 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
|
3
|
+
<html>
|
4
|
+
<head>
|
5
|
+
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
|
6
|
+
|
7
|
+
<title>class Fixnum - Shenanigans</title>
|
8
|
+
|
9
|
+
<link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet">
|
10
|
+
|
11
|
+
<script type="text/javascript">
|
12
|
+
var rdoc_rel_prefix = "./";
|
13
|
+
</script>
|
14
|
+
|
15
|
+
<script type="text/javascript" charset="utf-8" src="./js/jquery.js"></script>
|
16
|
+
<script type="text/javascript" charset="utf-8" src="./js/navigation.js"></script>
|
17
|
+
<script type="text/javascript" charset="utf-8" src="./js/search_index.js"></script>
|
18
|
+
<script type="text/javascript" charset="utf-8" src="./js/search.js"></script>
|
19
|
+
<script type="text/javascript" charset="utf-8" src="./js/searcher.js"></script>
|
20
|
+
<script type="text/javascript" charset="utf-8" src="./js/darkfish.js"></script>
|
21
|
+
|
22
|
+
|
23
|
+
<body id="top" class="class">
|
24
|
+
<nav id="metadata">
|
25
|
+
<nav id="home-section" class="section">
|
26
|
+
<h3 class="section-header">
|
27
|
+
<a href="./index.html">Home</a>
|
28
|
+
<a href="./table_of_contents.html#classes">Classes</a>
|
29
|
+
<a href="./table_of_contents.html#methods">Methods</a>
|
30
|
+
</h3>
|
31
|
+
</nav>
|
32
|
+
|
33
|
+
|
34
|
+
<nav id="search-section" class="section project-section" class="initially-hidden">
|
35
|
+
<form action="#" method="get" accept-charset="utf-8">
|
36
|
+
<h3 class="section-header">
|
37
|
+
<input type="text" name="search" placeholder="Search" id="search-field"
|
38
|
+
title="Type to search, Up and Down to navigate, Enter to load">
|
39
|
+
</h3>
|
40
|
+
</form>
|
41
|
+
|
42
|
+
<ul id="search-results" class="initially-hidden"></ul>
|
43
|
+
</nav>
|
44
|
+
|
45
|
+
|
46
|
+
<div id="file-metadata">
|
47
|
+
<nav id="file-list-section" class="section">
|
48
|
+
<h3 class="section-header">Defined In</h3>
|
49
|
+
<ul>
|
50
|
+
<li>lib/shenanigans/fixnum/string_length.rb
|
51
|
+
</ul>
|
52
|
+
</nav>
|
53
|
+
|
54
|
+
|
55
|
+
</div>
|
56
|
+
|
57
|
+
<div id="class-metadata">
|
58
|
+
|
59
|
+
<nav id="parent-class-section" class="section">
|
60
|
+
<h3 class="section-header">Parent</h3>
|
61
|
+
|
62
|
+
<p class="link"><a href="Object.html">Object</a>
|
63
|
+
|
64
|
+
</nav>
|
65
|
+
|
66
|
+
|
67
|
+
<!-- Method Quickref -->
|
68
|
+
<nav id="method-list-section" class="section">
|
69
|
+
<h3 class="section-header">Methods</h3>
|
70
|
+
|
71
|
+
<ul class="link-list">
|
72
|
+
|
73
|
+
<li><a href="#method-i-string_length">#string_length</a>
|
74
|
+
|
75
|
+
</ul>
|
76
|
+
</nav>
|
77
|
+
|
78
|
+
</div>
|
79
|
+
|
80
|
+
<div id="project-metadata">
|
81
|
+
<nav id="fileindex-section" class="section project-section">
|
82
|
+
<h3 class="section-header">Pages</h3>
|
83
|
+
|
84
|
+
<ul>
|
85
|
+
|
86
|
+
<li class="file"><a href="./README_rdoc.html">README</a>
|
87
|
+
|
88
|
+
</ul>
|
89
|
+
</nav>
|
90
|
+
|
91
|
+
<nav id="classindex-section" class="section project-section">
|
92
|
+
<h3 class="section-header">Class and Module Index</h3>
|
93
|
+
|
94
|
+
<ul class="link-list">
|
95
|
+
|
96
|
+
<li><a href="./Array.html">Array</a>
|
97
|
+
|
98
|
+
<li><a href="./Fixnum.html">Fixnum</a>
|
99
|
+
|
100
|
+
<li><a href="./Hash.html">Hash</a>
|
101
|
+
|
102
|
+
<li><a href="./Kernel.html">Kernel</a>
|
103
|
+
|
104
|
+
<li><a href="./Object.html">Object</a>
|
105
|
+
|
106
|
+
</ul>
|
107
|
+
</nav>
|
108
|
+
|
109
|
+
</div>
|
110
|
+
</nav>
|
111
|
+
|
112
|
+
<div id="documentation">
|
113
|
+
<h1 class="class">class Fixnum</h1>
|
114
|
+
|
115
|
+
<div id="description" class="description">
|
116
|
+
|
117
|
+
</div><!-- description -->
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
|
122
|
+
<section id="5Buntitled-5D" class="documentation-section">
|
123
|
+
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
|
130
|
+
|
131
|
+
<!-- Methods -->
|
132
|
+
|
133
|
+
<section id="public-instance-5Buntitled-5D-method-details" class="method-section section">
|
134
|
+
<h3 class="section-header">Public Instance Methods</h3>
|
135
|
+
|
136
|
+
|
137
|
+
<div id="method-i-string_length" class="method-detail ">
|
138
|
+
|
139
|
+
<div class="method-heading">
|
140
|
+
<span class="method-name">string_length</span><span
|
141
|
+
class="method-args">()</span>
|
142
|
+
<span class="method-click-advice">click to toggle source</span>
|
143
|
+
</div>
|
144
|
+
|
145
|
+
|
146
|
+
<div class="method-description">
|
147
|
+
|
148
|
+
<p>Returns the lenth of the number’s string representation</p>
|
149
|
+
|
150
|
+
<pre class="ruby"><span class="ruby-value">0</span>.<span class="ruby-identifier">string_length</span>
|
151
|
+
<span class="ruby-comment">#=> 1</span>
|
152
|
+
<span class="ruby-value">123</span>.<span class="ruby-identifier">string_length</span>
|
153
|
+
<span class="ruby-comment">#=> 3</span>
|
154
|
+
<span class="ruby-value">-1</span>.<span class="ruby-identifier">string_length</span>
|
155
|
+
<span class="ruby-comment">#=> 2</span>
|
156
|
+
</pre>
|
157
|
+
|
158
|
+
|
159
|
+
|
160
|
+
<div class="method-source-code" id="string_length-source">
|
161
|
+
<pre><span class="ruby-comment"># File lib/shenanigans/fixnum/string_length.rb, line 9</span>
|
162
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">string_length</span>
|
163
|
+
<span class="ruby-keyword">return</span> <span class="ruby-value">1</span> <span class="ruby-keyword">if</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">zero?</span>
|
164
|
+
<span class="ruby-identifier">len</span> = <span class="ruby-constant">Math</span>.<span class="ruby-identifier">log10</span>(<span class="ruby-keyword">self</span>.<span class="ruby-identifier">abs</span>).<span class="ruby-identifier">floor</span>.<span class="ruby-identifier">next</span>
|
165
|
+
<span class="ruby-keyword">self</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">len</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">len</span>.<span class="ruby-identifier">next</span>
|
166
|
+
<span class="ruby-keyword">end</span></pre>
|
167
|
+
</div><!-- string_length-source -->
|
168
|
+
|
169
|
+
</div>
|
170
|
+
|
171
|
+
|
172
|
+
|
173
|
+
|
174
|
+
</div><!-- string_length-method -->
|
175
|
+
|
176
|
+
|
177
|
+
</section><!-- public-instance-method-details -->
|
178
|
+
|
179
|
+
</section><!-- 5Buntitled-5D -->
|
180
|
+
|
181
|
+
</div><!-- documentation -->
|
182
|
+
|
183
|
+
|
184
|
+
<footer id="validator-badges">
|
185
|
+
<p><a href="http://validator.w3.org/check/referer">[Validate]</a>
|
186
|
+
<p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 3.12.
|
187
|
+
<p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
|
188
|
+
</footer>
|
189
|
+
|
data/doc/Hash.html
CHANGED
data/doc/Kernel.html
CHANGED
data/doc/Object.html
CHANGED
@@ -48,7 +48,7 @@
|
|
48
48
|
<h3 class="section-header">Defined In</h3>
|
49
49
|
<ul>
|
50
50
|
<li>lib/shenanigans/object/display.rb
|
51
|
-
<li>lib/shenanigans/object/
|
51
|
+
<li>lib/shenanigans/object/it.rb
|
52
52
|
</ul>
|
53
53
|
</nav>
|
54
54
|
|
@@ -75,7 +75,7 @@
|
|
75
75
|
|
76
76
|
<li><a href="#method-i-display">#display</a>
|
77
77
|
|
78
|
-
<li><a href="#method-i-
|
78
|
+
<li><a href="#method-i-it">#it</a>
|
79
79
|
|
80
80
|
</ul>
|
81
81
|
</nav>
|
@@ -100,6 +100,8 @@
|
|
100
100
|
|
101
101
|
<li><a href="./Array.html">Array</a>
|
102
102
|
|
103
|
+
<li><a href="./Fixnum.html">Fixnum</a>
|
104
|
+
|
103
105
|
<li><a href="./Hash.html">Hash</a>
|
104
106
|
|
105
107
|
<li><a href="./Kernel.html">Kernel</a>
|
@@ -209,10 +211,10 @@ otherwise.</p>
|
|
209
211
|
</div><!-- display-method -->
|
210
212
|
|
211
213
|
|
212
|
-
<div id="method-i-
|
214
|
+
<div id="method-i-it" class="method-detail ">
|
213
215
|
|
214
216
|
<div class="method-heading">
|
215
|
-
<span class="method-name">
|
217
|
+
<span class="method-name">it</span><span
|
216
218
|
class="method-args">()</span>
|
217
219
|
<span class="method-click-advice">click to toggle source</span>
|
218
220
|
</div>
|
@@ -222,25 +224,25 @@ otherwise.</p>
|
|
222
224
|
|
223
225
|
<p>An identity method that provides access to an object’s <code>self</code>.</p>
|
224
226
|
|
225
|
-
<pre class="ruby">[<span class="ruby-value">1</span>,<span class="ruby-value">2</span>,<span class="ruby-value">3</span>,<span class="ruby-value">4</span>,<span class="ruby-value">5</span>,<span class="ruby-value">1</span>,<span class="ruby-value">2</span>,<span class="ruby-value">2</span>,<span class="ruby-value">3</span>].<span class="ruby-identifier">group_by</span>(&:<span class="ruby-identifier">
|
227
|
+
<pre class="ruby">[<span class="ruby-value">1</span>,<span class="ruby-value">2</span>,<span class="ruby-value">3</span>,<span class="ruby-value">4</span>,<span class="ruby-value">5</span>,<span class="ruby-value">1</span>,<span class="ruby-value">2</span>,<span class="ruby-value">2</span>,<span class="ruby-value">3</span>].<span class="ruby-identifier">group_by</span>(&:<span class="ruby-identifier">it</span>)
|
226
228
|
<span class="ruby-comment">#=> {1=>[1, 1], 2=>[2, 2, 2], 3=>[3, 3], 4=>[4], 5=>[5]}</span>
|
227
229
|
</pre>
|
228
230
|
|
229
231
|
|
230
232
|
|
231
|
-
<div class="method-source-code" id="
|
232
|
-
<pre><span class="ruby-comment"># File lib/shenanigans/object/
|
233
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier">
|
233
|
+
<div class="method-source-code" id="it-source">
|
234
|
+
<pre><span class="ruby-comment"># File lib/shenanigans/object/it.rb, line 6</span>
|
235
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">it</span>
|
234
236
|
<span class="ruby-keyword">self</span>
|
235
237
|
<span class="ruby-keyword">end</span></pre>
|
236
|
-
</div><!--
|
238
|
+
</div><!-- it-source -->
|
237
239
|
|
238
240
|
</div>
|
239
241
|
|
240
242
|
|
241
243
|
|
242
244
|
|
243
|
-
</div><!--
|
245
|
+
</div><!-- it-method -->
|
244
246
|
|
245
247
|
|
246
248
|
</section><!-- public-instance-method-details -->
|
data/doc/README_rdoc.html
CHANGED
data/doc/created.rid
CHANGED
@@ -1,9 +1,11 @@
|
|
1
|
-
|
1
|
+
Sun, 15 Jul 2012 00:00:08 +0200
|
2
2
|
README.rdoc Thu, 17 May 2012 11:45:08 +0200
|
3
|
-
lib/shenanigans/array/caret.rb Thu, 28 Jun 2012 09:
|
3
|
+
lib/shenanigans/array/caret.rb Thu, 28 Jun 2012 09:15:50 +0200
|
4
4
|
lib/shenanigans/array/random_subarray.rb Thu, 17 May 2012 00:03:23 +0200
|
5
5
|
lib/shenanigans/array/zip_with.rb Tue, 19 Jun 2012 21:23:27 +0200
|
6
6
|
lib/shenanigans/array.rb Thu, 28 Jun 2012 09:00:29 +0200
|
7
|
+
lib/shenanigans/fixnum/string_length.rb Sun, 15 Jul 2012 00:00:03 +0200
|
8
|
+
lib/shenanigans/fixnum.rb Sat, 14 Jul 2012 23:49:59 +0200
|
7
9
|
lib/shenanigans/hash/has_shape_pred.rb Tue, 19 Jun 2012 21:25:03 +0200
|
8
10
|
lib/shenanigans/hash/to_ostruct.rb Tue, 26 Jun 2012 21:24:42 +0200
|
9
11
|
lib/shenanigans/hash.rb Thu, 21 Jun 2012 19:13:44 +0200
|
@@ -12,6 +14,6 @@ lib/shenanigans/kernel/prompt.rb Thu, 17 May 2012 00:10:42 +0200
|
|
12
14
|
lib/shenanigans/kernel/with.rb Thu, 17 May 2012 00:00:08 +0200
|
13
15
|
lib/shenanigans/kernel.rb Wed, 16 May 2012 20:49:22 +0200
|
14
16
|
lib/shenanigans/object/display.rb Fri, 25 May 2012 17:29:45 +0200
|
15
|
-
lib/shenanigans/object/
|
16
|
-
lib/shenanigans/object.rb
|
17
|
-
lib/shenanigans.rb
|
17
|
+
lib/shenanigans/object/it.rb Thu, 28 Jun 2012 09:07:56 +0200
|
18
|
+
lib/shenanigans/object.rb Thu, 28 Jun 2012 09:10:12 +0200
|
19
|
+
lib/shenanigans.rb Sat, 14 Jul 2012 23:53:13 +0200
|
data/doc/index.html
CHANGED
data/doc/js/search_index.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
var search_data = {"index":{"searchIndex":["array","hash","kernel","object","^()","d()","display()","fn()","has_shape?()","
|
1
|
+
var search_data = {"index":{"searchIndex":["array","fixnum","hash","kernel","object","^()","d()","display()","fn()","has_shape?()","it()","prompt()","random_subarray()","string_length()","to_ostruct()","with()","zip_with()","readme"],"longSearchIndex":["array","fixnum","hash","kernel","object","array#^()","object#d()","object#display()","kernel#fn()","hash#has_shape?()","object#it()","kernel#prompt()","array#random_subarray()","fixnum#string_length()","hash#to_ostruct()","kernel#with()","array#zip_with()",""],"info":[["Array","","Array.html","",""],["Fixnum","","Fixnum.html","",""],["Hash","","Hash.html","",""],["Kernel","","Kernel.html","",""],["Object","","Object.html","",""],["^","Array","Array.html#method-i-5E","(other)","<p>Returns an array containing elements exclusive between two arrays.\n\n<pre class=\"ruby\">[<span class=\"ruby-value\">1</span>, <span class=\"ruby-value\">2</span>, <span class=\"ruby-value\">3</span>] <span class=\"ruby-operator\">^</span> [<span class=\"ruby-value\">1</span>, <span class=\"ruby-value\">2</span>, <span class=\"ruby-value\">4</span>]\n<span class=\"ruby-comment\">#=> [3, 4]</span>\n</pre>\n"],["d","Object","Object.html#method-i-d","(new_line = true)",""],["display","Object","Object.html#method-i-display","(new_line = true)","<p>Outputs the object and also returns it. Will use <code>puts</code> if\n<code>new_line</code> is <code>true</code> and <code>print</code>\notherwise.\n\n<pre>"foo".display ...</pre>\n"],["fn","Kernel","Kernel.html#method-i-fn","(*funs)","<p>Composes a list of functions. Functions can be specified as symbols or\nlambdas.\n\n<pre>["foo bar", "baz qux"].map ...</pre>\n"],["has_shape?","Hash","Hash.html#method-i-has_shape-3F","(shape)","<p>Checks if a hash has a certain structure.\n\n<pre>h = { k1: 1, k2: "1" }\nh.has_shape?(k1: Fixnum, k2: String) ...</pre>\n"],["it","Object","Object.html#method-i-it","()","<p>An identity method that provides access to an object’s <code>self</code>.\n\n<pre class=\"ruby\">[<span class=\"ruby-value\">1</span>,<span class=\"ruby-value\">2</span>,<span class=\"ruby-value\">3</span>,<span class=\"ruby-value\">4</span>,<span class=\"ruby-value\">5</span>,<span class=\"ruby-value\">1</span>,<span class=\"ruby-value\">2</span>,<span class=\"ruby-value\">2</span>,<span class=\"ruby-value\">3</span>].<span class=\"ruby-identifier\">group_by</span>(&:<span class=\"ruby-identifier\">it</span>)\n<span class=\"ruby-comment\">#=> {1=>[1, ...</span>\n</pre>\n"],["prompt","Kernel","Kernel.html#method-i-prompt","(text='', conversion=nil)","<p>Displays a prompt and returns chomped input. Modelled after the Python\nmethod <code>raw_input</code>, but also can …\n"],["random_subarray","Array","Array.html#method-i-random_subarray","(n=1)","<p>Generates random subarrays. Uses random numbers and bit-fiddling to assure\nperformant uniform distributions …\n"],["string_length","Fixnum","Fixnum.html#method-i-string_length","()","<p>Returns the lenth of the number’s string representation\n\n<pre class=\"ruby\"><span class=\"ruby-value\">0</span>.<span class=\"ruby-identifier\">string_length</span>\n<span class=\"ruby-comment\">#=> 1</span>\n<span class=\"ruby-value\">123</span>.<span class=\"ruby-identifier\">string_length</span>\n<span class=\"ruby-comment\">#=> 3 ...</span>\n</pre>\n"],["to_ostruct","Hash","Hash.html#method-i-to_ostruct","()","<p>Recursively converts a <code>Hash</code> and all nested <code>Hash</code>es\nto <code>OpenStruct</code>s. Especially useful for parsing YAML …\n"],["with","Kernel","Kernel.html#method-i-with","(o, &blk)","<p>A Pascal/ActionScript like <code>with</code> method. Yields its argument to\nthe provided block and then returns it. …\n"],["zip_with","Array","Array.html#method-i-zip_with","(other, op=nil)","<p>Zip <code>self</code> with <code>other</code>, combining the elements with\nthe provided block or symbol. The resulting array will …\n"],["README","","README_rdoc.html","","<p>Shenanigans\n<p><strong>shenanigan</strong> (plural shenanigans):\n<p>Trickery, games; skulduggery. To “call”, “claim” …\n"]]}}
|
data/doc/table_of_contents.html
CHANGED
@@ -46,6 +46,9 @@
|
|
46
46
|
<ul>
|
47
47
|
<li class="class">
|
48
48
|
<a href="Array.html">Array</a>
|
49
|
+
</li>
|
50
|
+
<li class="class">
|
51
|
+
<a href="Fixnum.html">Fixnum</a>
|
49
52
|
</li>
|
50
53
|
<li class="class">
|
51
54
|
<a href="Hash.html">Hash</a>
|
@@ -72,12 +75,14 @@
|
|
72
75
|
|
73
76
|
<li class="method"><a href="Hash.html#method-i-has_shape-3F">#has_shape? — Hash</a>
|
74
77
|
|
75
|
-
<li class="method"><a href="Object.html#method-i-
|
78
|
+
<li class="method"><a href="Object.html#method-i-it">#it — Object</a>
|
76
79
|
|
77
80
|
<li class="method"><a href="Kernel.html#method-i-prompt">#prompt — Kernel</a>
|
78
81
|
|
79
82
|
<li class="method"><a href="Array.html#method-i-random_subarray">#random_subarray — Array</a>
|
80
83
|
|
84
|
+
<li class="method"><a href="Fixnum.html#method-i-string_length">#string_length — Fixnum</a>
|
85
|
+
|
81
86
|
<li class="method"><a href="Hash.html#method-i-to_ostruct">#to_ostruct — Hash</a>
|
82
87
|
|
83
88
|
<li class="method"><a href="Kernel.html#method-i-with">#with — Kernel</a>
|
data/lib/shenanigans.rb
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
require_relative 'fixnum/string_length'
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class Fixnum
|
2
|
+
# Returns the length of the number's string representation.
|
3
|
+
# 0.string_length
|
4
|
+
# #=> 1
|
5
|
+
# 123.string_length
|
6
|
+
# #=> 3
|
7
|
+
# -1.string_length
|
8
|
+
# #=> 2
|
9
|
+
def string_length
|
10
|
+
return 1 if self.zero?
|
11
|
+
len = Math.log10(self.abs).floor.next
|
12
|
+
self > 0 ? len : len.next
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'shenanigans/fixnum/string_length'
|
3
|
+
|
4
|
+
class StringLength < MiniTest::Unit::TestCase
|
5
|
+
def test_zero
|
6
|
+
assert 0.string_length == 1
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_positive
|
10
|
+
assert 123.string_length == 3
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_negative
|
14
|
+
assert -1.string_length == 2
|
15
|
+
end
|
16
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shenanigans
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-07-14 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description:
|
15
15
|
email: citizen428@gmail.com
|
@@ -22,6 +22,7 @@ files:
|
|
22
22
|
- README.rdoc
|
23
23
|
- doc/Array.html
|
24
24
|
- doc/created.rid
|
25
|
+
- doc/Fixnum.html
|
25
26
|
- doc/Hash.html
|
26
27
|
- doc/images/add.png
|
27
28
|
- doc/images/brick.png
|
@@ -63,6 +64,8 @@ files:
|
|
63
64
|
- lib/shenanigans/array/random_subarray.rb
|
64
65
|
- lib/shenanigans/array/zip_with.rb
|
65
66
|
- lib/shenanigans/array.rb
|
67
|
+
- lib/shenanigans/fixnum/string_length.rb
|
68
|
+
- lib/shenanigans/fixnum.rb
|
66
69
|
- lib/shenanigans/hash/has_shape_pred.rb
|
67
70
|
- lib/shenanigans/hash/to_ostruct.rb
|
68
71
|
- lib/shenanigans/hash.rb
|
@@ -74,11 +77,11 @@ files:
|
|
74
77
|
- lib/shenanigans/object/it.rb
|
75
78
|
- lib/shenanigans/object.rb
|
76
79
|
- lib/shenanigans/README.mdown
|
77
|
-
- lib/shenanigans/shenanigans-0.0.1.gem
|
78
80
|
- lib/shenanigans.rb
|
79
81
|
- test/array/test_caret.rb
|
80
82
|
- test/array/test_random_subarray.rb
|
81
83
|
- test/array/test_zip_with.rb
|
84
|
+
- test/fixnum/test_string_length.rb
|
82
85
|
- test/hash/test_has_shape_pred.rb
|
83
86
|
- test/hash/test_to_ostruct.rb
|
84
87
|
- test/kernel/test_fn.rb
|
Binary file
|