env_parser 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +32 -2
- data/docs/EnvParser.html +306 -109
- data/docs/EnvParser/Error.html +139 -0
- data/docs/EnvParser/TypeAlreadyDefined.html +143 -0
- data/docs/EnvParser/ValueNotAllowed.html +10 -2
- data/docs/_index.html +25 -1
- data/docs/class_list.html +1 -1
- data/docs/file.README.html +33 -4
- data/docs/index.html +33 -4
- data/docs/method_list.html +16 -0
- data/docs/top-level-namespace.html +79 -1
- data/lib/env_parser.rb +72 -73
- data/lib/env_parser/types/base_types.rb +39 -0
- data/lib/env_parser/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a70a46c16cd38925dcbae5621e61fa57fc5099cd
|
4
|
+
data.tar.gz: 0da0da7bd7ddfd45a114e25847eac28126840759
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 69c0ccf1c123fafa029834608a2937b06e7a4fa3a8e499bddfbc6440a358dff88a8e09b9ea235053be8fe5abe79f0ea4970cdb4499196f345b04fd289590cf2c
|
7
|
+
data.tar.gz: 263da8e5617b3d92107cb0a937785f0e9acfe2ef9d8eda6f36c111a9268d64c2826f2874836ecff1bd7a630876a8d02f91e4793b6c8b9e2c73a0baa646bb4778
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -42,7 +42,7 @@ timeout_ms = EnvParser.parse :TIMEOUT_MS, as: :integer
|
|
42
42
|
|
43
43
|
---
|
44
44
|
|
45
|
-
The named `:as` parameter is required.
|
45
|
+
The named `:as` parameter is required. The list of allowed values is user-expandable, but allowed values out-of-the-box are:
|
46
46
|
|
47
47
|
<table>
|
48
48
|
<tbody>
|
@@ -181,6 +181,36 @@ ENV.parse :SHORT_PI, as: :float ## => 3.1415926
|
|
181
181
|
ENV.register :SHORT_PI, as: :float ## Your constant is set, my man!
|
182
182
|
```
|
183
183
|
|
184
|
+
|
185
|
+
#### Defining your own types for use with EnvParser
|
186
|
+
|
187
|
+
```ruby
|
188
|
+
## If you use a particular validation many times, or are often manipulating values in the same way
|
189
|
+
## after EnvParser has done its thing, you may want to register a new type altogether.
|
190
|
+
##
|
191
|
+
a = EnvParser.parse :A, as: :int, if_unset: nil
|
192
|
+
raise unless passes_all_my_checks?(a)
|
193
|
+
|
194
|
+
b = EnvParser.parse :B, as: :int, if_unset: nil
|
195
|
+
raise unless passes_all_my_checks?(b)
|
196
|
+
|
197
|
+
## ... is perhaps best handled by defining a new type:
|
198
|
+
##
|
199
|
+
EnvParser.define_type(:my_special_type_of_number, if_unset: nil) do |value|
|
200
|
+
value = value.to_i
|
201
|
+
raise(StandardError, 'this is not a "special type" number') unless passes_all_my_checks?(value)
|
202
|
+
|
203
|
+
value
|
204
|
+
end
|
205
|
+
|
206
|
+
a = EnvParser.parse :A, as: :my_special_type_of_number
|
207
|
+
b = EnvParser.parse :B, as: :my_special_type_of_number
|
208
|
+
|
209
|
+
## Defining a new type makes your code both more maintainable (all the logic for your special type
|
210
|
+
## is only defined once) and more readable (your "parse" calls aren't littered with type-checking
|
211
|
+
## cruft).
|
212
|
+
```
|
213
|
+
|
184
214
|
---
|
185
215
|
|
186
216
|
[Consult the repo docs](http://nestor-custodio.github.io/env_parser) for the full EnvParser documentation.
|
@@ -190,7 +220,7 @@ ENV.register :SHORT_PI, as: :float ## Your constant is set, my man!
|
|
190
220
|
|
191
221
|
Additional features/options coming in the future:
|
192
222
|
|
193
|
-
-
|
223
|
+
- Round out the "as" type selection with things like `:url`, `:email`, etc.
|
194
224
|
- ... ?
|
195
225
|
|
196
226
|
|
data/docs/EnvParser.html
CHANGED
@@ -119,7 +119,7 @@ different data types.</p>
|
|
119
119
|
|
120
120
|
|
121
121
|
|
122
|
-
<strong class="classes">Classes:</strong> <span class='object_link'><a href="EnvParser/ValueNotAllowed.html" title="EnvParser::ValueNotAllowed (class)">ValueNotAllowed</a></span>
|
122
|
+
<strong class="classes">Classes:</strong> <span class='object_link'><a href="EnvParser/Error.html" title="EnvParser::Error (class)">Error</a></span>, <span class='object_link'><a href="EnvParser/TypeAlreadyDefined.html" title="EnvParser::TypeAlreadyDefined (class)">TypeAlreadyDefined</a></span>, <span class='object_link'><a href="EnvParser/ValueNotAllowed.html" title="EnvParser::ValueNotAllowed (class)">ValueNotAllowed</a></span>
|
123
123
|
|
124
124
|
|
125
125
|
</p>
|
@@ -130,7 +130,7 @@ different data types.</p>
|
|
130
130
|
<dt id="VERSION-constant" class="">VERSION =
|
131
131
|
|
132
132
|
</dt>
|
133
|
-
<dd><pre class="code"><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>0.
|
133
|
+
<dd><pre class="code"><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>0.8.0</span><span class='tstring_end'>'</span></span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span></pre></dd>
|
134
134
|
|
135
135
|
</dl>
|
136
136
|
|
@@ -170,6 +170,31 @@ different data types.</p>
|
|
170
170
|
methods.</p>
|
171
171
|
</div></span>
|
172
172
|
|
173
|
+
</li>
|
174
|
+
|
175
|
+
|
176
|
+
<li class="public ">
|
177
|
+
<span class="summary_signature">
|
178
|
+
|
179
|
+
<a href="#define_type-class_method" title="define_type (class method)">.<strong>define_type</strong>(name, options = {}) { ... } ⇒ nil </a>
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
</span>
|
184
|
+
|
185
|
+
|
186
|
+
|
187
|
+
|
188
|
+
|
189
|
+
|
190
|
+
|
191
|
+
|
192
|
+
|
193
|
+
<span class="summary_desc"><div class='inline'>
|
194
|
+
<p>Defines a new type for use as the “as” option on a subsequent
|
195
|
+
<code>.parse</code> or <code>.register</code> call.</p>
|
196
|
+
</div></span>
|
197
|
+
|
173
198
|
</li>
|
174
199
|
|
175
200
|
|
@@ -281,22 +306,22 @@ is equivalent to <a href="'XYZ'">EnvParser.parse(ENV</a>, …)</p>
|
|
281
306
|
<pre class="lines">
|
282
307
|
|
283
308
|
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
309
|
+
229
|
310
|
+
230
|
311
|
+
231
|
312
|
+
232
|
313
|
+
233
|
314
|
+
234
|
315
|
+
235
|
316
|
+
236
|
317
|
+
237
|
318
|
+
238
|
319
|
+
239
|
320
|
+
240
|
321
|
+
241</pre>
|
297
322
|
</td>
|
298
323
|
<td>
|
299
|
-
<pre class="code"><span class="info file"># File 'lib/env_parser.rb', line
|
324
|
+
<pre class="code"><span class="info file"># File 'lib/env_parser.rb', line 229</span>
|
300
325
|
|
301
326
|
<span class='kw'>def</span> <span class='id identifier rubyid_add_env_bindings'>add_env_bindings</span>
|
302
327
|
<span class='const'>ENV</span><span class='period'>.</span><span class='id identifier rubyid_instance_eval'>instance_eval</span> <span class='kw'>do</span>
|
@@ -314,6 +339,211 @@ is equivalent to <a href="'XYZ'">EnvParser.parse(ENV</a>, …)</p>
|
|
314
339
|
</td>
|
315
340
|
</tr>
|
316
341
|
</table>
|
342
|
+
</div>
|
343
|
+
|
344
|
+
<div class="method_details ">
|
345
|
+
<h3 class="signature " id="define_type-class_method">
|
346
|
+
|
347
|
+
.<strong>define_type</strong>(name, options = {}) { ... } ⇒ <tt>nil</tt>
|
348
|
+
|
349
|
+
|
350
|
+
|
351
|
+
|
352
|
+
|
353
|
+
</h3><div class="docstring">
|
354
|
+
<div class="discussion">
|
355
|
+
|
356
|
+
<p>Defines a new type for use as the “as” option on a subsequent
|
357
|
+
<code>.parse</code> or <code>.register</code> call.</p>
|
358
|
+
|
359
|
+
|
360
|
+
</div>
|
361
|
+
</div>
|
362
|
+
<div class="tags">
|
363
|
+
<p class="tag_title">Parameters:</p>
|
364
|
+
<ul class="param">
|
365
|
+
|
366
|
+
<li>
|
367
|
+
|
368
|
+
<span class='name'>name</span>
|
369
|
+
|
370
|
+
|
371
|
+
<span class='type'>(<tt>Symbol</tt>)</span>
|
372
|
+
|
373
|
+
|
374
|
+
|
375
|
+
—
|
376
|
+
<div class='inline'>
|
377
|
+
<p>The name to assign to the type.</p>
|
378
|
+
</div>
|
379
|
+
|
380
|
+
</li>
|
381
|
+
|
382
|
+
<li>
|
383
|
+
|
384
|
+
<span class='name'>options</span>
|
385
|
+
|
386
|
+
|
387
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
388
|
+
|
389
|
+
|
390
|
+
<em class="default">(defaults to: <tt>{}</tt>)</em>
|
391
|
+
|
392
|
+
|
393
|
+
—
|
394
|
+
<div class='inline'>
|
395
|
+
<p>a customizable set of options</p>
|
396
|
+
</div>
|
397
|
+
|
398
|
+
</li>
|
399
|
+
|
400
|
+
</ul>
|
401
|
+
|
402
|
+
|
403
|
+
|
404
|
+
|
405
|
+
|
406
|
+
|
407
|
+
<p class="tag_title">Options Hash (<tt>options</tt>):</p>
|
408
|
+
<ul class="option">
|
409
|
+
|
410
|
+
<li>
|
411
|
+
<span class="name">aliases</span>
|
412
|
+
<span class="type">(<tt>Array<Symbol></tt>)</span>
|
413
|
+
<span class="default">
|
414
|
+
|
415
|
+
</span>
|
416
|
+
|
417
|
+
— <div class='inline'>
|
418
|
+
<p>An array of additional names you'd like to see refer to this same type.</p>
|
419
|
+
</div>
|
420
|
+
|
421
|
+
</li>
|
422
|
+
|
423
|
+
<li>
|
424
|
+
<span class="name">if_unset</span>
|
425
|
+
<span class="type">(<tt>Object</tt>)</span>
|
426
|
+
<span class="default">
|
427
|
+
|
428
|
+
</span>
|
429
|
+
|
430
|
+
— <div class='inline'>
|
431
|
+
<p>Specifies a “sensible default” to return for this type if the value being
|
432
|
+
parsed (via <code>.parse</code> or <code>.register</code>) is either unset
|
433
|
+
(<code>nil</code>) or blank (<code>''</code>). Note this may be
|
434
|
+
overridden by the user via the <code>.parse</code>/<code>.register</code>
|
435
|
+
“if_unset” option.</p>
|
436
|
+
</div>
|
437
|
+
|
438
|
+
</li>
|
439
|
+
|
440
|
+
</ul>
|
441
|
+
|
442
|
+
|
443
|
+
<p class="tag_title">Yields:</p>
|
444
|
+
<ul class="yield">
|
445
|
+
|
446
|
+
<li>
|
447
|
+
|
448
|
+
|
449
|
+
<span class='type'></span>
|
450
|
+
|
451
|
+
|
452
|
+
|
453
|
+
|
454
|
+
<div class='inline'>
|
455
|
+
<p>A block to act as the parser for the this type. If no block is given, an
|
456
|
+
ArgumentError is raised.</p>
|
457
|
+
|
458
|
+
<p>When the type defined is used via a
|
459
|
+
<code>.parse</code>/<code>.register</code> call, this block is invoked with
|
460
|
+
the value to be parsed. Said value is guaranteed to be a non-empty String
|
461
|
+
(the “if_unset” check will have already run), but no other assurances as to
|
462
|
+
content are given. The block should return the final output of parsing the
|
463
|
+
given String value as the type being defined.</p>
|
464
|
+
|
465
|
+
<p>If the value given cannot be sensibly parsed into the type defined, the
|
466
|
+
block should raise an EnvParser::ValueNotAllowed exception.</p>
|
467
|
+
</div>
|
468
|
+
|
469
|
+
</li>
|
470
|
+
|
471
|
+
</ul>
|
472
|
+
<p class="tag_title">Returns:</p>
|
473
|
+
<ul class="return">
|
474
|
+
|
475
|
+
<li>
|
476
|
+
|
477
|
+
|
478
|
+
<span class='type'>(<tt>nil</tt>)</span>
|
479
|
+
|
480
|
+
|
481
|
+
|
482
|
+
—
|
483
|
+
<div class='inline'>
|
484
|
+
<p>This generates no usable value.</p>
|
485
|
+
</div>
|
486
|
+
|
487
|
+
</li>
|
488
|
+
|
489
|
+
</ul>
|
490
|
+
<p class="tag_title">Raises:</p>
|
491
|
+
<ul class="raise">
|
492
|
+
|
493
|
+
<li>
|
494
|
+
|
495
|
+
|
496
|
+
<span class='type'>(<tt>ArgumentError</tt>, <tt><span class='object_link'><a href="EnvParser/TypeAlreadyDefined.html" title="EnvParser::TypeAlreadyDefined (class)">EnvParser::TypeAlreadyDefined</a></span></tt>)</span>
|
497
|
+
|
498
|
+
|
499
|
+
|
500
|
+
</li>
|
501
|
+
|
502
|
+
</ul>
|
503
|
+
|
504
|
+
</div><table class="source_code">
|
505
|
+
<tr>
|
506
|
+
<td>
|
507
|
+
<pre class="lines">
|
508
|
+
|
509
|
+
|
510
|
+
53
|
511
|
+
54
|
512
|
+
55
|
513
|
+
56
|
514
|
+
57
|
515
|
+
58
|
516
|
+
59
|
517
|
+
60
|
518
|
+
61
|
519
|
+
62
|
520
|
+
63
|
521
|
+
64
|
522
|
+
65
|
523
|
+
66
|
524
|
+
67</pre>
|
525
|
+
</td>
|
526
|
+
<td>
|
527
|
+
<pre class="code"><span class="info file"># File 'lib/env_parser.rb', line 53</span>
|
528
|
+
|
529
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_define_type'>define_type</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'>&</span><span class='id identifier rubyid_parser'>parser</span><span class='rparen'>)</span>
|
530
|
+
<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'>'</span><span class='tstring_content'>no parsing block given</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_block_given?'>block_given?</span>
|
531
|
+
|
532
|
+
<span class='id identifier rubyid_given_types'>given_types</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='const'>Array</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span> <span class='op'>+</span> <span class='const'>Array</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:aliases</span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:to_s</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:to_sym</span><span class='rparen'>)</span>
|
533
|
+
<span class='id identifier rubyid_given_types'>given_types</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_type'>type</span><span class='op'>|</span>
|
534
|
+
<span class='id identifier rubyid_raise'>raise</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="EnvParser/TypeAlreadyDefined.html" title="EnvParser::TypeAlreadyDefined (class)">TypeAlreadyDefined</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>cannot redefine </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_type'>type</span><span class='period'>.</span><span class='id identifier rubyid_inspect'>inspect</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_known_types'>known_types</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span><span class='lparen'>(</span><span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span>
|
535
|
+
|
536
|
+
<span class='id identifier rubyid_known_types'>known_types</span><span class='lbracket'>[</span><span class='id identifier rubyid_type'>type</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbrace'>{</span>
|
537
|
+
<span class='label'>parser:</span> <span class='id identifier rubyid_parser'>parser</span><span class='comma'>,</span>
|
538
|
+
<span class='label'>if_unset:</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:if_unset</span><span class='rbracket'>]</span>
|
539
|
+
<span class='rbrace'>}</span>
|
540
|
+
<span class='kw'>end</span>
|
541
|
+
|
542
|
+
<span class='kw'>nil</span>
|
543
|
+
<span class='kw'>end</span></pre>
|
544
|
+
</td>
|
545
|
+
</tr>
|
546
|
+
</table>
|
317
547
|
</div>
|
318
548
|
|
319
549
|
<div class="method_details ">
|
@@ -392,27 +622,10 @@ be used.</p>
|
|
392
622
|
|
393
623
|
— <div class='inline'>
|
394
624
|
<p>The expected return type. A best-effort attempt is made to convert the
|
395
|
-
source String to the requested type
|
396
|
-
|
397
|
-
<p
|
398
|
-
|
399
|
-
<p><code>:symbol</code></p>
|
400
|
-
</li><li>
|
401
|
-
<p><code>:boolean</code></p>
|
402
|
-
</li><li>
|
403
|
-
<p><code>:int</code> / <code>:integer</code></p>
|
404
|
-
</li><li>
|
405
|
-
<p><code>:float</code> / <code>:decimal</code> / <code>:number</code></p>
|
406
|
-
</li><li>
|
407
|
-
<p><code>:json</code></p>
|
408
|
-
</li><li>
|
409
|
-
<p><code>:array</code></p>
|
410
|
-
</li><li>
|
411
|
-
<p><code>:hash</code></p>
|
412
|
-
</li></ul>
|
413
|
-
|
414
|
-
<p>If no “as” option is given (or the “as” value given is not on the above
|
415
|
-
list), an ArgumentError exception is raised.</p>
|
625
|
+
source String to the requested type.</p>
|
626
|
+
|
627
|
+
<p>If no “as” option is given (or the “as” value given has not been defined),
|
628
|
+
an ArgumentError exception is raised.</p>
|
416
629
|
</div>
|
417
630
|
|
418
631
|
</li>
|
@@ -528,51 +741,35 @@ pass.</strong></p>
|
|
528
741
|
<pre class="lines">
|
529
742
|
|
530
743
|
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
87
|
547
|
-
88
|
548
|
-
89
|
549
|
-
90
|
550
|
-
91
|
551
|
-
92
|
552
|
-
93
|
553
|
-
94</pre>
|
744
|
+
119
|
745
|
+
120
|
746
|
+
121
|
747
|
+
122
|
748
|
+
123
|
749
|
+
124
|
750
|
+
125
|
751
|
+
126
|
752
|
+
127
|
753
|
+
128
|
754
|
+
129
|
755
|
+
130
|
756
|
+
131
|
757
|
+
132
|
758
|
+
133</pre>
|
554
759
|
</td>
|
555
760
|
<td>
|
556
|
-
<pre class="code"><span class="info file"># File 'lib/env_parser.rb', line
|
761
|
+
<pre class="code"><span class="info file"># File 'lib/env_parser.rb', line 119</span>
|
557
762
|
|
558
763
|
<span class='kw'>def</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='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_validation_block'>validation_block</span><span class='rparen'>)</span>
|
559
764
|
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='const'>ENV</span><span class='lbracket'>[</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'>Symbol</span>
|
560
765
|
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
|
561
766
|
|
562
|
-
<span class='
|
767
|
+
<span class='id identifier rubyid_type'>type</span> <span class='op'>=</span> <span class='id identifier rubyid_known_types'>known_types</span><span class='lbracket'>[</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:as</span><span class='rbracket'>]</span><span class='rbracket'>]</span>
|
768
|
+
<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'>"</span><span class='tstring_content'>invalid `as` parameter: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:as</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_inspect'>inspect</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_type'>type</span>
|
563
769
|
|
564
|
-
<span class='id identifier
|
565
|
-
<span class='kw'>when</span> <span class='symbol'>:string</span> <span class='kw'>then</span> <span class='id identifier rubyid_parse_string'>parse_string</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
566
|
-
<span class='kw'>when</span> <span class='symbol'>:symbol</span> <span class='kw'>then</span> <span class='id identifier rubyid_parse_symbol'>parse_symbol</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
567
|
-
<span class='kw'>when</span> <span class='symbol'>:boolean</span> <span class='kw'>then</span> <span class='id identifier rubyid_parse_boolean'>parse_boolean</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
568
|
-
<span class='kw'>when</span> <span class='symbol'>:int</span><span class='comma'>,</span> <span class='symbol'>:integer</span> <span class='kw'>then</span> <span class='id identifier rubyid_parse_integer'>parse_integer</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
569
|
-
<span class='kw'>when</span> <span class='symbol'>:float</span><span class='comma'>,</span> <span class='symbol'>:decimal</span><span class='comma'>,</span> <span class='symbol'>:number</span> <span class='kw'>then</span> <span class='id identifier rubyid_parse_float'>parse_float</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
570
|
-
<span class='kw'>when</span> <span class='symbol'>:json</span> <span class='kw'>then</span> <span class='id identifier rubyid_parse_json'>parse_json</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
571
|
-
<span class='kw'>when</span> <span class='symbol'>:array</span> <span class='kw'>then</span> <span class='id identifier rubyid_parse_array'>parse_array</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
572
|
-
<span class='kw'>when</span> <span class='symbol'>:hash</span> <span class='kw'>then</span> <span class='id identifier rubyid_parse_hash'>parse_hash</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
573
|
-
<span class='kw'>else</span> <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>invalid `as` parameter: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:as</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_inspect'>inspect</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span>
|
574
|
-
<span class='kw'>end</span>
|
770
|
+
<span class='kw'>return</span> <span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span><span class='lparen'>(</span><span class='symbol'>:if_unset</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:if_unset</span><span class='rbracket'>]</span> <span class='op'>:</span> <span class='id identifier rubyid_type'>type</span><span class='lbracket'>[</span><span class='symbol'>:if_unset</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_blank?'>blank?</span>
|
575
771
|
|
772
|
+
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_type'>type</span><span class='lbracket'>[</span><span class='symbol'>:parser</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
576
773
|
<span class='id identifier rubyid_check_for_set_inclusion'>check_for_set_inclusion</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='comma'>,</span> <span class='label'>set:</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:from_set</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span><span class='lparen'>(</span><span class='symbol'>:from_set</span><span class='rparen'>)</span>
|
577
774
|
<span class='id identifier rubyid_check_user_defined_validations'>check_user_defined_validations</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='comma'>,</span> <span class='label'>proc:</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:validated_by</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='label'>block:</span> <span class='id identifier rubyid_validation_block'>validation_block</span><span class='rparen'>)</span>
|
578
775
|
|
@@ -791,43 +988,43 @@ constants simultaneously – each value needing validation must give its own
|
|
791
988
|
<pre class="lines">
|
792
989
|
|
793
990
|
|
794
|
-
|
795
|
-
|
796
|
-
|
797
|
-
|
798
|
-
|
799
|
-
|
800
|
-
|
801
|
-
|
802
|
-
|
803
|
-
|
804
|
-
|
805
|
-
|
806
|
-
|
807
|
-
|
808
|
-
|
809
|
-
|
810
|
-
|
811
|
-
|
812
|
-
|
813
|
-
|
814
|
-
|
815
|
-
|
816
|
-
|
817
|
-
|
818
|
-
|
819
|
-
|
820
|
-
|
821
|
-
|
822
|
-
|
823
|
-
|
824
|
-
|
825
|
-
|
826
|
-
|
827
|
-
|
991
|
+
185
|
992
|
+
186
|
993
|
+
187
|
994
|
+
188
|
995
|
+
189
|
996
|
+
190
|
997
|
+
191
|
998
|
+
192
|
999
|
+
193
|
1000
|
+
194
|
1001
|
+
195
|
1002
|
+
196
|
1003
|
+
197
|
1004
|
+
198
|
1005
|
+
199
|
1006
|
+
200
|
1007
|
+
201
|
1008
|
+
202
|
1009
|
+
203
|
1010
|
+
204
|
1011
|
+
205
|
1012
|
+
206
|
1013
|
+
207
|
1014
|
+
208
|
1015
|
+
209
|
1016
|
+
210
|
1017
|
+
211
|
1018
|
+
212
|
1019
|
+
213
|
1020
|
+
214
|
1021
|
+
215
|
1022
|
+
216
|
1023
|
+
217
|
1024
|
+
218</pre>
|
828
1025
|
</td>
|
829
1026
|
<td>
|
830
|
-
<pre class="code"><span class="info file"># File 'lib/env_parser.rb', line
|
1027
|
+
<pre class="code"><span class="info file"># File 'lib/env_parser.rb', line 185</span>
|
831
1028
|
|
832
1029
|
<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'>&</span><span class='id identifier rubyid_validation_block'>validation_block</span><span class='rparen'>)</span>
|
833
1030
|
<span class='comment'>## We want to allow for registering multiple variables simultaneously via a single `.register`
|
@@ -873,7 +1070,7 @@ constants simultaneously – each value needing validation must give its own
|
|
873
1070
|
</div>
|
874
1071
|
|
875
1072
|
<div id="footer">
|
876
|
-
Generated on
|
1073
|
+
Generated on Sun Dec 24 19:33:35 2017 by
|
877
1074
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
878
1075
|
0.9.11 (ruby-2.4.2).
|
879
1076
|
</div>
|