shenanigans 1.0.13 → 1.0.16

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 (69) hide show
  1. checksums.yaml +4 -4
  2. data/lib/shenanigans/array/caret.rb +3 -2
  3. data/lib/shenanigans/array/random_subarray.rb +7 -5
  4. data/lib/shenanigans/array/reductions.rb +13 -10
  5. data/lib/shenanigans/array/zip_with.rb +9 -12
  6. data/lib/shenanigans/array.rb +3 -3
  7. data/lib/shenanigans/hash/extract.rb +5 -4
  8. data/lib/shenanigans/hash/has_shape_pred.rb +6 -7
  9. data/lib/shenanigans/hash/to_ostruct.rb +8 -9
  10. data/lib/shenanigans/hash.rb +3 -3
  11. data/lib/shenanigans/integer/divisible_by.rb +13 -0
  12. data/lib/shenanigans/integer/string_length.rb +13 -0
  13. data/lib/shenanigans/integer.rb +2 -0
  14. data/lib/shenanigans/kernel/fn.rb +7 -6
  15. data/lib/shenanigans/kernel/prompt.rb +6 -7
  16. data/lib/shenanigans/kernel/require_optional.rb +8 -8
  17. data/lib/shenanigans/kernel/with.rb +4 -3
  18. data/lib/shenanigans/kernel.rb +4 -4
  19. data/lib/shenanigans/module/private_accessor.rb +6 -6
  20. data/lib/shenanigans/module.rb +1 -1
  21. data/lib/shenanigans/object/display.rb +5 -4
  22. data/lib/shenanigans/object.rb +1 -2
  23. data/lib/shenanigans/string/cmpi.rb +4 -3
  24. data/lib/shenanigans/string/in_groups_of.rb +4 -6
  25. data/lib/shenanigans/string.rb +2 -2
  26. data/lib/shenanigans.rb +7 -7
  27. metadata +81 -51
  28. data/Gemfile +0 -8
  29. data/doc/Array.html +0 -519
  30. data/doc/Fixnum.html +0 -215
  31. data/doc/Hash.html +0 -417
  32. data/doc/Kernel.html +0 -460
  33. data/doc/Module.html +0 -237
  34. data/doc/Object.html +0 -286
  35. data/doc/String.html +0 -299
  36. data/doc/_index.html +0 -185
  37. data/doc/class_list.html +0 -51
  38. data/doc/css/common.css +0 -1
  39. data/doc/css/full_list.css +0 -58
  40. data/doc/css/style.css +0 -499
  41. data/doc/file.README.html +0 -160
  42. data/doc/file_list.html +0 -56
  43. data/doc/frames.html +0 -17
  44. data/doc/index.html +0 -160
  45. data/doc/js/app.js +0 -248
  46. data/doc/js/full_list.js +0 -216
  47. data/doc/js/jquery.js +0 -4
  48. data/doc/method_list.html +0 -187
  49. data/doc/top-level-namespace.html +0 -112
  50. data/lib/shenanigans/fixnum/string_length.rb +0 -14
  51. data/lib/shenanigans/fixnum.rb +0 -1
  52. data/lib/shenanigans/object/it.rb +0 -9
  53. data/test/array/test_caret.rb +0 -9
  54. data/test/array/test_random_subarray.rb +0 -10
  55. data/test/array/test_reductions.rb +0 -27
  56. data/test/array/test_zip_with.rb +0 -14
  57. data/test/fixnum/test_string_length.rb +0 -16
  58. data/test/hash/test_extract.rb +0 -11
  59. data/test/hash/test_has_shape_pred.rb +0 -40
  60. data/test/hash/test_to_ostruct.rb +0 -23
  61. data/test/kernel/test_fn.rb +0 -14
  62. data/test/kernel/test_prompt.rb +0 -27
  63. data/test/kernel/test_require_optional.rb +0 -17
  64. data/test/kernel/test_with.rb +0 -12
  65. data/test/module/test_private_accessor.rb +0 -21
  66. data/test/object/test_display.rb +0 -36
  67. data/test/object/test_it.rb +0 -10
  68. data/test/string/test_cmpi.rb +0 -10
  69. data/test/string/test_in_groups_of.rb +0 -11
data/doc/Module.html DELETED
@@ -1,237 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>
7
- Class: Module
8
-
9
- &mdash; Documentation by YARD 0.9.12
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
- pathId = "Module";
19
- relpath = '';
20
- </script>
21
-
22
-
23
- <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
24
-
25
- <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
26
-
27
-
28
- </head>
29
- <body>
30
- <div class="nav_wrap">
31
- <iframe id="nav" src="class_list.html?1"></iframe>
32
- <div id="resizer"></div>
33
- </div>
34
-
35
- <div id="main" tabindex="-1">
36
- <div id="header">
37
- <div id="menu">
38
-
39
- <a href="_index.html">Index (M)</a> &raquo;
40
-
41
-
42
- <span class="title">Module</span>
43
-
44
- </div>
45
-
46
- <div id="search">
47
-
48
- <a class="full_list_link" id="class_list_link"
49
- href="class_list.html">
50
-
51
- <svg width="24" height="24">
52
- <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
- <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
- <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
- </svg>
56
- </a>
57
-
58
- </div>
59
- <div class="clear"></div>
60
- </div>
61
-
62
- <div id="content"><h1>Class: Module
63
-
64
-
65
-
66
- </h1>
67
- <div class="box_info">
68
-
69
- <dl>
70
- <dt>Inherits:</dt>
71
- <dd>
72
- <span class="inheritName"><span class='object_link'><a href="Object.html" title="Object (class)">Object</a></span></span>
73
-
74
- <ul class="fullTree">
75
- <li><span class='object_link'><a href="Object.html" title="Object (class)">Object</a></span></li>
76
-
77
- <li class="next">Module</li>
78
-
79
- </ul>
80
- <a href="#" class="inheritanceTree">show all</a>
81
-
82
- </dd>
83
- </dl>
84
-
85
-
86
-
87
-
88
-
89
-
90
-
91
-
92
-
93
-
94
-
95
- <dl>
96
- <dt>Defined in:</dt>
97
- <dd>lib/shenanigans/module/private_accessor.rb</dd>
98
- </dl>
99
-
100
- </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)">#<strong>private_accessor</strong>(*names) &#x21d2; Object </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 <code>attr_accessor</code> but generates private getter/setter
136
- methods for 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
- #<strong>private_accessor</strong>(*names) &#x21d2; <tt><span class='object_link'><a href="Object.html" title="Object (class)">Object</a></span></tt> <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 Thu Feb 1 16:36:55 2018 by
231
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
232
- 0.9.12 (ruby-2.5.0).
233
- </div>
234
-
235
- </div>
236
- </body>
237
- </html>
data/doc/Object.html DELETED
@@ -1,286 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>
7
- Class: Object
8
-
9
- &mdash; Documentation by YARD 0.9.12
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
- pathId = "Object";
19
- relpath = '';
20
- </script>
21
-
22
-
23
- <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
24
-
25
- <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
26
-
27
-
28
- </head>
29
- <body>
30
- <div class="nav_wrap">
31
- <iframe id="nav" src="class_list.html?1"></iframe>
32
- <div id="resizer"></div>
33
- </div>
34
-
35
- <div id="main" tabindex="-1">
36
- <div id="header">
37
- <div id="menu">
38
-
39
- <a href="_index.html">Index (O)</a> &raquo;
40
-
41
-
42
- <span class="title">Object</span>
43
-
44
- </div>
45
-
46
- <div id="search">
47
-
48
- <a class="full_list_link" id="class_list_link"
49
- href="class_list.html">
50
-
51
- <svg width="24" height="24">
52
- <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
- <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
- <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
- </svg>
56
- </a>
57
-
58
- </div>
59
- <div class="clear"></div>
60
- </div>
61
-
62
- <div id="content"><h1>Class: Object
63
-
64
-
65
-
66
- </h1>
67
- <div class="box_info">
68
-
69
- <dl>
70
- <dt>Inherits:</dt>
71
- <dd>
72
- <span class="inheritName">BasicObject</span>
73
-
74
- </dd>
75
- </dl>
76
-
77
-
78
-
79
-
80
-
81
-
82
-
83
-
84
-
85
-
86
-
87
- <dl>
88
- <dt>Defined in:</dt>
89
- <dd>lib/shenanigans/object/it.rb<span class="defines">,<br />
90
- lib/shenanigans/object/display.rb</span>
91
- </dd>
92
- </dl>
93
-
94
- </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)">#<strong>display</strong>(new_line = true) &#x21d2; Object </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)">#<strong>it</strong> &#x21d2; Object </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
156
- <code>self</code>.</p>
157
- </div></span>
158
-
159
- </li>
160
-
161
-
162
- </ul>
163
-
164
-
165
-
166
-
167
- <div id="instance_method_details" class="method_details_list">
168
- <h2>Instance Method Details</h2>
169
-
170
-
171
- <div class="method_details first">
172
- <h3 class="signature first" id="display-instance_method">
173
-
174
- #<strong>display</strong>(new_line = true) &#x21d2; <tt><span class='object_link'><a href="" title="Object (class)">Object</a></span></tt>
175
-
176
-
177
-
178
- <span class="aliases">Also known as:
179
- <span class="names"><span id='d-instance_method'>d</span></span>
180
- </span>
181
-
182
-
183
-
184
- </h3><div class="docstring">
185
- <div class="discussion">
186
-
187
- <p>Outputs the object and also returns it. Will use <code>puts</code> if
188
- <code>new_line</code> is <code>true</code> and <code>print</code>
189
- otherwise.</p>
190
-
191
- <pre class="code ruby"><code class="ruby"><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>foo</span><span class='tstring_end'>&quot;</span></span><span class='period'>.</span><span class='id identifier rubyid_display'>display</span>
192
- <span class='id identifier rubyid_foo'>foo</span>
193
- <span class='comment'>#=&gt; &quot;foo&quot;
194
- </span>
195
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>foo</span><span class='tstring_end'>&quot;</span></span><span class='period'>.</span><span class='id identifier rubyid_display'>display</span><span class='lparen'>(</span><span class='kw'>false</span><span class='rparen'>)</span>
196
- <span class='id identifier rubyid_foo'>foo</span><span class='comment'>#=&gt; &quot;foo&quot;
197
- </span></code></pre>
198
-
199
-
200
- </div>
201
- </div>
202
- <div class="tags">
203
-
204
-
205
- </div><table class="source_code">
206
- <tr>
207
- <td>
208
- <pre class="lines">
209
-
210
-
211
- 11
212
- 12
213
- 13
214
- 14</pre>
215
- </td>
216
- <td>
217
- <pre class="code"><span class="info file"># File 'lib/shenanigans/object/display.rb', line 11</span>
218
-
219
- <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>
220
- <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>
221
- <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>
222
- <span class='kw'>end</span></pre>
223
- </td>
224
- </tr>
225
- </table>
226
- </div>
227
-
228
- <div class="method_details ">
229
- <h3 class="signature " id="it-instance_method">
230
-
231
- #<strong>it</strong> &#x21d2; <tt><span class='object_link'><a href="" title="Object (class)">Object</a></span></tt>
232
-
233
-
234
-
235
-
236
-
237
- </h3><div class="docstring">
238
- <div class="discussion">
239
-
240
- <p>An identity method that provides access to an object&#39;s
241
- <code>self</code>.</p>
242
-
243
- <pre class="code ruby"><code class="ruby"><span class='lbracket'>[</span><span class='int'>1</span><span class='comma'>,</span><span class='int'>2</span><span class='comma'>,</span><span class='int'>3</span><span class='comma'>,</span><span class='int'>4</span><span class='comma'>,</span><span class='int'>5</span><span class='comma'>,</span><span class='int'>1</span><span class='comma'>,</span><span class='int'>2</span><span class='comma'>,</span><span class='int'>2</span><span class='comma'>,</span><span class='int'>3</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_group_by'>group_by</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='symbol'>:it</span><span class='rparen'>)</span>
244
- <span class='comment'>#=&gt; {1=&gt;[1, 1], 2=&gt;[2, 2, 2], 3=&gt;[3, 3], 4=&gt;[4], 5=&gt;[5]}
245
- </span></code></pre>
246
-
247
-
248
- </div>
249
- </div>
250
- <div class="tags">
251
-
252
-
253
- </div><table class="source_code">
254
- <tr>
255
- <td>
256
- <pre class="lines">
257
-
258
-
259
- 6
260
- 7
261
- 8</pre>
262
- </td>
263
- <td>
264
- <pre class="code"><span class="info file"># File 'lib/shenanigans/object/it.rb', line 6</span>
265
-
266
- <span class='kw'>def</span> <span class='id identifier rubyid_it'>it</span>
267
- <span class='kw'>self</span>
268
- <span class='kw'>end</span></pre>
269
- </td>
270
- </tr>
271
- </table>
272
- </div>
273
-
274
- </div>
275
-
276
- </div>
277
-
278
- <div id="footer">
279
- Generated on Thu Feb 1 16:36:54 2018 by
280
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
281
- 0.9.12 (ruby-2.5.0).
282
- </div>
283
-
284
- </div>
285
- </body>
286
- </html>