env_parser 1.3.0 → 1.3.2

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 (43) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +1 -1
  3. data/.rubocop.yml +25 -30
  4. data/.ruby-version +1 -1
  5. data/Gemfile.lock +51 -43
  6. data/README.md +1 -1
  7. data/docs/EnvParser/AutoregisterFileNotFound.html +9 -10
  8. data/docs/EnvParser/Error.html +8 -9
  9. data/docs/EnvParser/TypeAlreadyDefinedError.html +8 -9
  10. data/docs/EnvParser/Types/BaseTypes.html +12 -11
  11. data/docs/EnvParser/Types/ChronologyTypes.html +10 -9
  12. data/docs/EnvParser/Types/InternetTypes.html +10 -9
  13. data/docs/EnvParser/Types.html +9 -10
  14. data/docs/EnvParser/UnknownTypeError.html +8 -9
  15. data/docs/EnvParser/UnparseableAutoregisterSpec.html +9 -10
  16. data/docs/EnvParser/ValueNotAllowedError.html +10 -11
  17. data/docs/EnvParser/ValueNotConvertibleError.html +8 -10
  18. data/docs/EnvParser.html +123 -186
  19. data/docs/_index.html +8 -10
  20. data/docs/class_list.html +2 -2
  21. data/docs/css/style.css +3 -2
  22. data/docs/file.README.html +254 -284
  23. data/docs/file_list.html +2 -2
  24. data/docs/frames.html +2 -2
  25. data/docs/index.html +254 -284
  26. data/docs/js/app.js +14 -3
  27. data/docs/method_list.html +3 -11
  28. data/docs/top-level-namespace.html +7 -85
  29. data/env_parser.gemspec +14 -14
  30. data/lib/env_parser/errors.rb +18 -18
  31. data/lib/env_parser/types/base_types.rb +69 -69
  32. data/lib/env_parser/types/chronology_types.rb +54 -54
  33. data/lib/env_parser/types/internet_types.rb +51 -51
  34. data/lib/env_parser/types.rb +2 -2
  35. data/lib/env_parser/version.rb +1 -1
  36. data/lib/env_parser.rb +206 -217
  37. data/spec/env_parser/types/base_types_spec.rb +98 -0
  38. data/spec/env_parser/types/chronology_types_spec.rb +49 -0
  39. data/spec/env_parser/types/internet_types_spec.rb +45 -0
  40. data/spec/env_parser_spec.rb +192 -0
  41. data/spec/spec_helper.rb +14 -0
  42. metadata +54 -50
  43. data/.travis.yml +0 -5
data/docs/EnvParser.html CHANGED
@@ -6,15 +6,15 @@
6
6
  <title>
7
7
  Class: EnvParser
8
8
 
9
- &mdash; Documentation by YARD 0.9.20
9
+ &mdash; Documentation by YARD 0.9.28
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 = "EnvParser";
19
19
  relpath = '';
20
20
  </script>
@@ -103,9 +103,7 @@
103
103
 
104
104
  <h2>Overview</h2><div class="docstring">
105
105
  <div class="discussion">
106
-
107
- <p>The EnvParser class simplifies parsing of environment variables as
108
- different data types.</p>
106
+ <p>The EnvParser class simplifies parsing of environment variables as different data types.</p>
109
107
 
110
108
 
111
109
  </div>
@@ -137,8 +135,7 @@ different data types.</p>
137
135
  <dt id="AUTOREGISTER_FILE-constant" class="">AUTOREGISTER_FILE =
138
136
  <div class="docstring">
139
137
  <div class="discussion">
140
-
141
- <p>The default filename to use for <span class='object_link'><a href="#autoregister-class_method" title="EnvParser.autoregister (method)">autoregister</a></span> requests.</p>
138
+ <p>The default filename to use for <span class='object_link'><a href="#autoregister-class_method" title="EnvParser.autoregister (method)">autoregister</a></span> requests.</p>
142
139
 
143
140
 
144
141
  </div>
@@ -153,7 +150,7 @@ different data types.</p>
153
150
  <dt id="VERSION-constant" class="">VERSION =
154
151
 
155
152
  </dt>
156
- <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>1.3.0</span><span class='tstring_end'>&#39;</span></span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span></pre></dd>
153
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>1.3.2</span><span class='tstring_end'>&#39;</span></span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span></pre></dd>
157
154
 
158
155
  </dl>
159
156
 
@@ -189,8 +186,7 @@ different data types.</p>
189
186
 
190
187
 
191
188
 
192
- <span class="summary_desc"><div class='inline'>
193
- <p>Creates ENV bindings for <span class='object_link'><a href="#parse-class_method" title="EnvParser.parse (method)">EnvParser.parse</a></span> and <span class='object_link'><a href="#register-class_method" title="EnvParser.register (method)">EnvParser.register</a></span> proxy methods.</p>
189
+ <span class="summary_desc"><div class='inline'><p>Creates ENV bindings for <span class='object_link'><a href="#parse-class_method" title="EnvParser.parse (method)">EnvParser.parse</a></span> and <span class='object_link'><a href="#register-class_method" title="EnvParser.register (method)">EnvParser.register</a></span> proxy methods.</p>
194
190
  </div></span>
195
191
 
196
192
  </li>
@@ -213,9 +209,7 @@ different data types.</p>
213
209
 
214
210
 
215
211
 
216
- <span class="summary_desc"><div class='inline'>
217
- <p>Reads an “autoregister” file and registers the ENV constants defined
218
- therein.</p>
212
+ <span class="summary_desc"><div class='inline'><p>Reads an “autoregister” file and registers the ENV constants defined therein.</p>
219
213
  </div></span>
220
214
 
221
215
  </li>
@@ -238,9 +232,7 @@ therein.</p>
238
232
 
239
233
 
240
234
 
241
- <span class="summary_desc"><div class='inline'>
242
- <p>Defines a new type for use as the “as” option on a subsequent <span class='object_link'><a href="#parse-class_method" title="EnvParser.parse (method)">EnvParser.parse</a></span> or
243
- <span class='object_link'><a href="#register-class_method" title="EnvParser.register (method)">EnvParser.register</a></span> call.</p>
235
+ <span class="summary_desc"><div class='inline'><p>Defines a new type for use as the “as” option on a subsequent <span class='object_link'><a href="#parse-class_method" title="EnvParser.parse (method)">EnvParser.parse</a></span> or <span class='object_link'><a href="#register-class_method" title="EnvParser.register (method)">EnvParser.register</a></span> call.</p>
244
236
  </div></span>
245
237
 
246
238
  </li>
@@ -263,8 +255,7 @@ therein.</p>
263
255
 
264
256
 
265
257
 
266
- <span class="summary_desc"><div class='inline'>
267
- <p>Interprets the given value as the specified type.</p>
258
+ <span class="summary_desc"><div class='inline'><p>Interprets the given value as the specified type.</p>
268
259
  </div></span>
269
260
 
270
261
  </li>
@@ -287,9 +278,7 @@ therein.</p>
287
278
 
288
279
 
289
280
 
290
- <span class="summary_desc"><div class='inline'>
291
- <p>Parses the referenced value and creates a matching constant in the
292
- requested context.</p>
281
+ <span class="summary_desc"><div class='inline'><p>Parses the referenced value and creates a matching constant in the requested context.</p>
293
282
  </div></span>
294
283
 
295
284
  </li>
@@ -315,13 +304,11 @@ requested context.</p>
315
304
 
316
305
  </h3><div class="docstring">
317
306
  <div class="discussion">
318
-
319
- <p>Creates ENV bindings for <span class='object_link'><a href="#parse-class_method" title="EnvParser.parse (method)">parse</a></span> and <span class='object_link'><a href="#register-class_method" title="EnvParser.register (method)">register</a></span> proxy methods.</p>
307
+ <p>Creates ENV bindings for <span class='object_link'><a href="#parse-class_method" title="EnvParser.parse (method)">parse</a></span> and <span class='object_link'><a href="#register-class_method" title="EnvParser.register (method)">register</a></span> proxy methods.</p>
320
308
 
321
- <p>The sole difference between these proxy methods and their EnvParser
322
- counterparts is that ENV.parse will interpret any value given as an ENV key
323
- (as a String), not the given value itself. i.e. ENV.parse(&#39;XYZ&#39;, …)
324
- is equivalent to <a href="'XYZ'">EnvParser.parse(ENV</a>, …)</p>
309
+ <p>The sole difference between these proxy methods and their EnvParser counterparts is that
310
+ ENV.parse will interpret any value given as an ENV key (as a String), not the given value
311
+ itself. i.e. ENV.parse(XYZ’, …) is equivalent to EnvParser.parse(ENV[‘XYZ’], …)</p>
325
312
 
326
313
 
327
314
  </div>
@@ -339,8 +326,7 @@ is equivalent to <a href="'XYZ'">EnvParser.parse(ENV</a>, …)</p>
339
326
 
340
327
 
341
328
  &mdash;
342
- <div class='inline'>
343
- <p>This generates no usable value.</p>
329
+ <div class='inline'><p>This generates no usable value.</p>
344
330
  </div>
345
331
 
346
332
  </li>
@@ -353,6 +339,9 @@ is equivalent to <a href="'XYZ'">EnvParser.parse(ENV</a>, …)</p>
353
339
  <pre class="lines">
354
340
 
355
341
 
342
+ 216
343
+ 217
344
+ 218
356
345
  219
357
346
  220
358
347
  221
@@ -362,13 +351,10 @@ is equivalent to <a href="'XYZ'">EnvParser.parse(ENV</a>, …)</p>
362
351
  225
363
352
  226
364
353
  227
365
- 228
366
- 229
367
- 230
368
- 231</pre>
354
+ 228</pre>
369
355
  </td>
370
356
  <td>
371
- <pre class="code"><span class="info file"># File 'lib/env_parser.rb', line 219</span>
357
+ <pre class="code"><span class="info file"># File 'lib/env_parser.rb', line 216</span>
372
358
 
373
359
  <span class='kw'>def</span> <span class='id identifier rubyid_add_env_bindings'>add_env_bindings</span>
374
360
  <span class='const'>ENV</span><span class='period'>.</span><span class='id identifier rubyid_instance_eval'>instance_eval</span> <span class='kw'>do</span>
@@ -399,13 +385,11 @@ is equivalent to <a href="'XYZ'">EnvParser.parse(ENV</a>, …)</p>
399
385
 
400
386
  </h3><div class="docstring">
401
387
  <div class="discussion">
402
-
403
- <p>Reads an “autoregister” file and registers the ENV constants defined
404
- therein.</p>
388
+ <p>Reads an “autoregister” file and registers the ENV constants defined therein.</p>
405
389
 
406
- <p>The “autoregister” file is read, parsed as YAML, sanitized for use as a
407
- parameter to <span class='object_link'>register_all</span>, and then passed along for processing. The
408
- return value from that <span class='object_link'>register_all</span> call is passed through.</p>
390
+ <p>The “autoregister” file is read, parsed as YAML, sanitized for use as a parameter to
391
+ <span class='object_link'>register_all</span>, and then passed along for processing. The return value from that
392
+ <span class='object_link'>register_all</span> call is passed through.</p>
409
393
 
410
394
 
411
395
  </div>
@@ -426,8 +410,7 @@ return value from that <span class='object_link'>register_all</span> call is pas
426
410
 
427
411
 
428
412
  &mdash;
429
- <div class='inline'>
430
- <p>A path for the autoregister file to parse and process. Defaults to
413
+ <div class='inline'><p>A path for the autoregister file to parse and process. Defaults to
431
414
  <span class='object_link'><a href="#AUTOREGISTER_FILE-constant" title="EnvParser::AUTOREGISTER_FILE (constant)">AUTOREGISTER_FILE</a></span> if unset.</p>
432
415
  </div>
433
416
 
@@ -446,9 +429,7 @@ return value from that <span class='object_link'>register_all</span> call is pas
446
429
 
447
430
 
448
431
  &mdash;
449
- <div class='inline'>
450
- <p>The return value from the <span class='object_link'>register_all</span> call that handles the actual
451
- registration.</p>
432
+ <div class='inline'><p>The return value from the <span class='object_link'>register_all</span> call that handles the actual registration.</p>
452
433
  </div>
453
434
 
454
435
  </li>
@@ -474,6 +455,9 @@ registration.</p>
474
455
  <pre class="lines">
475
456
 
476
457
 
458
+ 245
459
+ 246
460
+ 247
477
461
  248
478
462
  249
479
463
  250
@@ -495,17 +479,14 @@ registration.</p>
495
479
  266
496
480
  267
497
481
  268
498
- 269
499
- 270
500
- 271
501
- 272</pre>
482
+ 269</pre>
502
483
  </td>
503
484
  <td>
504
- <pre class="code"><span class="info file"># File 'lib/env_parser.rb', line 248</span>
485
+ <pre class="code"><span class="info file"># File 'lib/env_parser.rb', line 245</span>
505
486
 
506
- <span class='kw'>def</span> <span class='id identifier rubyid_autoregister'>autoregister</span><span class='lparen'>(</span><span class='id identifier rubyid_filename'><span class='object_link'><a href="top-level-namespace.html#filename-instance_method" title="#filename (method)">filename</a></span></span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
507
- <span class='id identifier rubyid_filename'><span class='object_link'><a href="top-level-namespace.html#filename-instance_method" title="#filename (method)">filename</a></span></span> <span class='op'>||=</span> <span class='const'><span class='object_link'><a href="#AUTOREGISTER_FILE-constant" title="EnvParser::AUTOREGISTER_FILE (constant)">AUTOREGISTER_FILE</a></span></span>
508
- <span class='id identifier rubyid_autoregister_spec'>autoregister_spec</span> <span class='op'>=</span> <span class='const'>Psych</span><span class='period'>.</span><span class='id identifier rubyid_load_file'>load_file</span><span class='lparen'>(</span><span class='id identifier rubyid_filename'><span class='object_link'><a href="top-level-namespace.html#filename-instance_method" title="#filename (method)">filename</a></span></span><span class='rparen'>)</span>
487
+ <span class='kw'>def</span> <span class='id identifier rubyid_autoregister'>autoregister</span><span class='lparen'>(</span><span class='id identifier rubyid_filename'>filename</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
488
+ <span class='id identifier rubyid_filename'>filename</span> <span class='op'>||=</span> <span class='const'><span class='object_link'><a href="#AUTOREGISTER_FILE-constant" title="EnvParser::AUTOREGISTER_FILE (constant)">AUTOREGISTER_FILE</a></span></span>
489
+ <span class='id identifier rubyid_autoregister_spec'>autoregister_spec</span> <span class='op'>=</span> <span class='const'>Psych</span><span class='period'>.</span><span class='id identifier rubyid_load_file'>load_file</span><span class='lparen'>(</span><span class='id identifier rubyid_filename'>filename</span><span class='rparen'>)</span>
509
490
 
510
491
  <span class='id identifier rubyid_autoregister_spec'>autoregister_spec</span><span class='period'>.</span><span class='id identifier rubyid_deep_symbolize_keys!'>deep_symbolize_keys!</span>
511
492
  <span class='id identifier rubyid_autoregister_spec'>autoregister_spec</span><span class='period'>.</span><span class='id identifier rubyid_transform_values!'>transform_values!</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_spec'>spec</span><span class='op'>|</span>
@@ -518,13 +499,13 @@ registration.</p>
518
499
 
519
500
  <span class='id identifier rubyid_register_all'>register_all</span> <span class='id identifier rubyid_autoregister_spec'>autoregister_spec</span>
520
501
 
521
- <span class='comment'>## Psych raises an Errno::ENOENT on file-not-found.
522
- </span><span class='comment'>##
502
+ <span class='comment'># Psych raises an Errno::ENOENT on file-not-found.
503
+ </span><span class='comment'>#
523
504
  </span><span class='kw'>rescue</span> <span class='const'>Errno</span><span class='op'>::</span><span class='const'>ENOENT</span>
524
- <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="" title="EnvParser (class)">EnvParser</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="EnvParser/AutoregisterFileNotFound.html" title="EnvParser::AutoregisterFileNotFound (class)">AutoregisterFileNotFound</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>%(</span><span class='tstring_content'>file not found: &quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_filename'><span class='object_link'><a href="top-level-namespace.html#filename-instance_method" title="#filename (method)">filename</a></span></span><span class='embexpr_end'>}</span><span class='tstring_content'>&quot;</span><span class='tstring_end'>)</span></span>
505
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="" title="EnvParser (class)">EnvParser</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="EnvParser/AutoregisterFileNotFound.html" title="EnvParser::AutoregisterFileNotFound (class)">AutoregisterFileNotFound</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>%(</span><span class='tstring_content'>file not found: &quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_filename'>filename</span><span class='embexpr_end'>}</span><span class='tstring_content'>&quot;</span><span class='tstring_end'>)</span></span>
525
506
 
526
- <span class='comment'>## Psych raises a Psych::SyntaxError on unparseable YAML.
527
- </span><span class='comment'>##
507
+ <span class='comment'># Psych raises a Psych::SyntaxError on unparseable YAML.
508
+ </span><span class='comment'>#
528
509
  </span><span class='kw'>rescue</span> <span class='const'>Psych</span><span class='op'>::</span><span class='const'>SyntaxError</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
529
510
  <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="" title="EnvParser (class)">EnvParser</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="EnvParser/UnparseableAutoregisterSpec.html" title="EnvParser::UnparseableAutoregisterSpec (class)">UnparseableAutoregisterSpec</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>malformed YAML in spec file: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_message'>message</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
530
511
  <span class='kw'>end</span></pre>
@@ -544,9 +525,7 @@ registration.</p>
544
525
 
545
526
  </h3><div class="docstring">
546
527
  <div class="discussion">
547
-
548
- <p>Defines a new type for use as the “as” option on a subsequent <span class='object_link'><a href="#parse-class_method" title="EnvParser.parse (method)">parse</a></span> or
549
- <span class='object_link'><a href="#register-class_method" title="EnvParser.register (method)">register</a></span> call.</p>
528
+ <p>Defines a new type for use as the “as” option on a subsequent <span class='object_link'><a href="#parse-class_method" title="EnvParser.parse (method)">parse</a></span> or <span class='object_link'><a href="#register-class_method" title="EnvParser.register (method)">register</a></span> call.</p>
550
529
 
551
530
 
552
531
  </div>
@@ -565,8 +544,7 @@ registration.</p>
565
544
 
566
545
 
567
546
  &mdash;
568
- <div class='inline'>
569
- <p>The name to assign to the type.</p>
547
+ <div class='inline'><p>The name to assign to the type.</p>
570
548
  </div>
571
549
 
572
550
  </li>
@@ -583,8 +561,7 @@ registration.</p>
583
561
 
584
562
 
585
563
  &mdash;
586
- <div class='inline'>
587
- <p>a customizable set of options</p>
564
+ <div class='inline'><p>a customizable set of options</p>
588
565
  </div>
589
566
 
590
567
  </li>
@@ -606,8 +583,7 @@ registration.</p>
606
583
 
607
584
  </span>
608
585
 
609
- &mdash; <div class='inline'>
610
- <p>An array of additional names you&#39;d like to see refer to this same type.</p>
586
+ &mdash; <div class='inline'><p>An array of additional names you’d like to see refer to this same type.</p>
611
587
  </div>
612
588
 
613
589
  </li>
@@ -622,11 +598,9 @@ registration.</p>
622
598
 
623
599
  </span>
624
600
 
625
- &mdash; <div class='inline'>
626
- <p>Specifies a “sensible default” to return for this type if the value being
627
- parsed (via <span class='object_link'><a href="#parse-class_method" title="EnvParser.parse (method)">parse</a></span> or <span class='object_link'><a href="#register-class_method" title="EnvParser.register (method)">register</a></span>) is either unset (<code>nil</code>) or
628
- blank (<code>&#39;&#39;</code>). Note this may be overridden by the user
629
- via the <span class='object_link'><a href="#parse-class_method" title="EnvParser.parse (method)">parse</a></span>/<span class='object_link'><a href="#register-class_method" title="EnvParser.register (method)">register</a></span> “if_unset” option.</p>
601
+ &mdash; <div class='inline'><p>Specifies a “sensible default” to return for this type if the value being parsed (via
602
+ <span class='object_link'><a href="#parse-class_method" title="EnvParser.parse (method)">parse</a></span> or <span class='object_link'><a href="#register-class_method" title="EnvParser.register (method)">register</a></span>) is either unset (<code>nil</code>) or blank (<code>''</code>). Note this may be
603
+ overridden by the user via the <span class='object_link'><a href="#parse-class_method" title="EnvParser.parse (method)">parse</a></span>/<span class='object_link'><a href="#register-class_method" title="EnvParser.register (method)">register</a></span> “if_unset” option.</p>
630
604
  </div>
631
605
 
632
606
  </li>
@@ -645,18 +619,16 @@ via the <span class='object_link'><a href="#parse-class_method" title="EnvParser
645
619
 
646
620
 
647
621
  &mdash;
648
- <div class='inline'>
649
- <p>A block to act as the parser for the this type. If no block is given, an
650
- ArgumentError is raised.</p>
651
-
652
- <p>When the type defined is used via a <span class='object_link'><a href="#parse-class_method" title="EnvParser.parse (method)">parse</a></span>/<span class='object_link'><a href="#register-class_method" title="EnvParser.register (method)">register</a></span> call, this block
653
- is invoked with the value to be parsed. Said value is guaranteed to be a
654
- non-empty String (the “if_unset” check will have already run), but no other
655
- assurances as to content are given. The block should return the final
656
- output of parsing the given String value as the type being defined.</p>
657
-
658
- <p>If the value given cannot be sensibly parsed into the type defined, the
659
- block should raise an <span class='object_link'><a href="EnvParser/ValueNotConvertibleError.html" title="EnvParser::ValueNotConvertibleError (class)">ValueNotConvertibleError</a></span>.</p>
622
+ <div class='inline'><p>A block to act as the parser for the this type. If no block is given, an ArgumentError is
623
+ raised.</p>
624
+
625
+ <p>When the type defined is used via a <span class='object_link'><a href="#parse-class_method" title="EnvParser.parse (method)">parse</a></span>/<span class='object_link'><a href="#register-class_method" title="EnvParser.register (method)">register</a></span> call, this block is invoked with
626
+ the value to be parsed. Said value is guaranteed to be a non-empty String (the “if_unset”
627
+ check will have already run), but no other assurances as to content are given. The block
628
+ should return the final output of parsing the given String value as the type being defined.</p>
629
+
630
+ <p>If the value given cannot be sensibly parsed into the type defined, the block should raise
631
+ an <span class='object_link'><a href="EnvParser/ValueNotConvertibleError.html" title="EnvParser::ValueNotConvertibleError (class)">ValueNotConvertibleError</a></span>.</p>
660
632
  </div>
661
633
 
662
634
  </li>
@@ -673,8 +645,7 @@ block should raise an <span class='object_link'><a href="EnvParser/ValueNotConve
673
645
 
674
646
 
675
647
  &mdash;
676
- <div class='inline'>
677
- <p>This generates no usable value.</p>
648
+ <div class='inline'><p>This generates no usable value.</p>
678
649
  </div>
679
650
 
680
651
  </li>
@@ -750,8 +721,7 @@ block should raise an <span class='object_link'><a href="EnvParser/ValueNotConve
750
721
 
751
722
  </h3><div class="docstring">
752
723
  <div class="discussion">
753
-
754
- <p>Interprets the given value as the specified type.</p>
724
+ <p>Interprets the given value as the specified type.</p>
755
725
 
756
726
 
757
727
  </div>
@@ -770,10 +740,8 @@ block should raise an <span class='object_link'><a href="EnvParser/ValueNotConve
770
740
 
771
741
 
772
742
  &mdash;
773
- <div class='inline'>
774
- <p>The value to parse/interpret. If a String is given, the value will be used
775
- as-is. If a Symbol is given, the ENV value for the matching string key will
776
- be used.</p>
743
+ <div class='inline'><p>The value to parse/interpret. If a String is given, the value will be used as-is. If a
744
+ Symbol is given, the ENV value for the matching string key will be used.</p>
777
745
  </div>
778
746
 
779
747
  </li>
@@ -790,8 +758,7 @@ be used.</p>
790
758
 
791
759
 
792
760
  &mdash;
793
- <div class='inline'>
794
- <p>a customizable set of options</p>
761
+ <div class='inline'><p>a customizable set of options</p>
795
762
  </div>
796
763
 
797
764
  </li>
@@ -813,13 +780,12 @@ be used.</p>
813
780
 
814
781
  </span>
815
782
 
816
- &mdash; <div class='inline'>
817
- <p>The expected return type. A best-effort attempt is made to convert the
818
- source String to the requested type.</p>
783
+ &mdash; <div class='inline'><p>The expected return type. A best-effort attempt is made to convert the source String to the
784
+ requested type.</p>
819
785
 
820
- <p>If no “as” option is given, an ArgumentError is raised. If the “as” option
821
- given is unknown (the given type has not been previously defined via
822
- <span class='object_link'><a href="#define_type-class_method" title="EnvParser.define_type (method)">define_type</a></span>), an <span class='object_link'><a href="EnvParser/UnknownTypeError.html" title="EnvParser::UnknownTypeError (class)">UnknownTypeError</a></span> is raised.</p>
786
+ <p>If no “as” option is given, an ArgumentError is raised. If the “as” option given is unknown
787
+ (the given type has not been previously defined via <span class='object_link'><a href="#define_type-class_method" title="EnvParser.define_type (method)">define_type</a></span>), an
788
+ <span class='object_link'><a href="EnvParser/UnknownTypeError.html" title="EnvParser::UnknownTypeError (class)">UnknownTypeError</a></span> is raised.</p>
823
789
  </div>
824
790
 
825
791
  </li>
@@ -831,13 +797,10 @@ given is unknown (the given type has not been previously defined via
831
797
 
832
798
  </span>
833
799
 
834
- &mdash; <div class='inline'>
835
- <p>Specifies the default value to return if the given “value” is either unset
836
- (<code>nil</code>) or blank (<code>&#39;&#39;</code>). Any “if_unset” value
837
- given will be returned as-is, with no type conversion or other change
838
- having been made. If unspecified, the “default” value for
839
- <code>nil</code>/<code>&#39;&#39;</code> input will depend on the “as”
840
- type.</p>
800
+ &mdash; <div class='inline'><p>Specifies the default value to return if the given “value” is either unset (<code>nil</code>) or blank
801
+ (<code>''</code>). Any “if_unset” value given will be returned as-is, with no type conversion or other
802
+ change having been made. If unspecified, the “default” value for <code>nil</code>/<code>''</code> input will
803
+ depend on the as type.</p>
841
804
  </div>
842
805
 
843
806
  </li>
@@ -849,19 +812,16 @@ type.</p>
849
812
 
850
813
  </span>
851
814
 
852
- &mdash; <div class='inline'>
853
- <p>Gives a limited set of allowed values (after type conversion). If, after
854
- parsing, the final value is not included in the “from_set” list/range, an
855
- <span class='object_link'><a href="EnvParser/ValueNotAllowedError.html" title="EnvParser::ValueNotAllowedError (class)">ValueNotAllowedError</a></span> is raised.</p>
856
-
857
- <p>Note that if the “if_unset” option is given and the value to parse is
858
- <code>nil</code>/<code>&#39;&#39;</code>, the “if_unset” value will be
859
- returned, even if it is not part of the “from_set” list/range.</p>
860
-
861
- <p>Also note that, due to the nature of the lookup, the “from_set” option is
862
- only available for scalar values (i.e. not arrays, hashes, or other
863
- enumerables). An attempt to use the “from_set” option with a non-scalar
864
- value will raise an ArgumentError.</p>
815
+ &mdash; <div class='inline'><p>Gives a limited set of allowed values (after type conversion). If, after parsing, the final
816
+ value is not included in the “from_set” list/range, an <span class='object_link'><a href="EnvParser/ValueNotAllowedError.html" title="EnvParser::ValueNotAllowedError (class)">ValueNotAllowedError</a></span> is
817
+ raised.</p>
818
+
819
+ <p>Note that if the “if_unset” option is given and the value to parse is <code>nil</code>/<code>''</code>, the
820
+ “if_unset” value will be returned, even if it is not part of the “from_set” list/range.</p>
821
+
822
+ <p>Also note that, due to the nature of the lookup, the “from_set” option is only available
823
+ for scalar values (i.e. not arrays, hashes, or other enumerables). An attempt to use the
824
+ “from_set” option with a non-scalar value will raise an ArgumentError.</p>
865
825
  </div>
866
826
 
867
827
  </li>
@@ -873,19 +833,15 @@ value will raise an ArgumentError.</p>
873
833
 
874
834
  </span>
875
835
 
876
- &mdash; <div class='inline'>
877
- <p>If given, the “validated_by” Proc is called with the parsed value (after
878
- type conversion) as its sole argument. This allows for user-defined
879
- validation of the parsed value beyond what can be enforced by use of the
880
- “from_set” option alone. If the Proc&#39;s return value is
881
- <code>#blank?</code>, an <span class='object_link'><a href="EnvParser/ValueNotAllowedError.html" title="EnvParser::ValueNotAllowedError (class)">ValueNotAllowedError</a></span> is raised. To
882
- accomodate your syntax of choice, this validation Proc may be given as a
883
- block instead.</p>
884
-
885
- <p>Note that this option is intended to provide an inspection mechanism only –
886
- no mutation of the parsed value should occur within the given Proc. To that
887
- end, the argument passed is a <em>frozen</em> duplicate of the parsed
888
- value.</p>
836
+ &mdash; <div class='inline'><p>If given, the “validated_by” Proc is called with the parsed value (after type conversion)
837
+ as its sole argument. This allows for user-defined validation of the parsed value beyond
838
+ what can be enforced by use of the “from_set” option alone. If the Proc’s return value is
839
+ <code>#blank?</code>, an <span class='object_link'><a href="EnvParser/ValueNotAllowedError.html" title="EnvParser::ValueNotAllowedError (class)">ValueNotAllowedError</a></span> is raised. To accomodate your syntax of
840
+ choice, this validation Proc may be given as a block instead.</p>
841
+
842
+ <p>Note that this option is intended to provide an inspection mechanism only – no mutation
843
+ of the parsed value should occur within the given Proc. To that end, the argument passed is
844
+ a <em>frozen</em> duplicate of the parsed value.</p>
889
845
  </div>
890
846
 
891
847
  </li>
@@ -904,13 +860,11 @@ value.</p>
904
860
 
905
861
 
906
862
  &mdash;
907
- <div class='inline'>
908
- <p>A block (if given) is treated exactly as the “validated_by” Proc would.</p>
863
+ <div class='inline'><p>A block (if given) is treated exactly as the “validated_by” Proc would.</p>
909
864
 
910
- <p>Although there is no compelling reason to provide both a “validated_by”
911
- Proc <em>and</em> a validation block, there is no technical limitation
912
- preventing this. <strong>If both are given, both validation checks must
913
- pass.</strong></p>
865
+ <p>Although there is no compelling reason to provide both a “validated_by” Proc <em>and</em> a
866
+ validation block, there is no technical limitation preventing this. <strong>If both are given,
867
+ both validation checks must pass.</strong></p>
914
868
  </div>
915
869
 
916
870
  </li>
@@ -988,13 +942,11 @@ pass.</strong></p>
988
942
 
989
943
  </h3><div class="docstring">
990
944
  <div class="discussion">
991
-
992
- <p>Parses the referenced value and creates a matching constant in the
993
- requested context.</p>
945
+ <p>Parses the referenced value and creates a matching constant in the requested context.</p>
946
+
947
+ <p>Multiple calls to <span class='object_link'><a href="#register-class_method" title="EnvParser.register (method)">register</a></span> may be shortcutted by passing in a Hash whose keys are the
948
+ variable names and whose values are the options set for each variable’s <span class='object_link'><a href="#register-class_method" title="EnvParser.register (method)">register</a></span> call.</p>
994
949
 
995
- <p>Multiple calls to <span class='object_link'><a href="#register-class_method" title="EnvParser.register (method)">register</a></span> may be shortcutted by passing in a Hash whose
996
- keys are the variable names and whose values are the options set for each
997
- variable&#39;s <span class='object_link'><a href="#register-class_method" title="EnvParser.register (method)">register</a></span> call.</p>
998
950
  <pre class="code ruby"><code class="ruby">
999
951
  ## Example shortcut usage:
1000
952
 
@@ -1009,6 +961,7 @@ variable&#39;s <span class='object_link'><a href="#register-class_method" title=
1009
961
  )
1010
962
  </code></pre>
1011
963
 
964
+
1012
965
  </div>
1013
966
  </div>
1014
967
  <div class="tags">
@@ -1025,10 +978,8 @@ variable&#39;s <span class='object_link'><a href="#register-class_method" title=
1025
978
 
1026
979
 
1027
980
  &mdash;
1028
- <div class='inline'>
1029
- <p>The name of the value to parse/interpret from the “from” Hash. If the
1030
- “from” value is <code>ENV</code>, you may give a Symbol and the
1031
- corresponding String key will be used instead.</p>
981
+ <div class='inline'><p>The name of the value to parse/interpret from the “from” Hash. If the “from” value is
982
+ <code>ENV</code>, you may give a Symbol and the corresponding String key will be used instead.</p>
1032
983
  </div>
1033
984
 
1034
985
  </li>
@@ -1045,8 +996,7 @@ corresponding String key will be used instead.</p>
1045
996
 
1046
997
 
1047
998
  &mdash;
1048
- <div class='inline'>
1049
- <p>a customizable set of options</p>
999
+ <div class='inline'><p>a customizable set of options</p>
1050
1000
  </div>
1051
1001
 
1052
1002
  </li>
@@ -1071,8 +1021,7 @@ corresponding String key will be used instead.</p>
1071
1021
 
1072
1022
  </span>
1073
1023
 
1074
- &mdash; <div class='inline'>
1075
- <p>The source Hash from which to pull the value referenced by the “name” key.</p>
1024
+ &mdash; <div class='inline'><p>The source Hash from which to pull the value referenced by the “name” key.</p>
1076
1025
  </div>
1077
1026
 
1078
1027
  </li>
@@ -1087,9 +1036,8 @@ corresponding String key will be used instead.</p>
1087
1036
 
1088
1037
  </span>
1089
1038
 
1090
- &mdash; <div class='inline'>
1091
- <p>The module or class in which the constant should be created. Creates global
1092
- constants by default.</p>
1039
+ &mdash; <div class='inline'><p>The module or class in which the constant should be created. Creates global constants by
1040
+ default.</p>
1093
1041
  </div>
1094
1042
 
1095
1043
  </li>
@@ -1101,8 +1049,7 @@ constants by default.</p>
1101
1049
 
1102
1050
  </span>
1103
1051
 
1104
- &mdash; <div class='inline'>
1105
- <p>See <span class='object_link'><a href="#parse-class_method" title="EnvParser.parse (method)">parse</a></span>.</p>
1052
+ &mdash; <div class='inline'><p>See <span class='object_link'><a href="#parse-class_method" title="EnvParser.parse (method)">parse</a></span>.</p>
1106
1053
  </div>
1107
1054
 
1108
1055
  </li>
@@ -1114,8 +1061,7 @@ constants by default.</p>
1114
1061
 
1115
1062
  </span>
1116
1063
 
1117
- &mdash; <div class='inline'>
1118
- <p>See <span class='object_link'><a href="#parse-class_method" title="EnvParser.parse (method)">parse</a></span>.</p>
1064
+ &mdash; <div class='inline'><p>See <span class='object_link'><a href="#parse-class_method" title="EnvParser.parse (method)">parse</a></span>.</p>
1119
1065
  </div>
1120
1066
 
1121
1067
  </li>
@@ -1127,8 +1073,7 @@ constants by default.</p>
1127
1073
 
1128
1074
  </span>
1129
1075
 
1130
- &mdash; <div class='inline'>
1131
- <p>See <span class='object_link'><a href="#parse-class_method" title="EnvParser.parse (method)">parse</a></span>.</p>
1076
+ &mdash; <div class='inline'><p>See <span class='object_link'><a href="#parse-class_method" title="EnvParser.parse (method)">parse</a></span>.</p>
1132
1077
  </div>
1133
1078
 
1134
1079
  </li>
@@ -1140,8 +1085,7 @@ constants by default.</p>
1140
1085
 
1141
1086
  </span>
1142
1087
 
1143
- &mdash; <div class='inline'>
1144
- <p>See <span class='object_link'><a href="#parse-class_method" title="EnvParser.parse (method)">parse</a></span>.</p>
1088
+ &mdash; <div class='inline'><p>See <span class='object_link'><a href="#parse-class_method" title="EnvParser.parse (method)">parse</a></span>.</p>
1145
1089
  </div>
1146
1090
 
1147
1091
  </li>
@@ -1160,10 +1104,9 @@ constants by default.</p>
1160
1104
 
1161
1105
 
1162
1106
  &mdash;
1163
- <div class='inline'>
1164
- <p>A block (if given) is treated exactly as in <span class='object_link'><a href="#parse-class_method" title="EnvParser.parse (method)">parse</a></span>. Note, however, that a
1165
- single block cannot be used to register multiple constants simultaneously –
1166
- each value needing validation must give its own “validated_by” Proc.</p>
1107
+ <div class='inline'><p>A block (if given) is treated exactly as in <span class='object_link'><a href="#parse-class_method" title="EnvParser.parse (method)">parse</a></span>. Note, however, that a single block
1108
+ cannot be used to register multiple constants simultaneously each value needing
1109
+ validation must give its own “validated_by” Proc.</p>
1167
1110
  </div>
1168
1111
 
1169
1112
  </li>
@@ -1216,16 +1159,13 @@ each value needing validation must give its own “validated_by” Proc.</p>
1216
1159
  202
1217
1160
  203
1218
1161
  204
1219
- 205
1220
- 206
1221
- 207
1222
- 208</pre>
1162
+ 205</pre>
1223
1163
  </td>
1224
1164
  <td>
1225
1165
  <pre class="code"><span class="info file"># File 'lib/env_parser.rb', line 178</span>
1226
1166
 
1227
1167
  <span class='kw'>def</span> <span class='id identifier rubyid_register'>register</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_validation_block'>validation_block</span><span class='rparen'>)</span>
1228
- <span class='comment'>## Allow for registering multiple variables simultaneously via a single call.
1168
+ <span class='comment'># Allow for registering multiple variables simultaneously via a single call.
1229
1169
  </span> <span class='kw'>if</span> <span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'>Hash</span>
1230
1170
  <span class='id identifier rubyid_raise'>raise</span><span class='lparen'>(</span><span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cannot register multiple values with one block</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_block_given?'>block_given?</span>
1231
1171
  <span class='kw'>return</span> <span class='id identifier rubyid_register_all'>register_all</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
@@ -1234,20 +1174,17 @@ each value needing validation must give its own “validated_by” Proc.</p>
1234
1174
  <span class='id identifier rubyid_from'>from</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span><span class='lparen'>(</span><span class='symbol'>:from</span><span class='comma'>,</span> <span class='const'>ENV</span><span class='rparen'>)</span>
1235
1175
  <span class='id identifier rubyid_within'>within</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span><span class='lparen'>(</span><span class='symbol'>:within</span><span class='comma'>,</span> <span class='const'>Kernel</span><span class='rparen'>)</span>
1236
1176
 
1237
- <span class='comment'>## ENV *seems* like a Hash and it does *some* Hash-y things, but it is NOT a Hash and that can
1238
- </span> <span class='comment'>## bite you in some cases. Making sure we&#39;re working with a straight-up Hash saves a lot of
1239
- </span> <span class='comment'>## sanity checks later on. This is also a good place to make sure we&#39;re working with a String
1240
- </span> <span class='comment'>## key.
1177
+ <span class='comment'># ENV *seems* like a Hash and it does *some* Hash-y things, but it is NOT a Hash and that can
1178
+ </span> <span class='comment'># bite you in some cases. Making sure we&#39;re working with a straight-up Hash saves a lot of
1179
+ </span> <span class='comment'># sanity checks later on. This is also a good place to make sure we&#39;re working with a String
1180
+ </span> <span class='comment'># key.
1241
1181
  </span> <span class='kw'>if</span> <span class='id identifier rubyid_from'>from</span> <span class='op'>==</span> <span class='const'>ENV</span>
1242
1182
  <span class='id identifier rubyid_from'>from</span> <span class='op'>=</span> <span class='id identifier rubyid_from'>from</span><span class='period'>.</span><span class='id identifier rubyid_to_h'>to_h</span>
1243
1183
  <span class='id identifier rubyid_name'>name</span> <span class='op'>=</span> <span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
1244
1184
  <span class='kw'>end</span>
1245
1185
 
1246
1186
  <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'>invalid `from` parameter: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_from'>from</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_from'>from</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'>Hash</span>
1247
-
1248
- <span class='kw'>unless</span> <span class='id identifier rubyid_within'>within</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Module</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='id identifier rubyid_within'>within</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Class</span><span class='rparen'>)</span>
1249
- <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'>invalid `within` parameter: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_within'>within</span><span class='period'>.</span><span class='id identifier rubyid_inspect'>inspect</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
1250
- <span class='kw'>end</span>
1187
+ <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'>invalid `within` parameter: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_within'>within</span><span class='period'>.</span><span class='id identifier rubyid_inspect'>inspect</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_within'>within</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Module</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='id identifier rubyid_within'>within</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Class</span><span class='rparen'>)</span>
1251
1188
 
1252
1189
  <span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_from'>from</span><span class='lbracket'>[</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span>
1253
1190
  <span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_validation_block'>validation_block</span><span class='rparen'>)</span>
@@ -1265,9 +1202,9 @@ each value needing validation must give its own “validated_by” Proc.</p>
1265
1202
  </div>
1266
1203
 
1267
1204
  <div id="footer">
1268
- Generated on Sun Nov 3 21:30:37 2019 by
1269
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1270
- 0.9.20 (ruby-2.4.2).
1205
+ Generated on Sun Dec 25 19:19:23 2022 by
1206
+ <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1207
+ 0.9.28 (ruby-3.0.4).
1271
1208
  </div>
1272
1209
 
1273
1210
  </div>