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.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -1
  3. data/doc/Array.html +104 -74
  4. data/doc/Hash.html +77 -56
  5. data/doc/{Fixnum.html → Integer.html} +31 -27
  6. data/doc/Kernel.html +114 -74
  7. data/doc/Module.html +11 -15
  8. data/doc/Object.html +24 -95
  9. data/doc/String.html +31 -30
  10. data/doc/_index.html +13 -13
  11. data/doc/class_list.html +3 -3
  12. data/doc/css/style.css +6 -9
  13. data/doc/file.README.html +19 -48
  14. data/doc/file_list.html +2 -2
  15. data/doc/frames.html +2 -2
  16. data/doc/index.html +19 -48
  17. data/doc/js/app.js +69 -3
  18. data/doc/method_list.html +12 -20
  19. data/doc/top-level-namespace.html +7 -7
  20. data/lib/shenanigans.rb +7 -7
  21. data/lib/shenanigans/array.rb +3 -3
  22. data/lib/shenanigans/array/caret.rb +3 -2
  23. data/lib/shenanigans/array/random_subarray.rb +7 -5
  24. data/lib/shenanigans/array/reductions.rb +13 -10
  25. data/lib/shenanigans/array/zip_with.rb +9 -12
  26. data/lib/shenanigans/hash.rb +3 -3
  27. data/lib/shenanigans/hash/extract.rb +5 -4
  28. data/lib/shenanigans/hash/has_shape_pred.rb +6 -7
  29. data/lib/shenanigans/hash/to_ostruct.rb +8 -9
  30. data/lib/shenanigans/integer.rb +1 -0
  31. data/lib/shenanigans/integer/string_length.rb +13 -0
  32. data/lib/shenanigans/kernel.rb +4 -4
  33. data/lib/shenanigans/kernel/fn.rb +7 -6
  34. data/lib/shenanigans/kernel/prompt.rb +6 -7
  35. data/lib/shenanigans/kernel/require_optional.rb +8 -8
  36. data/lib/shenanigans/kernel/with.rb +4 -3
  37. data/lib/shenanigans/module.rb +1 -1
  38. data/lib/shenanigans/module/private_accessor.rb +6 -6
  39. data/lib/shenanigans/object.rb +1 -2
  40. data/lib/shenanigans/object/display.rb +5 -4
  41. data/lib/shenanigans/string.rb +2 -2
  42. data/lib/shenanigans/string/cmpi.rb +4 -3
  43. data/lib/shenanigans/string/in_groups_of.rb +4 -6
  44. data/test/array/caret_test.rb +9 -0
  45. data/test/array/{test_random_subarray.rb → random_subarray_test.rb} +3 -3
  46. data/test/array/reductions_test.rb +27 -0
  47. data/test/array/zip_with_test.rb +14 -0
  48. data/test/hash/extract_test.rb +11 -0
  49. data/test/hash/{test_has_shape_pred.rb → has_shape_pred_test.rb} +3 -3
  50. data/test/hash/{test_to_ostruct.rb → to_ostruct_test.rb} +3 -3
  51. data/test/integer/string_length_test.rb +16 -0
  52. data/test/kernel/fn_test.rb +14 -0
  53. data/test/kernel/{test_prompt.rb → prompt_test.rb} +4 -4
  54. data/test/kernel/require_optional_test.rb +15 -0
  55. data/test/kernel/with_test.rb +12 -0
  56. data/test/module/{test_private_accessor.rb → private_accessor_test.rb} +3 -3
  57. data/test/object/{test_display.rb → display_test.rb} +4 -5
  58. data/test/string/{test_cmpi.rb → cmpi_test.rb} +3 -3
  59. data/test/string/in_groups_of_test.rb +11 -0
  60. metadata +22 -25
  61. data/lib/shenanigans/fixnum.rb +0 -1
  62. data/lib/shenanigans/fixnum/string_length.rb +0 -14
  63. data/lib/shenanigans/object/it.rb +0 -9
  64. data/test/array/test_caret.rb +0 -9
  65. data/test/array/test_reductions.rb +0 -27
  66. data/test/array/test_zip_with.rb +0 -14
  67. data/test/fixnum/test_string_length.rb +0 -16
  68. data/test/hash/test_extract.rb +0 -11
  69. data/test/kernel/test_fn.rb +0 -14
  70. data/test/kernel/test_require_optional.rb +0 -17
  71. data/test/kernel/test_with.rb +0 -12
  72. data/test/object/test_it.rb +0 -10
  73. 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: a9f1eccb5f91c4900d73028357417c17999b7c69b5e775d506973fd90eeff8d6
4
- data.tar.gz: 8c3d497d30c2081f7262096c3af8a7c3e65cec4d0841265476bae9943bd0a302
3
+ metadata.gz: 0b2455418fc4671757f0ed454480bab16c0932e3ec8bf7f2c63f6f565319d64c
4
+ data.tar.gz: 9b359a6bb6504d3664591bb396845caaba048323e7c7cb46b16ceacd34611929
5
5
  SHA512:
6
- metadata.gz: a3feeb73a90347f1270f214a7fab07316c08823908c1fc76f434a56bccd40e1a600cf2155942469d2028bcef60fa02d8391b163b95d3f4dcc1b621711ece36e2
7
- data.tar.gz: d9e206db73770af8e1265152eedcfbcca3ffdfb60bb1afc0f1fc0ae9c10704062d862dbc5f9b99bf90d5bf4be512dd57c75408da99c2944cf2bcc3d06ef40d17
6
+ metadata.gz: 6ada5cb0858a97e82f34bb5523822868e1c9c2133d8542bced908a467c0de00e902c3fff86004449bfcc9e52bc92bf25c500f583a15dd80da85436f0a6a923a8
7
+ data.tar.gz: 4fabbfc917479bf8794233a80005c51a0b37057e329122109190de4ee18a18c4f869e1fd0c4aa9c07e9ee2223b9aa59bade9b16e24f01c357e8f5cefe2dbc827
data/Gemfile CHANGED
@@ -1,8 +1,9 @@
1
- source 'https://rubygems.org'
1
+ source "https://rubygems.org"
2
2
 
3
3
  gem "rake"
4
4
 
5
5
  group :developement do
6
6
  gem "minitest", ">= 2.6.0"
7
+ gem "standard"
7
8
  gem "yard"
8
9
  end
@@ -6,15 +6,15 @@
6
6
  <title>
7
7
  Class: Array
8
8
 
9
- &mdash; Documentation by YARD 0.9.12
9
+ &mdash; Documentation by YARD 0.9.24
10
10
 
11
11
  </title>
12
12
 
13
- <link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
13
+ <link rel="stylesheet" href="css/style.css" type="text/css" />
14
14
 
15
- <link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
15
+ <link rel="stylesheet" href="css/common.css" type="text/css" />
16
16
 
17
- <script type="text/javascript" charset="utf-8">
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'>#=&gt; [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'>#=&gt; [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</pre>
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 5</span>
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'>#=&gt; [[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'>#=&gt; [[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</pre>
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 9</span>
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><span class='op'>=</span><span class='int'>1</span><span class='rparen'>)</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'>&quot;</span><span class='tstring_content'>negative argument</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>if</span> <span class='id identifier rubyid_n'>n</span> <span class='op'>&lt;</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='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span><span class='rparen'>)</span>
331
- <span class='kw'>self</span><span class='period'>.</span><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>
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'>#=&gt; 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'>#=&gt; 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'>#=&gt; [&quot;a&quot;, &quot;ab&quot;, &quot;abc&quot;]
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'>#=&gt; 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'>#=&gt; 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'>#=&gt; [&quot;a&quot;, &quot;ab&quot;, &quot;abc&quot;]</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</pre>
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 11</span>
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'>&amp;</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='kw'>do</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>
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'>&lt;&lt;</span> <span class='id identifier rubyid_val'>val</span><span class='rbracket'>]</span>
429
- <span class='kw'>end</span><span class='period'>.</span><span class='id identifier rubyid_last'>last</span>
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'>#=&gt; [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'>#=&gt; [&quot;ac&quot;, &quot;bd&quot;]
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'>#=&gt; [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'>#=&gt; [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'>#=&gt; [&quot;ac&quot;, &quot;bd&quot;]</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'>#=&gt; [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 16</span>
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='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>
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 Thu Feb 1 16:36:54 2018 by
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.12 (ruby-2.5.0).
544
+ 0.9.24 (ruby-2.7.1).
515
545
  </div>
516
546
 
517
547
  </div>
@@ -6,15 +6,15 @@
6
6
  <title>
7
7
  Class: Hash
8
8
 
9
- &mdash; Documentation by YARD 0.9.12
9
+ &mdash; Documentation by YARD 0.9.24
10
10
 
11
11
  </title>
12
12
 
13
- <link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
13
+ <link rel="stylesheet" href="css/style.css" type="text/css" />
14
14
 
15
- <link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
15
+ <link rel="stylesheet" href="css/common.css" type="text/css" />
16
16
 
17
- <script type="text/javascript" charset="utf-8">
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'>#=&gt; { 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'>#=&gt; { 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'>#=&gt; { 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'>#=&gt; { 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</pre>
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 8</span>
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'>&amp;</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'>&quot;</span><span class='tstring_content'>1</span><span class='tstring_end'>&quot;</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'>#=&gt; 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'>#=&gt; 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'>&quot;</span><span class='tstring_content'>Foo</span><span class='tstring_end'>&quot;</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'>#=&gt; 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'>&quot;</span><span class='tstring_content'>1</span><span class='tstring_end'>&quot;</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'>#=&gt; 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'>#=&gt; 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'>&quot;</span><span class='tstring_content'>Foo</span><span class='tstring_end'>&quot;</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'>#=&gt; 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 13</span>
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
- to <code>OpenStruct</code>s. Especially useful for parsing YAML.</p>
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
- <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_yaml'>yaml</span><span class='op'>=</span><span class='heredoc_beg'>&lt;&lt;EOY</span>
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'>&lt;&lt;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'>#=&gt; &quot;Programming Languages&quot;
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
- <span class='comment'>#=&gt; #&lt;OpenStruct name=&quot;Ruby&quot;, creator=&quot;Matz&quot;&gt;
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'>#=&gt; &quot;Matz&quot;
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'>#=&gt; &quot;Programming Languages&quot;
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'>#=&gt; #&lt;OpenStruct name=&quot;Ruby&quot;, creator=&quot;Matz&quot;&gt;
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'>#=&gt; &quot;Matz&quot;</span></code></pre>
381
+
359
382
  </div>
360
- </div>
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 23</span>
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='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>
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='kw'>end</span>
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 Thu Feb 1 16:36:55 2018 by
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.12 (ruby-2.5.0).
433
+ 0.9.24 (ruby-2.7.1).
413
434
  </div>
414
435
 
415
436
  </div>