shenanigans 1.0.10 → 1.0.15

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.
Files changed (80) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +2 -1
  3. data/lib/shenanigans/array/caret.rb +3 -2
  4. data/lib/shenanigans/array/random_subarray.rb +7 -5
  5. data/lib/shenanigans/array/reductions.rb +13 -10
  6. data/lib/shenanigans/array/zip_with.rb +9 -12
  7. data/lib/shenanigans/array.rb +3 -3
  8. data/lib/shenanigans/hash/extract.rb +5 -4
  9. data/lib/shenanigans/hash/has_shape_pred.rb +6 -7
  10. data/lib/shenanigans/hash/to_ostruct.rb +8 -9
  11. data/lib/shenanigans/hash.rb +3 -3
  12. data/lib/shenanigans/integer/divisible_by.rb +13 -0
  13. data/lib/shenanigans/integer/string_length.rb +13 -0
  14. data/lib/shenanigans/integer.rb +2 -0
  15. data/lib/shenanigans/kernel/fn.rb +6 -5
  16. data/lib/shenanigans/kernel/prompt.rb +6 -7
  17. data/lib/shenanigans/kernel/require_optional.rb +7 -7
  18. data/lib/shenanigans/kernel/with.rb +3 -2
  19. data/lib/shenanigans/kernel.rb +4 -4
  20. data/lib/shenanigans/module/private_accessor.rb +5 -5
  21. data/lib/shenanigans/module.rb +1 -1
  22. data/lib/shenanigans/object/display.rb +5 -4
  23. data/lib/shenanigans/object.rb +1 -2
  24. data/lib/shenanigans/string/cmpi.rb +9 -0
  25. data/lib/shenanigans/string/in_groups_of.rb +4 -6
  26. data/lib/shenanigans/string.rb +2 -1
  27. data/lib/shenanigans.rb +7 -7
  28. data/test/array/caret_test.rb +9 -0
  29. data/test/array/{test_random_subarray.rb → random_subarray_test.rb} +3 -3
  30. data/test/array/reductions_test.rb +27 -0
  31. data/test/array/zip_with_test.rb +14 -0
  32. data/test/hash/extract_test.rb +11 -0
  33. data/test/hash/{test_has_shape_pred.rb → has_shape_pred_test.rb} +3 -3
  34. data/test/hash/{test_to_ostruct.rb → to_ostruct_test.rb} +3 -3
  35. data/test/integer/divisible_by_test.rb +16 -0
  36. data/test/integer/string_length_test.rb +16 -0
  37. data/test/kernel/fn_test.rb +14 -0
  38. data/test/kernel/{test_prompt.rb → prompt_test.rb} +4 -4
  39. data/test/kernel/require_optional_test.rb +15 -0
  40. data/test/kernel/with_test.rb +12 -0
  41. data/test/module/{test_private_accessor.rb → private_accessor_test.rb} +3 -3
  42. data/test/object/{test_display.rb → display_test.rb} +4 -5
  43. data/test/string/cmpi_test.rb +10 -0
  44. data/test/string/in_groups_of_test.rb +11 -0
  45. metadata +40 -62
  46. data/doc/Array.html +0 -518
  47. data/doc/Fixnum.html +0 -214
  48. data/doc/Hash.html +0 -415
  49. data/doc/Kernel.html +0 -462
  50. data/doc/Module.html +0 -236
  51. data/doc/Object.html +0 -284
  52. data/doc/String.html +0 -226
  53. data/doc/_index.html +0 -188
  54. data/doc/class_list.html +0 -54
  55. data/doc/css/common.css +0 -1
  56. data/doc/css/full_list.css +0 -57
  57. data/doc/css/style.css +0 -338
  58. data/doc/file.README.html +0 -162
  59. data/doc/file_list.html +0 -56
  60. data/doc/frames.html +0 -26
  61. data/doc/index.html +0 -162
  62. data/doc/js/app.js +0 -219
  63. data/doc/js/full_list.js +0 -178
  64. data/doc/js/jquery.js +0 -4
  65. data/doc/method_list.html +0 -149
  66. data/doc/top-level-namespace.html +0 -114
  67. data/lib/shenanigans/fixnum/string_length.rb +0 -14
  68. data/lib/shenanigans/fixnum.rb +0 -1
  69. data/lib/shenanigans/object/it.rb +0 -9
  70. data/test/array/test_caret.rb +0 -9
  71. data/test/array/test_reductions.rb +0 -27
  72. data/test/array/test_zip_with.rb +0 -14
  73. data/test/fixnum/test_string_length.rb +0 -16
  74. data/test/hash/test_extract.rb +0 -11
  75. data/test/kernel/test_fn.rb +0 -14
  76. data/test/kernel/test_require_optional.rb +0 -17
  77. data/test/kernel/test_with.rb +0 -12
  78. data/test/object/test_it.rb +0 -10
  79. data/test/string/test_display.rb +0 -36
  80. data/test/string/test_in_groups_of.rb +0 -11
data/doc/Module.html DELETED
@@ -1,236 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
- <head>
5
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
- <title>
7
- Class: Module
8
-
9
- &mdash; Documentation by YARD 0.8.7.3
10
-
11
- </title>
12
-
13
- <link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
14
-
15
- <link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
16
-
17
- <script type="text/javascript" charset="utf-8">
18
- hasFrames = window.top.frames.main ? true : false;
19
- relpath = '';
20
- framesUrl = "frames.html#!" + escape(window.location.href);
21
- </script>
22
-
23
-
24
- <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
25
-
26
- <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
27
-
28
-
29
- </head>
30
- <body>
31
- <div id="header">
32
- <div id="menu">
33
-
34
- <a href="_index.html">Index (M)</a> &raquo;
35
-
36
-
37
- <span class="title">Module</span>
38
-
39
-
40
- <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
41
- </div>
42
-
43
- <div id="search">
44
-
45
- <a class="full_list_link" id="class_list_link"
46
- href="class_list.html">
47
- Class List
48
- </a>
49
-
50
- <a class="full_list_link" id="method_list_link"
51
- href="method_list.html">
52
- Method List
53
- </a>
54
-
55
- <a class="full_list_link" id="file_list_link"
56
- href="file_list.html">
57
- File List
58
- </a>
59
-
60
- </div>
61
- <div class="clear"></div>
62
- </div>
63
-
64
- <iframe id="search_frame"></iframe>
65
-
66
- <div id="content"><h1>Class: Module
67
-
68
-
69
-
70
- </h1>
71
-
72
- <dl class="box">
73
-
74
- <dt class="r1">Inherits:</dt>
75
- <dd class="r1">
76
- <span class="inheritName"><span class='object_link'><a href="Object.html" title="Object (class)">Object</a></span></span>
77
-
78
- <ul class="fullTree">
79
- <li><span class='object_link'><a href="Object.html" title="Object (class)">Object</a></span></li>
80
-
81
- <li class="next">Module</li>
82
-
83
- </ul>
84
- <a href="#" class="inheritanceTree">show all</a>
85
-
86
- </dd>
87
-
88
-
89
-
90
-
91
-
92
-
93
-
94
-
95
-
96
- <dt class="r2 last">Defined in:</dt>
97
- <dd class="r2 last">lib/shenanigans/module/private_accessor.rb</dd>
98
-
99
- </dl>
100
- <div class="clear"></div>
101
-
102
-
103
-
104
-
105
-
106
-
107
-
108
-
109
-
110
- <h2>
111
- Instance Method Summary
112
- <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
113
- </h2>
114
-
115
- <ul class="summary">
116
-
117
- <li class="private ">
118
- <span class="summary_signature">
119
-
120
- <a href="#private_accessor-instance_method" title="#private_accessor (instance method)">- (Object) <strong>private_accessor</strong>(*names) </a>
121
-
122
-
123
-
124
- </span>
125
-
126
-
127
-
128
- <span class="note title private">private</span>
129
-
130
-
131
-
132
-
133
-
134
- <span class="summary_desc"><div class='inline'>
135
- <p>Works like attr_accessor but generates private getter/setter methods for
136
- class internal use only.</p>
137
- </div></span>
138
-
139
- </li>
140
-
141
-
142
- </ul>
143
-
144
-
145
-
146
-
147
- <div id="instance_method_details" class="method_details_list">
148
- <h2>Instance Method Details</h2>
149
-
150
-
151
- <div class="method_details first">
152
- <h3 class="signature first" id="private_accessor-instance_method">
153
-
154
- - (<tt><span class='object_link'><a href="Object.html" title="Object (class)">Object</a></span></tt>) <strong>private_accessor</strong>(*names) <span class="extras">(private)</span>
155
-
156
-
157
-
158
-
159
-
160
- </h3><div class="docstring">
161
- <div class="discussion">
162
-
163
- <p>Works like <code>attr_accessor</code> but generates private getter/setter
164
- methods for class internal use only. Useful for enforcing Smalltalk-style
165
- internal encapsulation.</p>
166
-
167
- <p>For a more complete implementation of a similar feature see <a
168
- href="https://github.com/citizen428/ivar_encapsulation">ivar_encapsulation</a>.</p>
169
-
170
-
171
- </div>
172
- </div>
173
- <div class="tags">
174
-
175
-
176
- </div><table class="source_code">
177
- <tr>
178
- <td>
179
- <pre class="lines">
180
-
181
-
182
- 7
183
- 8
184
- 9
185
- 10
186
- 11
187
- 12
188
- 13
189
- 14
190
- 15
191
- 16
192
- 17
193
- 18
194
- 19
195
- 20
196
- 21
197
- 22
198
- 23</pre>
199
- </td>
200
- <td>
201
- <pre class="code"><span class="info file"># File 'lib/shenanigans/module/private_accessor.rb', line 7</span>
202
-
203
- <span class='kw'>def</span> <span class='id identifier rubyid_private_accessor'>private_accessor</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_names'>names</span><span class='rparen'>)</span>
204
- <span class='id identifier rubyid_names'>names</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_name'>name</span><span class='op'>|</span>
205
- <span class='id identifier rubyid_instance_var_name'>instance_var_name</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>@</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
206
-
207
- <span class='id identifier rubyid_define_method'>define_method</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span> <span class='kw'>do</span>
208
- <span class='id identifier rubyid_instance_variable_get'>instance_variable_get</span><span class='lparen'>(</span><span class='id identifier rubyid_instance_var_name'>instance_var_name</span><span class='rparen'>)</span>
209
- <span class='kw'>end</span>
210
-
211
- <span class='id identifier rubyid_define_method'>define_method</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_content'>=</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_value'>value</span><span class='op'>|</span>
212
- <span class='id identifier rubyid_instance_variable_set'>instance_variable_set</span><span class='lparen'>(</span><span class='id identifier rubyid_instance_var_name'>instance_var_name</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
213
- <span class='kw'>end</span>
214
-
215
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='symbol'>:private</span><span class='comma'>,</span> <span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
216
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='symbol'>:private</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_content'>=</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
217
- <span class='kw'>end</span>
218
- <span class='kw'>nil</span> <span class='comment'># like attr_accessor
219
- </span><span class='kw'>end</span></pre>
220
- </td>
221
- </tr>
222
- </table>
223
- </div>
224
-
225
- </div>
226
-
227
- </div>
228
-
229
- <div id="footer">
230
- Generated on Tue Dec 31 15:41:30 2013 by
231
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
232
- 0.8.7.3 (ruby-2.0.0).
233
- </div>
234
-
235
- </body>
236
- </html>
data/doc/Object.html DELETED
@@ -1,284 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
- <head>
5
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
- <title>
7
- Class: Object
8
-
9
- &mdash; Documentation by YARD 0.8.7.3
10
-
11
- </title>
12
-
13
- <link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
14
-
15
- <link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
16
-
17
- <script type="text/javascript" charset="utf-8">
18
- hasFrames = window.top.frames.main ? true : false;
19
- relpath = '';
20
- framesUrl = "frames.html#!" + escape(window.location.href);
21
- </script>
22
-
23
-
24
- <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
25
-
26
- <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
27
-
28
-
29
- </head>
30
- <body>
31
- <div id="header">
32
- <div id="menu">
33
-
34
- <a href="_index.html">Index (O)</a> &raquo;
35
-
36
-
37
- <span class="title">Object</span>
38
-
39
-
40
- <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
41
- </div>
42
-
43
- <div id="search">
44
-
45
- <a class="full_list_link" id="class_list_link"
46
- href="class_list.html">
47
- Class List
48
- </a>
49
-
50
- <a class="full_list_link" id="method_list_link"
51
- href="method_list.html">
52
- Method List
53
- </a>
54
-
55
- <a class="full_list_link" id="file_list_link"
56
- href="file_list.html">
57
- File List
58
- </a>
59
-
60
- </div>
61
- <div class="clear"></div>
62
- </div>
63
-
64
- <iframe id="search_frame"></iframe>
65
-
66
- <div id="content"><h1>Class: Object
67
-
68
-
69
-
70
- </h1>
71
-
72
- <dl class="box">
73
-
74
- <dt class="r1">Inherits:</dt>
75
- <dd class="r1">
76
- <span class="inheritName">BasicObject</span>
77
-
78
- </dd>
79
-
80
-
81
-
82
-
83
-
84
-
85
-
86
-
87
-
88
- <dt class="r2 last">Defined in:</dt>
89
- <dd class="r2 last">lib/shenanigans/object/it.rb<span class="defines">,<br />
90
- lib/shenanigans/object/display.rb</span>
91
- </dd>
92
-
93
- </dl>
94
- <div class="clear"></div>
95
-
96
-
97
-
98
-
99
-
100
-
101
-
102
-
103
-
104
- <h2>
105
- Instance Method Summary
106
- <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
107
- </h2>
108
-
109
- <ul class="summary">
110
-
111
- <li class="public ">
112
- <span class="summary_signature">
113
-
114
- <a href="#display-instance_method" title="#display (instance method)">- (Object) <strong>display</strong>(new_line = true) </a>
115
-
116
-
117
-
118
- (also: #d)
119
-
120
- </span>
121
-
122
-
123
-
124
-
125
-
126
-
127
-
128
-
129
-
130
- <span class="summary_desc"><div class='inline'>
131
- <p>Outputs the object and also returns it.</p>
132
- </div></span>
133
-
134
- </li>
135
-
136
-
137
- <li class="public ">
138
- <span class="summary_signature">
139
-
140
- <a href="#it-instance_method" title="#it (instance method)">- (Object) <strong>it</strong> </a>
141
-
142
-
143
-
144
- </span>
145
-
146
-
147
-
148
-
149
-
150
-
151
-
152
-
153
-
154
- <span class="summary_desc"><div class='inline'>
155
- <p>An identity method that provides access to an object&#39;s self.</p>
156
- </div></span>
157
-
158
- </li>
159
-
160
-
161
- </ul>
162
-
163
-
164
-
165
-
166
- <div id="instance_method_details" class="method_details_list">
167
- <h2>Instance Method Details</h2>
168
-
169
-
170
- <div class="method_details first">
171
- <h3 class="signature first" id="display-instance_method">
172
-
173
- - (<tt><span class='object_link'><a href="" title="Object (class)">Object</a></span></tt>) <strong>display</strong>(new_line = true)
174
-
175
-
176
-
177
- <span class="aliases">Also known as:
178
- <span class="names"><span id='d-instance_method'>d</span></span>
179
- </span>
180
-
181
-
182
-
183
- </h3><div class="docstring">
184
- <div class="discussion">
185
-
186
- <p>Outputs the object and also returns it. Will use <code>puts</code> if
187
- <code>new_line</code> is <code>true</code> and <code>print</code>
188
- otherwise.</p>
189
-
190
- <pre class="ruby"><span class="ruby-string">&quot;foo&quot;</span>.<span class="ruby-identifier">display</span>
191
- <span class="ruby-identifier">foo</span>
192
- <span class="ruby-comment">#=&gt; &quot;foo&quot;</span>
193
-
194
- <span class="ruby-string">&quot;foo&quot;</span>.<span class="ruby-identifier">display</span>(<span class="ruby-keyword">false</span>)
195
- <span class="ruby-identifier">foo</span><span class="ruby-comment">#=&gt; &quot;foo&quot;</span>
196
- </pre>
197
-
198
-
199
- </div>
200
- </div>
201
- <div class="tags">
202
-
203
-
204
- </div><table class="source_code">
205
- <tr>
206
- <td>
207
- <pre class="lines">
208
-
209
-
210
- 11
211
- 12
212
- 13
213
- 14</pre>
214
- </td>
215
- <td>
216
- <pre class="code"><span class="info file"># File 'lib/shenanigans/object/display.rb', line 11</span>
217
-
218
- <span class='kw'>def</span> <span class='id identifier rubyid_display'>display</span><span class='lparen'>(</span><span class='id identifier rubyid_new_line'>new_line</span> <span class='op'>=</span> <span class='kw'>true</span><span class='rparen'>)</span>
219
- <span class='id identifier rubyid_m'>m</span> <span class='op'>=</span> <span class='id identifier rubyid_new_line'>new_line</span> <span class='op'>?</span> <span class='symbol'>:puts</span> <span class='op'>:</span> <span class='symbol'>:print</span>
220
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_tap'>tap</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_o'>o</span><span class='op'>|</span> <span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_m'>m</span><span class='comma'>,</span> <span class='id identifier rubyid_o'>o</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
221
- <span class='kw'>end</span></pre>
222
- </td>
223
- </tr>
224
- </table>
225
- </div>
226
-
227
- <div class="method_details ">
228
- <h3 class="signature " id="it-instance_method">
229
-
230
- - (<tt><span class='object_link'><a href="" title="Object (class)">Object</a></span></tt>) <strong>it</strong>
231
-
232
-
233
-
234
-
235
-
236
- </h3><div class="docstring">
237
- <div class="discussion">
238
-
239
- <p>An identity method that provides access to an object&#39;s
240
- <code>self</code>.</p>
241
-
242
- <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-operator">&amp;</span>:<span class="ruby-identifier">it</span>)
243
- <span class="ruby-comment">#=&gt; {1=&gt;[1, 1], 2=&gt;[2, 2, 2], 3=&gt;[3, 3], 4=&gt;[4], 5=&gt;[5]}</span>
244
- </pre>
245
-
246
-
247
- </div>
248
- </div>
249
- <div class="tags">
250
-
251
-
252
- </div><table class="source_code">
253
- <tr>
254
- <td>
255
- <pre class="lines">
256
-
257
-
258
- 6
259
- 7
260
- 8</pre>
261
- </td>
262
- <td>
263
- <pre class="code"><span class="info file"># File 'lib/shenanigans/object/it.rb', line 6</span>
264
-
265
- <span class='kw'>def</span> <span class='id identifier rubyid_it'>it</span>
266
- <span class='kw'>self</span>
267
- <span class='kw'>end</span></pre>
268
- </td>
269
- </tr>
270
- </table>
271
- </div>
272
-
273
- </div>
274
-
275
- </div>
276
-
277
- <div id="footer">
278
- Generated on Tue Dec 31 15:41:29 2013 by
279
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
280
- 0.8.7.3 (ruby-2.0.0).
281
- </div>
282
-
283
- </body>
284
- </html>