env_parser 1.3.0 → 1.3.2

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