shenanigans 1.0.13 → 1.0.14

Sign up to get free protection for your applications and to get access to all the features.
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>