shenanigans 1.0.13 → 1.0.14
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.
- checksums.yaml +4 -4
- data/Gemfile +2 -1
- data/doc/Array.html +104 -74
- data/doc/Hash.html +77 -56
- data/doc/{Fixnum.html → Integer.html} +31 -27
- data/doc/Kernel.html +114 -74
- data/doc/Module.html +11 -15
- data/doc/Object.html +24 -95
- data/doc/String.html +31 -30
- data/doc/_index.html +13 -13
- data/doc/class_list.html +3 -3
- data/doc/css/style.css +6 -9
- data/doc/file.README.html +19 -48
- data/doc/file_list.html +2 -2
- data/doc/frames.html +2 -2
- data/doc/index.html +19 -48
- data/doc/js/app.js +69 -3
- data/doc/method_list.html +12 -20
- data/doc/top-level-namespace.html +7 -7
- data/lib/shenanigans.rb +7 -7
- data/lib/shenanigans/array.rb +3 -3
- data/lib/shenanigans/array/caret.rb +3 -2
- data/lib/shenanigans/array/random_subarray.rb +7 -5
- data/lib/shenanigans/array/reductions.rb +13 -10
- data/lib/shenanigans/array/zip_with.rb +9 -12
- data/lib/shenanigans/hash.rb +3 -3
- data/lib/shenanigans/hash/extract.rb +5 -4
- data/lib/shenanigans/hash/has_shape_pred.rb +6 -7
- data/lib/shenanigans/hash/to_ostruct.rb +8 -9
- data/lib/shenanigans/integer.rb +1 -0
- data/lib/shenanigans/integer/string_length.rb +13 -0
- data/lib/shenanigans/kernel.rb +4 -4
- data/lib/shenanigans/kernel/fn.rb +7 -6
- data/lib/shenanigans/kernel/prompt.rb +6 -7
- data/lib/shenanigans/kernel/require_optional.rb +8 -8
- data/lib/shenanigans/kernel/with.rb +4 -3
- data/lib/shenanigans/module.rb +1 -1
- data/lib/shenanigans/module/private_accessor.rb +6 -6
- data/lib/shenanigans/object.rb +1 -2
- data/lib/shenanigans/object/display.rb +5 -4
- data/lib/shenanigans/string.rb +2 -2
- data/lib/shenanigans/string/cmpi.rb +4 -3
- data/lib/shenanigans/string/in_groups_of.rb +4 -6
- data/test/array/caret_test.rb +9 -0
- data/test/array/{test_random_subarray.rb → random_subarray_test.rb} +3 -3
- data/test/array/reductions_test.rb +27 -0
- data/test/array/zip_with_test.rb +14 -0
- data/test/hash/extract_test.rb +11 -0
- data/test/hash/{test_has_shape_pred.rb → has_shape_pred_test.rb} +3 -3
- data/test/hash/{test_to_ostruct.rb → to_ostruct_test.rb} +3 -3
- data/test/integer/string_length_test.rb +16 -0
- data/test/kernel/fn_test.rb +14 -0
- data/test/kernel/{test_prompt.rb → prompt_test.rb} +4 -4
- data/test/kernel/require_optional_test.rb +15 -0
- data/test/kernel/with_test.rb +12 -0
- data/test/module/{test_private_accessor.rb → private_accessor_test.rb} +3 -3
- data/test/object/{test_display.rb → display_test.rb} +4 -5
- data/test/string/{test_cmpi.rb → cmpi_test.rb} +3 -3
- data/test/string/in_groups_of_test.rb +11 -0
- metadata +22 -25
- data/lib/shenanigans/fixnum.rb +0 -1
- data/lib/shenanigans/fixnum/string_length.rb +0 -14
- data/lib/shenanigans/object/it.rb +0 -9
- data/test/array/test_caret.rb +0 -9
- data/test/array/test_reductions.rb +0 -27
- data/test/array/test_zip_with.rb +0 -14
- data/test/fixnum/test_string_length.rb +0 -16
- data/test/hash/test_extract.rb +0 -11
- data/test/kernel/test_fn.rb +0 -14
- data/test/kernel/test_require_optional.rb +0 -17
- data/test/kernel/test_with.rb +0 -12
- data/test/object/test_it.rb +0 -10
- data/test/string/test_in_groups_of.rb +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0b2455418fc4671757f0ed454480bab16c0932e3ec8bf7f2c63f6f565319d64c
|
4
|
+
data.tar.gz: 9b359a6bb6504d3664591bb396845caaba048323e7c7cb46b16ceacd34611929
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6ada5cb0858a97e82f34bb5523822868e1c9c2133d8542bced908a467c0de00e902c3fff86004449bfcc9e52bc92bf25c500f583a15dd80da85436f0a6a923a8
|
7
|
+
data.tar.gz: 4fabbfc917479bf8794233a80005c51a0b37057e329122109190de4ee18a18c4f869e1fd0c4aa9c07e9ee2223b9aa59bade9b16e24f01c357e8f5cefe2dbc827
|
data/Gemfile
CHANGED
data/doc/Array.html
CHANGED
@@ -6,15 +6,15 @@
|
|
6
6
|
<title>
|
7
7
|
Class: Array
|
8
8
|
|
9
|
-
— Documentation by YARD 0.9.
|
9
|
+
— Documentation by YARD 0.9.24
|
10
10
|
|
11
11
|
</title>
|
12
12
|
|
13
|
-
<link rel="stylesheet" href="css/style.css" type="text/css"
|
13
|
+
<link rel="stylesheet" href="css/style.css" type="text/css" />
|
14
14
|
|
15
|
-
<link rel="stylesheet" href="css/common.css" type="text/css"
|
15
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" />
|
16
16
|
|
17
|
-
<script type="text/javascript"
|
17
|
+
<script type="text/javascript">
|
18
18
|
pathId = "Array";
|
19
19
|
relpath = '';
|
20
20
|
</script>
|
@@ -182,8 +182,7 @@
|
|
182
182
|
|
183
183
|
|
184
184
|
<span class="summary_desc"><div class='inline'>
|
185
|
-
<p>Similar to <code>reduce</code>/<code>inject</code>, but also returns
|
186
|
-
intermediate values.</p>
|
185
|
+
<p>Similar to <code>reduce</code>/<code>inject</code>, but also returns intermediate values.</p>
|
187
186
|
</div></span>
|
188
187
|
|
189
188
|
</li>
|
@@ -207,8 +206,7 @@ intermediate values.</p>
|
|
207
206
|
|
208
207
|
|
209
208
|
<span class="summary_desc"><div class='inline'>
|
210
|
-
<p>Zip <code>self</code> with <code>other</code>, combining the elements with
|
211
|
-
the provided block or symbol.</p>
|
209
|
+
<p>Zip <code>self</code> with <code>other</code>, combining the elements with the provided block or symbol.</p>
|
212
210
|
</div></span>
|
213
211
|
|
214
212
|
</li>
|
@@ -237,15 +235,19 @@ the provided block or symbol.</p>
|
|
237
235
|
|
238
236
|
<p>Returns an array containing elements exclusive between two arrays.</p>
|
239
237
|
|
240
|
-
<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='rbracket'>]</span> <span class='op'>^</span> <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'>4</span><span class='rbracket'>]</span>
|
241
|
-
<span class='comment'>#=> [3, 4]
|
242
|
-
</span></code></pre>
|
243
|
-
|
244
238
|
|
245
239
|
</div>
|
246
240
|
</div>
|
247
241
|
<div class="tags">
|
248
242
|
|
243
|
+
<div class="examples">
|
244
|
+
<p class="tag_title">Examples:</p>
|
245
|
+
|
246
|
+
|
247
|
+
<pre class="example code"><code><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='rbracket'>]</span> <span class='op'>^</span> <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'>4</span><span class='rbracket'>]</span> <span class='comment'>#=> [3, 4]</span></code></pre>
|
248
|
+
|
249
|
+
</div>
|
250
|
+
|
249
251
|
|
250
252
|
</div><table class="source_code">
|
251
253
|
<tr>
|
@@ -253,12 +255,12 @@ the provided block or symbol.</p>
|
|
253
255
|
<pre class="lines">
|
254
256
|
|
255
257
|
|
256
|
-
5
|
257
258
|
6
|
258
|
-
7
|
259
|
+
7
|
260
|
+
8</pre>
|
259
261
|
</td>
|
260
262
|
<td>
|
261
|
-
<pre class="code"><span class="info file"># File 'lib/shenanigans/array/caret.rb', line
|
263
|
+
<pre class="code"><span class="info file"># File 'lib/shenanigans/array/caret.rb', line 6</span>
|
262
264
|
|
263
265
|
<span class='kw'>def</span> <span class='op'>^</span><span class='lparen'>(</span><span class='id identifier rubyid_other'>other</span><span class='rparen'>)</span>
|
264
266
|
<span class='lparen'>(</span><span class='kw'>self</span> <span class='op'>-</span> <span class='id identifier rubyid_other'>other</span><span class='rparen'>)</span> <span class='op'>|</span> <span class='lparen'>(</span><span class='id identifier rubyid_other'>other</span> <span class='op'>-</span> <span class='kw'>self</span><span class='rparen'>)</span>
|
@@ -280,19 +282,22 @@ the provided block or symbol.</p>
|
|
280
282
|
</h3><div class="docstring">
|
281
283
|
<div class="discussion">
|
282
284
|
|
283
|
-
<p>Generates random subarrays. Uses random numbers and bit-fiddling to assure
|
284
|
-
performant uniform distributions even for large arrays.</p>
|
285
|
-
|
286
|
-
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_a'>a</span> <span class='op'>=</span> <span class='op'>*</span><span class='int'>1</span><span class='op'>..</span><span class='int'>5</span>
|
287
|
-
<span class='id identifier rubyid_a'>a</span><span class='period'>.</span><span class='id identifier rubyid_random_subarray'>random_subarray</span><span class='lparen'>(</span><span class='int'>3</span><span class='rparen'>)</span>
|
288
|
-
<span class='comment'>#=> [[1, 3, 5], [2, 4], [1, 3, 4, 5]]
|
289
|
-
</span></code></pre>
|
285
|
+
<p>Generates random subarrays. Uses random numbers and bit-fiddling to assure performant uniform distributions even for large arrays.</p>
|
290
286
|
|
291
287
|
|
292
288
|
</div>
|
293
289
|
</div>
|
294
290
|
<div class="tags">
|
295
291
|
|
292
|
+
<div class="examples">
|
293
|
+
<p class="tag_title">Examples:</p>
|
294
|
+
|
295
|
+
|
296
|
+
<pre class="example code"><code><span class='id identifier rubyid_a'>a</span> <span class='op'>=</span> <span class='op'>*</span><span class='int'>1</span><span class='op'>..</span><span class='int'>5</span>
|
297
|
+
<span class='id identifier rubyid_a'>a</span><span class='period'>.</span><span class='id identifier rubyid_random_subarray'>random_subarray</span><span class='lparen'>(</span><span class='int'>3</span><span class='rparen'>)</span> <span class='comment'>#=> [[1, 3, 5], [2, 4], [1, 3, 4, 5]]</span></code></pre>
|
298
|
+
|
299
|
+
</div>
|
300
|
+
|
296
301
|
<p class="tag_title">Raises:</p>
|
297
302
|
<ul class="raise">
|
298
303
|
|
@@ -313,22 +318,24 @@ performant uniform distributions even for large arrays.</p>
|
|
313
318
|
<pre class="lines">
|
314
319
|
|
315
320
|
|
316
|
-
9
|
317
321
|
10
|
318
322
|
11
|
319
323
|
12
|
320
324
|
13
|
321
325
|
14
|
322
|
-
15
|
326
|
+
15
|
327
|
+
16
|
328
|
+
17</pre>
|
323
329
|
</td>
|
324
330
|
<td>
|
325
|
-
<pre class="code"><span class="info file"># File 'lib/shenanigans/array/random_subarray.rb', line
|
331
|
+
<pre class="code"><span class="info file"># File 'lib/shenanigans/array/random_subarray.rb', line 10</span>
|
326
332
|
|
327
|
-
<span class='kw'>def</span> <span class='id identifier rubyid_random_subarray'>random_subarray</span><span class='lparen'>(</span><span class='id identifier rubyid_n'>n</span
|
333
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_random_subarray'>random_subarray</span><span class='lparen'>(</span><span class='id identifier rubyid_n'>n</span> <span class='op'>=</span> <span class='int'>1</span><span class='rparen'>)</span>
|
328
334
|
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>negative argument</span><span class='tstring_end'>"</span></span> <span class='kw'>if</span> <span class='id identifier rubyid_n'>n</span> <span class='op'><</span> <span class='int'>0</span>
|
335
|
+
|
329
336
|
<span class='lparen'>(</span><span class='int'>1</span><span class='op'>..</span><span class='id identifier rubyid_n'>n</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='kw'>do</span>
|
330
|
-
<span class='id identifier rubyid_r'>r</span> <span class='op'>=</span> <span class='id identifier rubyid_rand'>rand</span><span class='lparen'>(</span><span class='int'>2</span><span class='op'>**</span><span class='
|
331
|
-
<span class='
|
337
|
+
<span class='id identifier rubyid_r'>r</span> <span class='op'>=</span> <span class='id identifier rubyid_rand'>rand</span><span class='lparen'>(</span><span class='int'>2</span><span class='op'>**</span><span class='id identifier rubyid_size'>size</span><span class='rparen'>)</span>
|
338
|
+
<span class='id identifier rubyid_select'>select</span><span class='period'>.</span><span class='id identifier rubyid_with_index'>with_index</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid__'>_</span><span class='comma'>,</span> <span class='id identifier rubyid_i'>i</span><span class='op'>|</span> <span class='id identifier rubyid_r'>r</span><span class='lbracket'>[</span><span class='id identifier rubyid_i'>i</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='int'>1</span> <span class='rbrace'>}</span>
|
332
339
|
<span class='kw'>end</span>
|
333
340
|
<span class='kw'>end</span></pre>
|
334
341
|
</td>
|
@@ -348,26 +355,40 @@ performant uniform distributions even for large arrays.</p>
|
|
348
355
|
</h3><div class="docstring">
|
349
356
|
<div class="discussion">
|
350
357
|
|
351
|
-
<p>Similar to <code>reduce</code>/<code>inject</code>, but also returns
|
352
|
-
intermediate values. Has the same interface as
|
353
|
-
<code>reduce</code>/<code>inject</code>, so an initial value, an oprator or
|
354
|
-
both can be supplied. This method may eventually be moved to the
|
355
|
-
<code>Enumerable</code> module.</p>
|
356
|
-
|
357
|
-
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_a'>a</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='op'>*</span><span class='int'>1</span><span class='op'>..</span><span class='int'>4</span><span class='rbracket'>]</span>
|
358
|
-
<span class='id identifier rubyid_a'>a</span><span class='period'>.</span><span class='id identifier rubyid_reductions'>reductions</span><span class='lparen'>(</span><span class='symbol'>:+</span><span class='rparen'>)</span>
|
359
|
-
<span class='comment'>#=> 10
|
360
|
-
</span><span class='id identifier rubyid_a'>a</span><span class='period'>.</span><span class='id identifier rubyid_reductions'>reductions</span><span class='lparen'>(</span><span class='int'>50</span><span class='comma'>,</span> <span class='symbol'>:+</span><span class='rparen'>)</span>
|
361
|
-
<span class='comment'>#=> 60
|
362
|
-
</span><span class='qwords_beg'>%w(</span><span class='tstring_content'>a</span><span class='words_sep'> </span><span class='tstring_content'>b</span><span class='words_sep'> </span><span class='tstring_content'>c</span><span class='tstring_end'>)</span></span><span class='period'>.</span><span class='id identifier rubyid_reductions'>reductions</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_s1'>s1</span><span class='comma'>,</span> <span class='id identifier rubyid_s2'>s2</span><span class='op'>|</span> <span class='id identifier rubyid_s1'>s1</span><span class='op'>+</span><span class='id identifier rubyid_s2'>s2</span> <span class='rbrace'>}</span>
|
363
|
-
<span class='comment'>#=> ["a", "ab", "abc"]
|
364
|
-
</span></code></pre>
|
358
|
+
<p>Similar to <code>reduce</code>/<code>inject</code>, but also returns intermediate values. Has the same interface as <code>reduce</code>/<code>inject</code>, so an initial value, an operator or both can be supplied. This method may eventually be moved to the <code>Enumerable</code> module.</p>
|
365
359
|
|
366
360
|
|
367
361
|
</div>
|
368
362
|
</div>
|
369
363
|
<div class="tags">
|
370
364
|
|
365
|
+
<div class="examples">
|
366
|
+
<p class="tag_title">Examples:</p>
|
367
|
+
|
368
|
+
|
369
|
+
<p class="example_title"><div class='inline'>
|
370
|
+
<p>Symbol argument</p>
|
371
|
+
</div></p>
|
372
|
+
|
373
|
+
<pre class="example code"><code><span class='id identifier rubyid_a'>a</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='int'>1</span><span class='op'>..</span><span class='int'>4</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_a'>to_a</span>
|
374
|
+
<span class='id identifier rubyid_a'>a</span><span class='period'>.</span><span class='id identifier rubyid_reductions'>reductions</span><span class='lparen'>(</span><span class='symbol'>:+</span><span class='rparen'>)</span> <span class='comment'>#=> 10</span></code></pre>
|
375
|
+
|
376
|
+
|
377
|
+
<p class="example_title"><div class='inline'>
|
378
|
+
<p>Initial value and symbol argument</p>
|
379
|
+
</div></p>
|
380
|
+
|
381
|
+
<pre class="example code"><code><span class='id identifier rubyid_a'>a</span><span class='period'>.</span><span class='id identifier rubyid_reductions'>reductions</span><span class='lparen'>(</span><span class='int'>50</span><span class='comma'>,</span> <span class='symbol'>:+</span><span class='rparen'>)</span> <span class='comment'>#=> 60</span></code></pre>
|
382
|
+
|
383
|
+
|
384
|
+
<p class="example_title"><div class='inline'>
|
385
|
+
<p>Block argument</p>
|
386
|
+
</div></p>
|
387
|
+
|
388
|
+
<pre class="example code"><code><span class='qwords_beg'>%w(</span><span class='tstring_content'>a</span><span class='words_sep'> </span><span class='tstring_content'>b</span><span class='words_sep'> </span><span class='tstring_content'>c</span><span class='tstring_end'>)</span></span><span class='period'>.</span><span class='id identifier rubyid_reductions'>reductions</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_s1'>s1</span><span class='comma'>,</span> <span class='id identifier rubyid_s2'>s2</span><span class='op'>|</span> <span class='id identifier rubyid_s1'>s1</span><span class='op'>+</span><span class='id identifier rubyid_s2'>s2</span> <span class='rbrace'>}</span> <span class='comment'>#=> ["a", "ab", "abc"]</span></code></pre>
|
389
|
+
|
390
|
+
</div>
|
391
|
+
|
371
392
|
<p class="tag_title">Raises:</p>
|
372
393
|
<ul class="raise">
|
373
394
|
|
@@ -388,9 +409,6 @@ both can be supplied. This method may eventually be moved to the
|
|
388
409
|
<pre class="lines">
|
389
410
|
|
390
411
|
|
391
|
-
11
|
392
|
-
12
|
393
|
-
13
|
394
412
|
14
|
395
413
|
15
|
396
414
|
16
|
@@ -405,10 +423,13 @@ both can be supplied. This method may eventually be moved to the
|
|
405
423
|
25
|
406
424
|
26
|
407
425
|
27
|
408
|
-
28
|
426
|
+
28
|
427
|
+
29
|
428
|
+
30
|
429
|
+
31</pre>
|
409
430
|
</td>
|
410
431
|
<td>
|
411
|
-
<pre class="code"><span class="info file"># File 'lib/shenanigans/array/reductions.rb', line
|
432
|
+
<pre class="code"><span class="info file"># File 'lib/shenanigans/array/reductions.rb', line 14</span>
|
412
433
|
|
413
434
|
<span class='kw'>def</span> <span class='id identifier rubyid_reductions'>reductions</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
414
435
|
<span class='id identifier rubyid_arr'>arr</span> <span class='op'>=</span> <span class='id identifier rubyid_dup'>dup</span>
|
@@ -423,10 +444,10 @@ both can be supplied. This method may eventually be moved to the
|
|
423
444
|
|
424
445
|
<span class='id identifier rubyid_initial'>initial</span> <span class='op'>||=</span> <span class='id identifier rubyid_arr'>arr</span><span class='period'>.</span><span class='id identifier rubyid_shift'>shift</span>
|
425
446
|
|
426
|
-
<span class='id identifier rubyid_arr'>arr</span><span class='period'>.</span><span class='id identifier rubyid_inject'>inject</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='id identifier rubyid_initial'>initial</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_initial'>initial</span><span class='rbracket'>]</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='
|
447
|
+
<span class='id identifier rubyid_arr'>arr</span><span class='period'>.</span><span class='id identifier rubyid_inject'>inject</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='id identifier rubyid_initial'>initial</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_initial'>initial</span><span class='rbracket'>]</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='lparen'>(</span><span class='id identifier rubyid_acc'>acc</span><span class='comma'>,</span> <span class='id identifier rubyid_result'>result</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='id identifier rubyid_el'>el</span><span class='op'>|</span>
|
427
448
|
<span class='id identifier rubyid_val'>val</span> <span class='op'>=</span> <span class='id identifier rubyid_op'>op</span> <span class='op'>?</span> <span class='id identifier rubyid_acc'>acc</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_op'>op</span><span class='comma'>,</span> <span class='id identifier rubyid_el'>el</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='kw'>yield</span><span class='lparen'>(</span><span class='id identifier rubyid_acc'>acc</span><span class='comma'>,</span> <span class='id identifier rubyid_el'>el</span><span class='rparen'>)</span>
|
428
449
|
<span class='lbracket'>[</span><span class='id identifier rubyid_val'>val</span><span class='comma'>,</span> <span class='id identifier rubyid_result'>result</span> <span class='op'><<</span> <span class='id identifier rubyid_val'>val</span><span class='rbracket'>]</span>
|
429
|
-
<span class='
|
450
|
+
<span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_last'>last</span>
|
430
451
|
<span class='kw'>end</span></pre>
|
431
452
|
</td>
|
432
453
|
</tr>
|
@@ -445,27 +466,34 @@ both can be supplied. This method may eventually be moved to the
|
|
445
466
|
</h3><div class="docstring">
|
446
467
|
<div class="discussion">
|
447
468
|
|
448
|
-
<p>Zip <code>self</code> with <code>other</code>, combining the elements with
|
449
|
-
the provided block or symbol. The resulting array will be as long as the
|
450
|
-
shorter of the two arrays.</p>
|
451
|
-
|
452
|
-
<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='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_zip_with'>zip_with</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='int'>6</span><span class='comma'>,</span><span class='int'>5</span><span class='comma'>,</span><span class='int'>4</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='symbol'>:+</span><span class='rparen'>)</span>
|
453
|
-
<span class='comment'>#=> [7, 7, 7]
|
454
|
-
</span><span class='qwords_beg'>%w(</span><span class='tstring_content'>a</span><span class='words_sep'> </span><span class='tstring_content'>b</span><span class='tstring_end'>)</span></span><span class='period'>.</span><span class='id identifier rubyid_zip_with'>zip_with</span><span class='lparen'>(</span><span class='qwords_beg'>%w(</span><span class='tstring_content'>c</span><span class='words_sep'> </span><span class='tstring_content'>d</span><span class='tstring_end'>)</span></span><span class='comma'>,</span> <span class='symbol'>:+</span><span class='rparen'>)</span>
|
455
|
-
<span class='comment'>#=> ["ac", "bd"]
|
456
|
-
</span></code></pre>
|
457
|
-
|
458
|
-
<p>For more complex combinations, a block can be provided:</p>
|
459
|
-
|
460
|
-
<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='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_zip_with'>zip_with</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='int'>6</span><span class='comma'>,</span><span class='int'>5</span><span class='comma'>,</span><span class='int'>4</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_a'>a</span><span class='comma'>,</span><span class='id identifier rubyid_b'>b</span><span class='op'>|</span> <span class='int'>3</span><span class='op'>*</span><span class='id identifier rubyid_a'>a</span><span class='op'>+</span><span class='int'>2</span><span class='op'>*</span><span class='id identifier rubyid_b'>b</span> <span class='rbrace'>}</span>
|
461
|
-
<span class='comment'>#=> [15, 16, 17]
|
462
|
-
</span></code></pre>
|
469
|
+
<p>Zip <code>self</code> with <code>other</code>, combining the elements with the provided block or symbol. The resulting array will be as long as the shorter of the two arrays.</p>
|
463
470
|
|
464
471
|
|
465
472
|
</div>
|
466
473
|
</div>
|
467
474
|
<div class="tags">
|
468
475
|
|
476
|
+
<div class="examples">
|
477
|
+
<p class="tag_title">Examples:</p>
|
478
|
+
|
479
|
+
|
480
|
+
<p class="example_title"><div class='inline'>
|
481
|
+
<p>With a symbol</p>
|
482
|
+
</div></p>
|
483
|
+
|
484
|
+
<pre class="example code"><code><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='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_zip_with'>zip_with</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='int'>6</span><span class='comma'>,</span><span class='int'>5</span><span class='comma'>,</span><span class='int'>4</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='symbol'>:+</span><span class='rparen'>)</span> <span class='comment'>#=> [7, 7, 7]
|
485
|
+
</span><span class='qwords_beg'>%w(</span><span class='tstring_content'>a</span><span class='words_sep'> </span><span class='tstring_content'>b</span><span class='tstring_end'>)</span></span><span class='period'>.</span><span class='id identifier rubyid_zip_with'>zip_with</span><span class='lparen'>(</span><span class='qwords_beg'>%w(</span><span class='tstring_content'>c</span><span class='words_sep'> </span><span class='tstring_content'>d</span><span class='tstring_end'>)</span></span><span class='comma'>,</span> <span class='symbol'>:+</span><span class='rparen'>)</span> <span class='comment'>#=> ["ac", "bd"]</span></code></pre>
|
486
|
+
|
487
|
+
|
488
|
+
<p class="example_title"><div class='inline'>
|
489
|
+
<p>With a block</p>
|
490
|
+
</div></p>
|
491
|
+
|
492
|
+
<pre class="example code"><code><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='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_zip_with'>zip_with</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='int'>6</span><span class='comma'>,</span><span class='int'>5</span><span class='comma'>,</span><span class='int'>4</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_a'>a</span><span class='comma'>,</span><span class='id identifier rubyid_b'>b</span><span class='op'>|</span> <span class='int'>3</span> <span class='op'>*</span> <span class='id identifier rubyid_a'>a</span> <span class='op'>+</span> <span class='int'>2</span> <span class='op'>*</span> <span class='id identifier rubyid_b'>b</span> <span class='rbrace'>}</span><span class='comment'>#=> [15, 16, 17]</span>
|
493
|
+
</code></pre>
|
494
|
+
|
495
|
+
</div>
|
496
|
+
|
469
497
|
|
470
498
|
</div><table class="source_code">
|
471
499
|
<tr>
|
@@ -473,6 +501,10 @@ shorter of the two arrays.</p>
|
|
473
501
|
<pre class="lines">
|
474
502
|
|
475
503
|
|
504
|
+
12
|
505
|
+
13
|
506
|
+
14
|
507
|
+
15
|
476
508
|
16
|
477
509
|
17
|
478
510
|
18
|
@@ -480,17 +512,15 @@ shorter of the two arrays.</p>
|
|
480
512
|
20
|
481
513
|
21
|
482
514
|
22
|
483
|
-
23
|
484
|
-
24
|
485
|
-
25
|
486
|
-
26</pre>
|
515
|
+
23</pre>
|
487
516
|
</td>
|
488
517
|
<td>
|
489
|
-
<pre class="code"><span class="info file"># File 'lib/shenanigans/array/zip_with.rb', line
|
518
|
+
<pre class="code"><span class="info file"># File 'lib/shenanigans/array/zip_with.rb', line 12</span>
|
519
|
+
|
520
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_zip_with'>zip_with</span><span class='lparen'>(</span><span class='id identifier rubyid_other'>other</span><span class='comma'>,</span> <span class='id identifier rubyid_op'>op</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
521
|
+
<span class='kw'>return</span> <span class='lbracket'>[</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_empty?'>empty?</span> <span class='op'>||</span> <span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
|
490
522
|
|
491
|
-
<span class='
|
492
|
-
<span class='kw'>return</span> <span class='lbracket'>[</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span> <span class='op'>||</span> <span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
|
493
|
-
<span class='id identifier rubyid_clipped'>clipped</span> <span class='op'>=</span> <span class='kw'>self</span><span class='lbracket'>[</span><span class='int'>0</span><span class='op'>..</span><span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span>
|
523
|
+
<span class='id identifier rubyid_clipped'>clipped</span> <span class='op'>=</span> <span class='kw'>self</span><span class='lbracket'>[</span><span class='int'>0</span><span class='op'>..</span><span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>-</span> <span class='int'>1</span><span class='rbracket'>]</span>
|
494
524
|
<span class='id identifier rubyid_zipped'>zipped</span> <span class='op'>=</span> <span class='id identifier rubyid_clipped'>clipped</span><span class='period'>.</span><span class='id identifier rubyid_zip'>zip</span><span class='lparen'>(</span><span class='id identifier rubyid_other'>other</span><span class='rparen'>)</span>
|
495
525
|
|
496
526
|
<span class='kw'>if</span> <span class='id identifier rubyid_op'>op</span>
|
@@ -509,9 +539,9 @@ shorter of the two arrays.</p>
|
|
509
539
|
</div>
|
510
540
|
|
511
541
|
<div id="footer">
|
512
|
-
Generated on
|
542
|
+
Generated on Tue May 5 19:54:28 2020 by
|
513
543
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
514
|
-
0.9.
|
544
|
+
0.9.24 (ruby-2.7.1).
|
515
545
|
</div>
|
516
546
|
|
517
547
|
</div>
|
data/doc/Hash.html
CHANGED
@@ -6,15 +6,15 @@
|
|
6
6
|
<title>
|
7
7
|
Class: Hash
|
8
8
|
|
9
|
-
— Documentation by YARD 0.9.
|
9
|
+
— Documentation by YARD 0.9.24
|
10
10
|
|
11
11
|
</title>
|
12
12
|
|
13
|
-
<link rel="stylesheet" href="css/style.css" type="text/css"
|
13
|
+
<link rel="stylesheet" href="css/style.css" type="text/css" />
|
14
14
|
|
15
|
-
<link rel="stylesheet" href="css/common.css" type="text/css"
|
15
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" />
|
16
16
|
|
17
|
-
<script type="text/javascript"
|
17
|
+
<script type="text/javascript">
|
18
18
|
pathId = "Hash";
|
19
19
|
relpath = '';
|
20
20
|
</script>
|
@@ -182,8 +182,7 @@
|
|
182
182
|
|
183
183
|
|
184
184
|
<span class="summary_desc"><div class='inline'>
|
185
|
-
<p>Recursively converts a <code>Hash</code> and all nested <code>Hash</code>es
|
186
|
-
to <code>OpenStruct</code>s.</p>
|
185
|
+
<p>Recursively converts a <code>Hash</code> and all nested <code>Hash</code>es to <code>OpenStruct</code>s.</p>
|
187
186
|
</div></span>
|
188
187
|
|
189
188
|
</li>
|
@@ -212,18 +211,31 @@ to <code>OpenStruct</code>s.</p>
|
|
212
211
|
|
213
212
|
<p>Returns a new hash only with the specified keys (if present).</p>
|
214
213
|
|
215
|
-
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_hash'>hash</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='label'>a:</span> <span class='int'>1</span><span class='comma'>,</span> <span class='label'>b:</span> <span class='int'>2</span><span class='comma'>,</span> <span class='label'>c:</span> <span class='int'>3</span> <span class='rbrace'>}</span>
|
216
|
-
<span class='id identifier rubyid_hash'>hash</span><span class='period'>.</span><span class='id identifier rubyid_extract'>extract</span><span class='lparen'>(</span><span class='symbol'>:b</span><span class='comma'>,</span> <span class='symbol'>:a</span><span class='rparen'>)</span>
|
217
|
-
<span class='comment'>#=> { a: 1, b: 2 }
|
218
|
-
</span><span class='id identifier rubyid_hash'>hash</span><span class='period'>.</span><span class='id identifier rubyid_extract'>extract</span><span class='lparen'>(</span><span class='symbol'>:a</span><span class='comma'>,</span> <span class='symbol'>:d</span><span class='rparen'>)</span>
|
219
|
-
<span class='comment'>#=> { a: 1}
|
220
|
-
</span></code></pre>
|
221
|
-
|
222
214
|
|
223
215
|
</div>
|
224
216
|
</div>
|
225
217
|
<div class="tags">
|
226
218
|
|
219
|
+
<div class="examples">
|
220
|
+
<p class="tag_title">Examples:</p>
|
221
|
+
|
222
|
+
|
223
|
+
<p class="example_title"><div class='inline'>
|
224
|
+
<p>Key order does not matter</p>
|
225
|
+
</div></p>
|
226
|
+
|
227
|
+
<pre class="example code"><code><span class='id identifier rubyid_hash'>hash</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='label'>a:</span> <span class='int'>1</span><span class='comma'>,</span> <span class='label'>b:</span> <span class='int'>2</span><span class='comma'>,</span> <span class='label'>c:</span> <span class='int'>3</span> <span class='rbrace'>}</span>
|
228
|
+
<span class='id identifier rubyid_hash'>hash</span><span class='period'>.</span><span class='id identifier rubyid_extract'>extract</span><span class='lparen'>(</span><span class='symbol'>:b</span><span class='comma'>,</span> <span class='symbol'>:a</span><span class='rparen'>)</span> <span class='comment'>#=> { a: 1, b: 2 }</span></code></pre>
|
229
|
+
|
230
|
+
|
231
|
+
<p class="example_title"><div class='inline'>
|
232
|
+
<p>Missing keys are ignored</p>
|
233
|
+
</div></p>
|
234
|
+
|
235
|
+
<pre class="example code"><code><span class='id identifier rubyid_hash'>hash</span><span class='period'>.</span><span class='id identifier rubyid_extract'>extract</span><span class='lparen'>(</span><span class='symbol'>:a</span><span class='comma'>,</span> <span class='symbol'>:d</span><span class='rparen'>)</span> <span class='comment'>#=> { a: 1}</span></code></pre>
|
236
|
+
|
237
|
+
</div>
|
238
|
+
|
227
239
|
|
228
240
|
</div><table class="source_code">
|
229
241
|
<tr>
|
@@ -231,13 +243,13 @@ to <code>OpenStruct</code>s.</p>
|
|
231
243
|
<pre class="lines">
|
232
244
|
|
233
245
|
|
234
|
-
8
|
235
246
|
9
|
236
247
|
10
|
237
|
-
11
|
248
|
+
11
|
249
|
+
12</pre>
|
238
250
|
</td>
|
239
251
|
<td>
|
240
|
-
<pre class="code"><span class="info file"># File 'lib/shenanigans/hash/extract.rb', line
|
252
|
+
<pre class="code"><span class="info file"># File 'lib/shenanigans/hash/extract.rb', line 9</span>
|
241
253
|
|
242
254
|
<span class='kw'>def</span> <span class='id identifier rubyid_extract'>extract</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_ks'>ks</span><span class='rparen'>)</span>
|
243
255
|
<span class='id identifier rubyid_existing'>existing</span> <span class='op'>=</span> <span class='id identifier rubyid_keys'>keys</span> <span class='op'>&</span> <span class='id identifier rubyid_ks'>ks</span>
|
@@ -262,26 +274,34 @@ to <code>OpenStruct</code>s.</p>
|
|
262
274
|
|
263
275
|
<p>Checks if a hash has a certain structure.</p>
|
264
276
|
|
265
|
-
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_h'>h</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='label'>k1:</span> <span class='int'>1</span><span class='comma'>,</span> <span class='label'>k2:</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>1</span><span class='tstring_end'>"</span></span> <span class='rbrace'>}</span>
|
266
|
-
<span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_has_shape?'>has_shape?</span><span class='lparen'>(</span><span class='label'>k1:</span> <span class='const'><span class='object_link'><a href="Fixnum.html" title="Fixnum (class)">Fixnum</a></span></span><span class='comma'>,</span> <span class='label'>k2:</span> <span class='const'><span class='object_link'><a href="String.html" title="String (class)">String</a></span></span><span class='rparen'>)</span>
|
267
|
-
<span class='comment'>#=> true
|
268
|
-
</span><span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_has_shape?'>has_shape?</span><span class='lparen'>(</span><span class='label'>k1:</span> <span class='const'>Class</span><span class='comma'>,</span> <span class='label'>k2:</span> <span class='const'><span class='object_link'><a href="String.html" title="String (class)">String</a></span></span><span class='rparen'>)</span>
|
269
|
-
<span class='comment'>#=> false
|
270
|
-
</span></code></pre>
|
271
|
-
|
272
|
-
<p>It also works with compound data structures.</p>
|
273
|
-
|
274
|
-
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_h'>h</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='label'>k1:</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='label'>k2:</span> <span class='lbrace'>{</span> <span class='label'>k3:</span> <span class='const'>Struct</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Foo</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span> <span class='rbrace'>}</span> <span class='rbrace'>}</span>
|
275
|
-
<span class='id identifier rubyid_shape'>shape</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='label'>k1:</span> <span class='const'><span class='object_link'><a href="Array.html" title="Array (class)">Array</a></span></span><span class='comma'>,</span> <span class='label'>k2:</span> <span class='lbrace'>{</span> <span class='label'>k3:</span> <span class='const'><span class='object_link'><a href="Module.html" title="Module (class)">Module</a></span></span> <span class='rbrace'>}</span> <span class='rbrace'>}</span>
|
276
|
-
<span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_has_shape?'>has_shape?</span><span class='lparen'>(</span><span class='id identifier rubyid_shape'>shape</span><span class='rparen'>)</span>
|
277
|
-
<span class='comment'>#=> true
|
278
|
-
</span></code></pre>
|
279
|
-
|
280
277
|
|
281
278
|
</div>
|
282
279
|
</div>
|
283
280
|
<div class="tags">
|
284
281
|
|
282
|
+
<div class="examples">
|
283
|
+
<p class="tag_title">Examples:</p>
|
284
|
+
|
285
|
+
|
286
|
+
<p class="example_title"><div class='inline'>
|
287
|
+
<p>Simple hash</p>
|
288
|
+
</div></p>
|
289
|
+
|
290
|
+
<pre class="example code"><code><span class='id identifier rubyid_h'>h</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='label'>k1:</span> <span class='int'>1</span><span class='comma'>,</span> <span class='label'>k2:</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>1</span><span class='tstring_end'>"</span></span> <span class='rbrace'>}</span>
|
291
|
+
<span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_has_shape?'>has_shape?</span><span class='lparen'>(</span><span class='label'>k1:</span> <span class='const'>Fixnum</span><span class='comma'>,</span> <span class='label'>k2:</span> <span class='const'><span class='object_link'><a href="String.html" title="String (class)">String</a></span></span><span class='rparen'>)</span> <span class='comment'>#=> true
|
292
|
+
</span><span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_has_shape?'>has_shape?</span><span class='lparen'>(</span><span class='label'>k1:</span> <span class='const'>Class</span><span class='comma'>,</span> <span class='label'>k2:</span> <span class='const'><span class='object_link'><a href="String.html" title="String (class)">String</a></span></span><span class='rparen'>)</span> <span class='comment'>#=> false</span></code></pre>
|
293
|
+
|
294
|
+
|
295
|
+
<p class="example_title"><div class='inline'>
|
296
|
+
<p>Nested hashes</p>
|
297
|
+
</div></p>
|
298
|
+
|
299
|
+
<pre class="example code"><code><span class='id identifier rubyid_h'>h</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='label'>k1:</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='label'>k2:</span> <span class='lbrace'>{</span> <span class='label'>k3:</span> <span class='const'>Struct</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Foo</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span> <span class='rbrace'>}</span> <span class='rbrace'>}</span>
|
300
|
+
<span class='id identifier rubyid_shape'>shape</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='label'>k1:</span> <span class='const'><span class='object_link'><a href="Array.html" title="Array (class)">Array</a></span></span><span class='comma'>,</span> <span class='label'>k2:</span> <span class='lbrace'>{</span> <span class='label'>k3:</span> <span class='const'><span class='object_link'><a href="Module.html" title="Module (class)">Module</a></span></span> <span class='rbrace'>}</span> <span class='rbrace'>}</span>
|
301
|
+
<span class='id identifier rubyid_h'>h</span><span class='period'>.</span><span class='id identifier rubyid_has_shape?'>has_shape?</span><span class='lparen'>(</span><span class='id identifier rubyid_shape'>shape</span><span class='rparen'>)</span> <span class='comment'>#=> true</span></code></pre>
|
302
|
+
|
303
|
+
</div>
|
304
|
+
|
285
305
|
<p class="tag_title">Returns:</p>
|
286
306
|
<ul class="return">
|
287
307
|
|
@@ -302,14 +322,14 @@ to <code>OpenStruct</code>s.</p>
|
|
302
322
|
<pre class="lines">
|
303
323
|
|
304
324
|
|
325
|
+
12
|
305
326
|
13
|
306
327
|
14
|
307
328
|
15
|
308
|
-
16
|
309
|
-
17</pre>
|
329
|
+
16</pre>
|
310
330
|
</td>
|
311
331
|
<td>
|
312
|
-
<pre class="code"><span class="info file"># File 'lib/shenanigans/hash/has_shape_pred.rb', line
|
332
|
+
<pre class="code"><span class="info file"># File 'lib/shenanigans/hash/has_shape_pred.rb', line 12</span>
|
313
333
|
|
314
334
|
<span class='kw'>def</span> <span class='id identifier rubyid_has_shape?'>has_shape?</span><span class='lparen'>(</span><span class='id identifier rubyid_shape'>shape</span><span class='rparen'>)</span>
|
315
335
|
<span class='id identifier rubyid_all?'>all?</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_k'>k</span><span class='comma'>,</span> <span class='id identifier rubyid_v'>v</span><span class='op'>|</span>
|
@@ -333,10 +353,18 @@ to <code>OpenStruct</code>s.</p>
|
|
333
353
|
</h3><div class="docstring">
|
334
354
|
<div class="discussion">
|
335
355
|
|
336
|
-
<p>Recursively converts a <code>Hash</code> and all nested <code>Hash</code>es
|
337
|
-
|
356
|
+
<p>Recursively converts a <code>Hash</code> and all nested <code>Hash</code>es to <code>OpenStruct</code>s. Especially useful for parsing YAML.</p>
|
357
|
+
|
338
358
|
|
339
|
-
|
359
|
+
</div>
|
360
|
+
</div>
|
361
|
+
<div class="tags">
|
362
|
+
|
363
|
+
<div class="examples">
|
364
|
+
<p class="tag_title">Examples:</p>
|
365
|
+
|
366
|
+
|
367
|
+
<pre class="example code"><code><span class='id identifier rubyid_yaml'>yaml</span><span class='op'>=</span><span class='heredoc_beg'><<EOY</span>
|
340
368
|
<span class='tstring_content'>subject: Programming Languages
|
341
369
|
languages:
|
342
370
|
- name : Ruby
|
@@ -347,19 +375,12 @@ languages:
|
|
347
375
|
creator : Larry Wall
|
348
376
|
</span><span class='heredoc_end'>EOY
|
349
377
|
</span><span class='id identifier rubyid_struct'>struct</span> <span class='op'>=</span> <span class='const'>YAML</span><span class='period'>.</span><span class='id identifier rubyid_load'>load</span><span class='lparen'>(</span><span class='id identifier rubyid_yaml'>yaml</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_ostruct'>to_ostruct</span>
|
350
|
-
<span class='id identifier rubyid_struct'>struct</span><span class='period'>.</span><span class='id identifier rubyid_subject'>subject</span>
|
351
|
-
<span class='comment'>#=> "
|
352
|
-
</span><span class='id identifier rubyid_struct'>struct</span><span class='period'>.</span><span class='id identifier rubyid_languages'>languages</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span>
|
353
|
-
|
354
|
-
</span><span class='id identifier rubyid_struct'>struct</span><span class='period'>.</span><span class='id identifier rubyid_languages'>languages</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span><span class='period'>.</span><span class='id identifier rubyid_creator'>creator</span>
|
355
|
-
<span class='comment'>#=> "Matz"
|
356
|
-
</span></code></pre>
|
357
|
-
|
358
|
-
|
378
|
+
<span class='id identifier rubyid_struct'>struct</span><span class='period'>.</span><span class='id identifier rubyid_subject'>subject</span> <span class='comment'>#=> "Programming Languages"
|
379
|
+
</span><span class='id identifier rubyid_struct'>struct</span><span class='period'>.</span><span class='id identifier rubyid_languages'>languages</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span> <span class='comment'>#=> #<OpenStruct name="Ruby", creator="Matz">
|
380
|
+
</span><span class='id identifier rubyid_struct'>struct</span><span class='period'>.</span><span class='id identifier rubyid_languages'>languages</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span><span class='period'>.</span><span class='id identifier rubyid_creator'>creator</span> <span class='comment'>#=> "Matz"</span></code></pre>
|
381
|
+
|
359
382
|
</div>
|
360
|
-
|
361
|
-
<div class="tags">
|
362
|
-
|
383
|
+
|
363
384
|
|
364
385
|
</div><table class="source_code">
|
365
386
|
<tr>
|
@@ -367,6 +388,7 @@ languages:
|
|
367
388
|
<pre class="lines">
|
368
389
|
|
369
390
|
|
391
|
+
22
|
370
392
|
23
|
371
393
|
24
|
372
394
|
25
|
@@ -378,14 +400,13 @@ languages:
|
|
378
400
|
31
|
379
401
|
32
|
380
402
|
33
|
381
|
-
34
|
382
|
-
35</pre>
|
403
|
+
34</pre>
|
383
404
|
</td>
|
384
405
|
<td>
|
385
|
-
<pre class="code"><span class="info file"># File 'lib/shenanigans/hash/to_ostruct.rb', line
|
406
|
+
<pre class="code"><span class="info file"># File 'lib/shenanigans/hash/to_ostruct.rb', line 22</span>
|
386
407
|
|
387
408
|
<span class='kw'>def</span> <span class='id identifier rubyid_to_ostruct'>to_ostruct</span>
|
388
|
-
<span class='id identifier rubyid_arr'>arr</span> <span class='op'>=</span> <span class='id identifier rubyid_map'>map</span> <span class='
|
409
|
+
<span class='id identifier rubyid_arr'>arr</span> <span class='op'>=</span> <span class='id identifier rubyid_map'>map</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_k'>k</span><span class='comma'>,</span> <span class='id identifier rubyid_v'>v</span><span class='op'>|</span>
|
389
410
|
<span class='kw'>case</span> <span class='id identifier rubyid_v'>v</span>
|
390
411
|
<span class='kw'>when</span> <span class='const'><span class='object_link'><a href="" title="Hash (class)">Hash</a></span></span>
|
391
412
|
<span class='lbracket'>[</span><span class='id identifier rubyid_k'>k</span><span class='comma'>,</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_to_ostruct'>to_ostruct</span><span class='rbracket'>]</span>
|
@@ -394,7 +415,7 @@ languages:
|
|
394
415
|
<span class='kw'>else</span>
|
395
416
|
<span class='lbracket'>[</span><span class='id identifier rubyid_k'>k</span><span class='comma'>,</span> <span class='id identifier rubyid_v'>v</span><span class='rbracket'>]</span>
|
396
417
|
<span class='kw'>end</span>
|
397
|
-
<span class='
|
418
|
+
<span class='rbrace'>}</span>
|
398
419
|
<span class='const'>OpenStruct</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="" title="Hash (class)">Hash</a></span></span><span class='lbracket'>[</span><span class='id identifier rubyid_arr'>arr</span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
399
420
|
<span class='kw'>end</span></pre>
|
400
421
|
</td>
|
@@ -407,9 +428,9 @@ languages:
|
|
407
428
|
</div>
|
408
429
|
|
409
430
|
<div id="footer">
|
410
|
-
Generated on
|
431
|
+
Generated on Tue May 5 19:54:28 2020 by
|
411
432
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
412
|
-
0.9.
|
433
|
+
0.9.24 (ruby-2.7.1).
|
413
434
|
</div>
|
414
435
|
|
415
436
|
</div>
|