env_parser 1.6.0 → 1.6.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4106f96ced2bcf4948b4547012b017e8632bf43450e86d9639eaf54aa9802ffb
4
- data.tar.gz: c6e54495905a39126f320226a118b6c83405860a8ec502e7711e28ed9ad57de9
3
+ metadata.gz: 897f5a82aae1f8d7c418937e61f72669eba8d846c5ee282bffd7f4ee72970f96
4
+ data.tar.gz: 6b90041b9ea794d896c9f603e8117377482fdaecb682cda49a925fd9dbdc22a9
5
5
  SHA512:
6
- metadata.gz: 2fb35a0bee0ec626b5c070e426cd5214ce42e9be4eef861ce922c9ee0366c75dbddfcf9b352ca5c5d5806cd0e35ed25575181e35babf56b4b748260133215d46
7
- data.tar.gz: ddc6daa85de95c97f2a914f8ff563c9e6fd128f14ca8566a2af153458a6d782fe73831b60d34b503e7beee00285d069354a216ef5b1b261a5a4072d5fa7930ed
6
+ metadata.gz: cc132c2bdb3feffef9f294dae4ae929533e65da860e93b360290e655625011640f773f02596cfda8570e87e95877bc5a3c814cc8b23f43078bcf0b99dea4cdf9
7
+ data.tar.gz: c5d8ff0e7378ff6c94f104bcf1d35ec71ab4952b7fd3826854818b7d01f6a45f000697b5dcc173babcafa073dc6eb25def9721df60210b47be4afc936e4eebfe
data/Gemfile.lock CHANGED
@@ -1,10 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- env_parser (1.3.3)
4
+ env_parser (1.6.0)
5
5
  activesupport (>= 6.1.0, < 7.1)
6
- chronic
7
- chronic_duration
6
+ chronic (~> 0)
7
+ chronic_duration (~> 0)
8
8
 
9
9
  GEM
10
10
  remote: https://rubygems.org/
@@ -29,7 +29,6 @@ GEM
29
29
  parser (3.1.3.0)
30
30
  ast (~> 2.4.1)
31
31
  rainbow (3.1.1)
32
- rake (13.0.6)
33
32
  regexp_parser (2.6.1)
34
33
  rexml (3.2.5)
35
34
  rspec (3.12.0)
@@ -73,7 +72,6 @@ PLATFORMS
73
72
  DEPENDENCIES
74
73
  bundler (~> 2)
75
74
  env_parser!
76
- rake
77
75
  rspec (~> 3)
78
76
  rspec_junit_formatter
79
77
  rubocop
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  [![Gem Version](https://img.shields.io/github/v/release/nestor-custodio/env_parser?color=green&label=gem%20version)](https://rubygems.org/gems/env_parser)
2
- [![MIT License](https://img.shields.io/github/license/nestor-custodio/env_parser)](https://github.com/nestor-custodio/env_parser/blob/main/LICENSE.txt)
2
+ [![MIT License](https://img.shields.io/github/license/nestor-custodio/env_parser)](https://tldrlegal.com/license/mit-license)
3
3
 
4
4
 
5
5
  # EnvParser
@@ -133,7 +133,7 @@ feature).</p>
133
133
  </div>
134
134
 
135
135
  <div id="footer">
136
- Generated on Sun Dec 25 21:11:48 2022 by
136
+ Generated on Fri Dec 30 17:49:58 2022 by
137
137
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
138
138
  0.9.28 (ruby-3.0.4).
139
139
  </div>
@@ -128,7 +128,7 @@
128
128
  </div>
129
129
 
130
130
  <div id="footer">
131
- Generated on Sun Dec 25 21:11:48 2022 by
131
+ Generated on Fri Dec 30 17:49:58 2022 by
132
132
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
133
133
  0.9.28 (ruby-3.0.4).
134
134
  </div>
@@ -132,7 +132,7 @@
132
132
  </div>
133
133
 
134
134
  <div id="footer">
135
- Generated on Sun Dec 25 21:11:48 2022 by
135
+ Generated on Fri Dec 30 17:49:58 2022 by
136
136
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
137
137
  0.9.28 (ruby-3.0.4).
138
138
  </div>
@@ -169,7 +169,7 @@ valid, parseable JSON).</p>
169
169
  </div>
170
170
 
171
171
  <div id="footer">
172
- Generated on Sun Dec 25 21:11:48 2022 by
172
+ Generated on Fri Dec 30 17:49:58 2022 by
173
173
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
174
174
  0.9.28 (ruby-3.0.4).
175
175
  </div>
@@ -150,7 +150,7 @@
150
150
  </div>
151
151
 
152
152
  <div id="footer">
153
- Generated on Sun Dec 25 21:11:48 2022 by
153
+ Generated on Fri Dec 30 17:49:58 2022 by
154
154
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
155
155
  0.9.28 (ruby-3.0.4).
156
156
  </div>
@@ -129,6 +129,18 @@
129
129
  Note this does not guarantee RFC5322-conformity.
130
130
  </td>
131
131
  </tr>
132
+ <tr>
133
+ <td>:version / :semver</td>
134
+ <td>MatchData</td>
135
+ <td><code>nil</code></td>
136
+ <td>
137
+ The resulting MatchData has named captures for "major", "minor", "patch", "prerelease", and "buildmetadata".
138
+ <br />
139
+ The Regex used for generating this MatchData is available at: https://regex101.com/r/Ly7O1x/3/
140
+ <br />
141
+ See https://semver.org for additional info.
142
+ </td>
143
+ </tr>
132
144
  </tbody>
133
145
  </table>
134
146
 
@@ -150,7 +162,7 @@
150
162
  </div>
151
163
 
152
164
  <div id="footer">
153
- Generated on Sun Dec 25 21:11:48 2022 by
165
+ Generated on Fri Dec 30 17:49:58 2022 by
154
166
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
155
167
  0.9.28 (ruby-3.0.4).
156
168
  </div>
@@ -118,7 +118,7 @@ Exists only for documentation’s sake.</p>
118
118
  </div>
119
119
 
120
120
  <div id="footer">
121
- Generated on Sun Dec 25 21:11:48 2022 by
121
+ Generated on Fri Dec 30 17:49:58 2022 by
122
122
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
123
123
  0.9.28 (ruby-3.0.4).
124
124
  </div>
@@ -132,7 +132,7 @@
132
132
  </div>
133
133
 
134
134
  <div id="footer">
135
- Generated on Sun Dec 25 21:11:48 2022 by
135
+ Generated on Fri Dec 30 17:49:58 2022 by
136
136
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
137
137
  0.9.28 (ruby-3.0.4).
138
138
  </div>
@@ -133,7 +133,7 @@ feature).</p>
133
133
  </div>
134
134
 
135
135
  <div id="footer">
136
- Generated on Sun Dec 25 21:11:48 2022 by
136
+ Generated on Fri Dec 30 17:49:58 2022 by
137
137
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
138
138
  0.9.28 (ruby-3.0.4).
139
139
  </div>
@@ -134,7 +134,7 @@ check.</p>
134
134
  </div>
135
135
 
136
136
  <div id="footer">
137
- Generated on Sun Dec 25 21:11:48 2022 by
137
+ Generated on Fri Dec 30 17:49:58 2022 by
138
138
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
139
139
  0.9.28 (ruby-3.0.4).
140
140
  </div>
@@ -132,7 +132,7 @@
132
132
  </div>
133
133
 
134
134
  <div id="footer">
135
- Generated on Sun Dec 25 21:11:48 2022 by
135
+ Generated on Fri Dec 30 17:49:58 2022 by
136
136
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
137
137
  0.9.28 (ruby-3.0.4).
138
138
  </div>
data/docs/EnvParser.html CHANGED
@@ -150,7 +150,7 @@
150
150
  <dt id="VERSION-constant" class="">VERSION =
151
151
 
152
152
  </dt>
153
- <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>1.3.3</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.6.0</span><span class='tstring_end'>&#39;</span></span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span></pre></dd>
154
154
 
155
155
  </dl>
156
156
 
@@ -339,22 +339,22 @@ itself. i.e. ENV.parse(‘XYZ’, …) is equivalent to EnvParser.parse(ENV[‘
339
339
  <pre class="lines">
340
340
 
341
341
 
342
- 216
343
- 217
344
- 218
345
- 219
346
- 220
347
- 221
348
- 222
349
- 223
350
- 224
351
- 225
352
- 226
353
- 227
354
- 228</pre>
342
+ 232
343
+ 233
344
+ 234
345
+ 235
346
+ 236
347
+ 237
348
+ 238
349
+ 239
350
+ 240
351
+ 241
352
+ 242
353
+ 243
354
+ 244</pre>
355
355
  </td>
356
356
  <td>
357
- <pre class="code"><span class="info file"># File 'lib/env_parser.rb', line 216</span>
357
+ <pre class="code"><span class="info file"># File 'lib/env_parser.rb', line 232</span>
358
358
 
359
359
  <span class='kw'>def</span> <span class='id identifier rubyid_add_env_bindings'>add_env_bindings</span>
360
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>
@@ -455,22 +455,6 @@ itself. i.e. ENV.parse(‘XYZ’, …) is equivalent to EnvParser.parse(ENV[‘
455
455
  <pre class="lines">
456
456
 
457
457
 
458
- 245
459
- 246
460
- 247
461
- 248
462
- 249
463
- 250
464
- 251
465
- 252
466
- 253
467
- 254
468
- 255
469
- 256
470
- 257
471
- 258
472
- 259
473
- 260
474
458
  261
475
459
  262
476
460
  263
@@ -479,10 +463,26 @@ itself. i.e. ENV.parse(‘XYZ’, …) is equivalent to EnvParser.parse(ENV[‘
479
463
  266
480
464
  267
481
465
  268
482
- 269</pre>
466
+ 269
467
+ 270
468
+ 271
469
+ 272
470
+ 273
471
+ 274
472
+ 275
473
+ 276
474
+ 277
475
+ 278
476
+ 279
477
+ 280
478
+ 281
479
+ 282
480
+ 283
481
+ 284
482
+ 285</pre>
483
483
  </td>
484
484
  <td>
485
- <pre class="code"><span class="info file"># File 'lib/env_parser.rb', line 245</span>
485
+ <pre class="code"><span class="info file"># File 'lib/env_parser.rb', line 261</span>
486
486
 
487
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
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>
@@ -490,7 +490,7 @@ itself. i.e. ENV.parse(‘XYZ’, …) is equivalent to EnvParser.parse(ENV[‘
490
490
 
491
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>
492
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>
493
- <span class='id identifier rubyid_sanitized'>sanitized</span> <span class='op'>=</span> <span class='id identifier rubyid_spec'>spec</span><span class='period'>.</span><span class='id identifier rubyid_slice'>slice</span><span class='lparen'>(</span><span class='symbol'>:as</span><span class='comma'>,</span> <span class='symbol'>:within</span><span class='comma'>,</span> <span class='symbol'>:if_unset</span><span class='comma'>,</span> <span class='symbol'>:from_set</span><span class='rparen'>)</span>
493
+ <span class='id identifier rubyid_sanitized'>sanitized</span> <span class='op'>=</span> <span class='id identifier rubyid_spec'>spec</span><span class='period'>.</span><span class='id identifier rubyid_slice'>slice</span><span class='lparen'>(</span><span class='symbol'>:as</span><span class='comma'>,</span> <span class='symbol'>:named</span><span class='comma'>,</span> <span class='symbol'>:within</span><span class='comma'>,</span> <span class='symbol'>:if_unset</span><span class='comma'>,</span> <span class='symbol'>:from_set</span><span class='rparen'>)</span>
494
494
  <span class='id identifier rubyid_sanitized'>sanitized</span><span class='lbracket'>[</span><span class='symbol'>:as</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_sanitized'>sanitized</span><span class='lbracket'>[</span><span class='symbol'>:as</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span> <span class='kw'>if</span> <span class='id identifier rubyid_sanitized'>sanitized</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span> <span class='symbol'>:as</span>
495
495
  <span class='id identifier rubyid_sanitized'>sanitized</span><span class='lbracket'>[</span><span class='symbol'>:within</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_sanitized'>sanitized</span><span class='lbracket'>[</span><span class='symbol'>:within</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_constantize'>constantize</span> <span class='kw'>if</span> <span class='id identifier rubyid_sanitized'>sanitized</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span> <span class='symbol'>:within</span>
496
496
 
@@ -948,12 +948,12 @@ both validation checks must pass.</strong></p>
948
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>
949
949
 
950
950
  <pre class="code ruby"><code class="ruby">
951
- ## Example shortcut usage:
951
+ # Example shortcut usage:
952
952
 
953
953
  EnvParser.register :A, from: one_hash, as: :integer
954
954
  EnvParser.register :B, from: another_hash, as: :string, if_unset: &#39;none&#39;
955
955
 
956
- ## ... is equivalent to ...
956
+ # ... is equivalent to ...
957
957
 
958
958
  EnvParser.register(
959
959
  A: { from: one_hash, as: :integer }
@@ -1026,6 +1026,28 @@ variable names and whose values are the options set for each variable’s <span
1026
1026
 
1027
1027
  </li>
1028
1028
 
1029
+ <li>
1030
+ <span class="name">named</span>
1031
+ <span class="type">(<tt>Symbol</tt>)</span>
1032
+ <span class="default">
1033
+
1034
+ </span>
1035
+
1036
+ &mdash; <div class='inline'><p>The name the constant should be given. Valid only when a “within” value is <em>explicitly</em>
1037
+ given. This allows for decoupling ENV variable names from the constant name defined
1038
+ within its target class or module, allowing for the ENV variables to be namespaced in
1039
+ some way.</p>
1040
+
1041
+ <pre class="code ruby"><code class="ruby">
1042
+ <span class='const'><span class='object_link'><a href="" title="EnvParser (class)">EnvParser</a></span></span><span class='period'>.</span><span class='id identifier rubyid_register'>register</span><span class='lparen'>(</span>
1043
+ <span class='label'>CUSTOM_CLIENT_DEFAULT_HOSTNAME:</span> <span class='lbrace'>{</span> <span class='label'>as:</span> <span class='symbol'>:string</span><span class='comma'>,</span> <span class='label'>named:</span> <span class='symbol'>:DEFAULT_HOSTNAME</span><span class='comma'>,</span> <span class='label'>within:</span> <span class='const'>CustomClient</span> <span class='rbrace'>}</span><span class='comma'>,</span>
1044
+ <span class='label'>CUSTOM_CLIENT_DEFAULT_PORT:</span> <span class='lbrace'>{</span> <span class='label'>as:</span> <span class='symbol'>:integer</span><span class='comma'>,</span> <span class='label'>named:</span> <span class='symbol'>:DEFAULT_PORT</span><span class='comma'>,</span> <span class='label'>within:</span> <span class='const'>CustomClient</span> <span class='rbrace'>}</span>
1045
+ <span class='rparen'>)</span>
1046
+ </code></pre>
1047
+ </div>
1048
+
1049
+ </li>
1050
+
1029
1051
  <li>
1030
1052
  <span class="name">within</span>
1031
1053
  <span class="type">(<tt>Module</tt>, <tt>Class</tt>)</span>
@@ -1132,19 +1154,6 @@ validation must give its own “validated_by” Proc.</p>
1132
1154
  <pre class="lines">
1133
1155
 
1134
1156
 
1135
- 178
1136
- 179
1137
- 180
1138
- 181
1139
- 182
1140
- 183
1141
- 184
1142
- 185
1143
- 186
1144
- 187
1145
- 188
1146
- 189
1147
- 190
1148
1157
  191
1149
1158
  192
1150
1159
  193
@@ -1159,10 +1168,26 @@ validation must give its own “validated_by” Proc.</p>
1159
1168
  202
1160
1169
  203
1161
1170
  204
1162
- 205</pre>
1171
+ 205
1172
+ 206
1173
+ 207
1174
+ 208
1175
+ 209
1176
+ 210
1177
+ 211
1178
+ 212
1179
+ 213
1180
+ 214
1181
+ 215
1182
+ 216
1183
+ 217
1184
+ 218
1185
+ 219
1186
+ 220
1187
+ 221</pre>
1163
1188
  </td>
1164
1189
  <td>
1165
- <pre class="code"><span class="info file"># File 'lib/env_parser.rb', line 178</span>
1190
+ <pre class="code"><span class="info file"># File 'lib/env_parser.rb', line 191</span>
1166
1191
 
1167
1192
  <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>
1168
1193
  <span class='comment'># Allow for registering multiple variables simultaneously via a single call.
@@ -1174,6 +1199,9 @@ validation must give its own “validated_by” Proc.</p>
1174
1199
  <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>
1175
1200
  <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>
1176
1201
 
1202
+ <span class='id identifier rubyid_named'>named</span> <span class='op'>=</span> <span class='id identifier rubyid_name'>name</span>
1203
+ <span class='id identifier rubyid_named'>named</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'>:named</span><span class='comma'>,</span> <span class='id identifier rubyid_name'>name</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='symbol'>:within</span>
1204
+
1177
1205
  <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
1206
  </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
1207
  </span> <span class='comment'># sanity checks later on. This is also a good place to make sure we&#39;re working with a String
@@ -1188,7 +1216,7 @@ validation must give its own “validated_by” Proc.</p>
1188
1216
 
1189
1217
  <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>
1190
1218
  <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>
1191
- <span class='id identifier rubyid_within'>within</span><span class='period'>.</span><span class='id identifier rubyid_const_set'>const_set</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_upcase'>upcase</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_dup'>dup</span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span><span class='rparen'>)</span>
1219
+ <span class='id identifier rubyid_within'>within</span><span class='period'>.</span><span class='id identifier rubyid_const_set'>const_set</span><span class='lparen'>(</span><span class='id identifier rubyid_named'>named</span><span class='period'>.</span><span class='id identifier rubyid_upcase'>upcase</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_dup'>dup</span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span><span class='rparen'>)</span>
1192
1220
 
1193
1221
  <span class='id identifier rubyid_value'>value</span>
1194
1222
  <span class='kw'>end</span></pre>
@@ -1202,7 +1230,7 @@ validation must give its own “validated_by” Proc.</p>
1202
1230
  </div>
1203
1231
 
1204
1232
  <div id="footer">
1205
- Generated on Sun Dec 25 21:11:48 2022 by
1233
+ Generated on Fri Dec 30 17:49:58 2022 by
1206
1234
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1207
1235
  0.9.28 (ruby-3.0.4).
1208
1236
  </div>
data/docs/_index.html CHANGED
@@ -233,7 +233,7 @@
233
233
  </div>
234
234
 
235
235
  <div id="footer">
236
- Generated on Sun Dec 25 21:11:48 2022 by
236
+ Generated on Fri Dec 30 17:49:58 2022 by
237
237
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
238
238
  0.9.28 (ruby-3.0.4).
239
239
  </div>
@@ -76,13 +76,13 @@
76
76
  <li>
77
77
  <p>Add one of the following to your application’s Gemfile:
78
78
  ```ruby
79
- ## For on-demand usage …
80
- ##
79
+ # For on-demand usage …
80
+ #
81
81
  gem ‘env_parser’</p>
82
82
 
83
- <h2 id="to-automatically-register-env">To automatically register ENV</h2>
84
- <p>## constants per “.env_parser.yml” …
85
- ##
83
+ <h1 id="to-automatically-register-env">To automatically register ENV</h1>
84
+ <p># constants per “.env_parser.yml” …
85
+ #
86
86
  gem ‘env_parser’, require: ‘env_parser/autoregister’
87
87
  ```</p>
88
88
  </li>
@@ -103,33 +103,33 @@ $ gem install env_parser
103
103
  <h2 id="syntax-cheat-sheet">Syntax Cheat Sheet</h2>
104
104
 
105
105
  <p>```ruby
106
- ## Returns an ENV value parsed “as” a specific type:
107
- ##
106
+ # Returns an ENV value parsed “as” a specific type:
107
+ #
108
108
  EnvParser.parse env_key_as_a_symbol
109
- as: … ## ➜ required
110
- if_unset: … ## ➜ optional; default value
111
- from_set: … ## ➜ optional; an Array or Range
112
- validated_by: -&gt;(value) { … } ## ➜ optional; may also be given as a block</p>
109
+ as: … # ➜ required
110
+ if_unset: … # ➜ optional; default value
111
+ from_set: … # ➜ optional; an Array or Range
112
+ validated_by: -&gt;(value) { … } # ➜ optional; may also be given as a block</p>
113
113
 
114
- <h2 id="parse-an-env-value-and-register-it-as-a-constant">Parse an ENV value and register it as a constant:</h2>
115
- <p>##
114
+ <h1 id="parse-an-env-value-and-register-it-as-a-constant">Parse an ENV value and register it as a constant:</h1>
115
+ <p>#
116
116
  EnvParser.register env_key_as_a_symbol
117
- as: … ## ➜ required
118
- within: … ## ➜ optional; Class or Module
119
- if_unset: … ## ➜ optional; default value
120
- from_set: … ## ➜ optional; an Array or Range
121
- validated_by: -&gt;(value) { … } ## ➜ optional; may also be given as a block</p>
122
-
123
- <h2 id="registers-all-env-variables-as-speced-in-envparseryml">Registers all ENV variables as spec’ed in “.env_parser.yml”:</h2>
124
- <p>##
125
- EnvParser.autoregister ## Note this is automatically called if your
126
- ## Gemfile included the “env_parser” gem with
127
- ## the “require: ‘env_parser/autoregister’” option.</p>
128
-
129
- <h2 id="lets-you-call-parse-and-register-on-env-itself">Lets you call “parse” and “register” on ENV itself:</h2>
130
- <p>##
131
- EnvParser.add_env_bindings ## ENV.parse will now be a proxy for EnvParser.parse
132
- ## and ENV.register will now be a proxy for EnvParser.register
117
+ as: … # ➜ required
118
+ within: … # ➜ optional; Class or Module
119
+ if_unset: … # ➜ optional; default value
120
+ from_set: … # ➜ optional; an Array or Range
121
+ validated_by: -&gt;(value) { … } # ➜ optional; may also be given as a block</p>
122
+
123
+ <h1 id="registers-all-env-variables-as-speced-in-envparseryml">Registers all ENV variables as spec’ed in “.env_parser.yml”:</h1>
124
+ <p>#
125
+ EnvParser.autoregister # Note this is automatically called if your
126
+ # Gemfile included the “env_parser” gem with
127
+ # the “require: ‘env_parser/autoregister’” option.</p>
128
+
129
+ <h1 id="lets-you-call-parse-and-register-on-env-itself">Lets you call “parse” and “register” on ENV itself:</h1>
130
+ <p>#
131
+ EnvParser.add_env_bindings # ENV.parse will now be a proxy for EnvParser.parse
132
+ # and ENV.register will now be a proxy for EnvParser.register
133
133
  ```</p>
134
134
 
135
135
  <h2 id="extended-how-to-use">Extended How-To-Use</h2>
@@ -143,9 +143,9 @@ EnvParser.add_env_bindings ## ENV.parse will now be a proxy for EnvParser.parse
143
143
  <p>At its core, EnvParser is a straight-forward parser for string values (since that’s all <code>ENV</code> ever gives you), allowing you to read a given string <strong><em>as</em></strong> a variety of types.</p>
144
144
 
145
145
  <p><code>ruby
146
- ## Returns ENV['TIMEOUT_MS'] as an Integer,
147
- ## or a sensible default (0) if ENV['TIMEOUT_MS'] is unset.
148
- ##
146
+ # Returns ENV['TIMEOUT_MS'] as an Integer,
147
+ # or a sensible default (0) if ENV['TIMEOUT_MS'] is unset.
148
+ #
149
149
  timeout_ms = EnvParser.parse ENV['TIMEOUT_MS'], as: :integer
150
150
  </code></p>
151
151
 
@@ -157,9 +157,9 @@ timeout_ms = EnvParser.parse ENV['TIMEOUT_MS'], as: :integer
157
157
  <p>EnvParser is all about ~~simplification~~ ~~less typing~~ <em>laziness</em>. If you pass in a symbol instead of a string, EnvParser will look to <code>ENV</code> and use the value from the corresponding (string) key.</p>
158
158
 
159
159
  <p><code>ruby
160
- ## YAY, LESS TYPING! 😃
161
- ## These two are the same:
162
- ##
160
+ # YAY, LESS TYPING! 😃
161
+ # These two are the same:
162
+ #
163
163
  more_typing = EnvParser.parse ENV['TIMEOUT_MS'], as: :integer
164
164
  less_typing = EnvParser.parse :TIMEOUT_MS, as: :integer
165
165
  </code></p>
@@ -170,20 +170,20 @@ less_typing = EnvParser.parse :TIMEOUT_MS, as: :integer
170
170
  <p>The <code>EnvParser.register</code> method lets you “promote” <code>ENV</code> variables into their own constants, already parsed into the correct type.</p>
171
171
 
172
172
  <p>```ruby
173
- ENV[‘API_KEY’] ## =&gt; ‘unbreakable p4$$w0rd’</p>
173
+ ENV[‘API_KEY’] # =&gt; ‘unbreakable p4$$w0rd’</p>
174
174
 
175
175
  <p>EnvParser.register :API_KEY, as: :string
176
- API_KEY ## =&gt; ‘unbreakable p4$$w0rd’
176
+ API_KEY # =&gt; ‘unbreakable p4$$w0rd’
177
177
  ```</p>
178
178
 
179
179
  <p>By default, <code>EnvParser.register</code> will create the requested constant within the Kernel module (making it available everywhere), but you can specify any class or module you like.</p>
180
180
 
181
181
  <p>```ruby
182
- ENV[‘BEST_VIDEO’] ## =&gt; ‘https://youtu.be/L_jWHffIx5E’</p>
182
+ ENV[‘BEST_VIDEO’] # =&gt; ‘https://youtu.be/L_jWHffIx5E’</p>
183
183
 
184
184
  <p>EnvParser.register :BEST_VIDEO, as: :string, within: URI
185
- URI::BEST_VIDEO ## =&gt; ‘https://youtu.be/L_jWHffIx5E’
186
- BEST_VIDEO ## =&gt; raises NameError
185
+ URI::BEST_VIDEO # =&gt; ‘https://youtu.be/L_jWHffIx5E’
186
+ BEST_VIDEO # =&gt; raises NameError
187
187
  ```</p>
188
188
 
189
189
  <p>You can also register multiple constants with a single call, which is a bit cleaner.</p>
@@ -193,7 +193,7 @@ EnvParser.register :USERNAME, as: :string
193
193
  EnvParser.register :PASSWORD, as: :string
194
194
  EnvParser.register :MOCK_API, as: :boolean, within: MyClassOrModule }</p>
195
195
 
196
- <h2 id="is-equivalent-to-">… is equivalent to …</h2>
196
+ <h1 id="is-equivalent-to-">… is equivalent to …</h1>
197
197
 
198
198
  <p>EnvParser.register USERNAME: { as: :string },
199
199
  PASSWORD: { as: :string },
@@ -206,31 +206,31 @@ EnvParser.register :MOCK_API, as: :boolean, within: MyClassOrModule }</p>
206
206
  <p>Calling <code>EnvParser.add_env_bindings</code> binds proxy <code>parse</code> and <code>register</code> methods onto <code>ENV</code>. With these bindings in place, you can call <code>parse</code> or <code>register</code> on <code>ENV</code> itself, which is more legible and feels more straight-forward.</p>
207
207
 
208
208
  <p>```ruby
209
- ENV[‘SHORT_PI’] ## =&gt; ‘3.1415926’
210
- ENV[‘BETTER_PI’] ## =&gt; ‘[“flaky crust”, “strawberry filling”]’</p>
209
+ ENV[‘SHORT_PI’] # =&gt; ‘3.1415926’
210
+ ENV[‘BETTER_PI’] # =&gt; ‘[“flaky crust”, “strawberry filling”]’</p>
211
211
 
212
- <h2 id="bind-the-proxy-methods">Bind the proxy methods.</h2>
213
- <p>##
212
+ <h1 id="bind-the-proxy-methods">Bind the proxy methods.</h1>
213
+ <p>#
214
214
  EnvParser.add_env_bindings</p>
215
215
 
216
- <p>ENV.parse :SHORT_PI, as: :float ## =&gt; 3.1415926
217
- ENV.register :BETTER_PI, as: :array ## Your constant is set!
216
+ <p>ENV.parse :SHORT_PI, as: :float # =&gt; 3.1415926
217
+ ENV.register :BETTER_PI, as: :array # Your constant is set!
218
218
  ```</p>
219
219
 
220
220
  <p>Note that the proxy <code>ENV.parse</code> method will (naturally) <em>always</em> interpret the value given as an <code>ENV</code> key (converting it to a string, if necessary), which is slightly different from the original <code>EnvParser.parse</code> method.</p>
221
221
 
222
222
  <p>```ruby
223
- ENV[‘SHORT_PI’] ## =&gt; ‘3.1415926’</p>
223
+ ENV[‘SHORT_PI’] # =&gt; ‘3.1415926’</p>
224
224
 
225
- <p>EnvParser.parse ‘SHORT_PI’, as: :float ## =&gt; ‘SHORT_PI’ as a float: 0.0
226
- EnvParser.parse :SHORT_PI , as: :float ## =&gt; ENV[‘SHORT_PI’] as a float: 3.1415926</p>
225
+ <p>EnvParser.parse ‘SHORT_PI’, as: :float # =&gt; ‘SHORT_PI’ as a float: 0.0
226
+ EnvParser.parse :SHORT_PI , as: :float # =&gt; ENV[‘SHORT_PI’] as a float: 3.1415926</p>
227
227
 
228
- <h2 id="bind-the-proxy-methods-1">Bind the proxy methods.</h2>
229
- <p>##
228
+ <h1 id="bind-the-proxy-methods-1">Bind the proxy methods.</h1>
229
+ <p>#
230
230
  EnvParser.add_env_bindings</p>
231
231
 
232
- <p>ENV.parse ‘SHORT_PI’, as: :float ## =&gt; ENV[‘SHORT_PI’] as a float: 3.1415926
233
- ENV.parse :SHORT_PI , as: :float ## =&gt; ENV[‘SHORT_PI’] as a float: 3.1415926
232
+ <p>ENV.parse ‘SHORT_PI’, as: :float # =&gt; ENV[‘SHORT_PI’] as a float: 3.1415926
233
+ ENV.parse :SHORT_PI , as: :float # =&gt; ENV[‘SHORT_PI’] as a float: 3.1415926
234
234
  ```</p>
235
235
 
236
236
  <p>Note also that the <code>ENV.parse</code> and <code>ENV.register</code> binding is done safely and without polluting the method space for other objects.</p>
@@ -248,14 +248,14 @@ ENV.parse :SHORT_PI , as: :float ## =&gt; ENV[‘SHORT_PI’] as a float: 3.141
248
248
  <p>If the <code>ENV</code> variable you want is unset (<code>nil</code>) or blank (<code>''</code>), the return value is a sensible default for the given <strong><em>as</em></strong> type: 0 or 0.0 for numbers, an empty string/array/hash, etc. Sometimes you want a non-trivial default, however. The <strong><em>if_unset</em></strong> option lets you specify a default that better meets your needs.</p>
249
249
 
250
250
  <p><code>ruby
251
- ENV.parse :MISSING_VAR, as: :integer ## =&gt; 0
252
- ENV.parse :MISSING_VAR, as: :integer, if_unset: 250 ## =&gt; 250
251
+ ENV.parse :MISSING_VAR, as: :integer # =&gt; 0
252
+ ENV.parse :MISSING_VAR, as: :integer, if_unset: 250 # =&gt; 250
253
253
  </code></p>
254
254
 
255
255
  <p>Note these default values are used as-is with no type conversion, so exercise caution.</p>
256
256
 
257
257
  <p><code>ruby
258
- ENV.parse :MISSING_VAR, as: :integer, if_unset: 'Careful!' ## =&gt; 'Careful!' (NOT AN INTEGER)
258
+ ENV.parse :MISSING_VAR, as: :integer, if_unset: 'Careful!' # =&gt; 'Careful!' (NOT AN INTEGER)
259
259
  </code></p>
260
260
  </li>
261
261
  <li>
@@ -267,9 +267,9 @@ ENV.parse :MISSING_VAR, as: :integer, if_unset: 'Careful!' ## =&gt; 'Careful!'
267
267
  ENV.parse :API_TO_USE, as: :symbol, from_set: %i[internal external]
268
268
  ENV.parse :NETWORK_PORT, as: :integer, from_set: (1..65535), if_unset: 80</p>
269
269
 
270
- <h2 id="and-if-the-value-is-not-in-the-allowed-set-">And if the value is not in the allowed set …</h2>
271
- <p>##
272
- ENV.parse :TWELVE, as: :integer, from_set: (1..5) ## =&gt; raises EnvParser::ValueNotAllowedError
270
+ <h1 id="and-if-the-value-is-not-in-the-allowed-set-">And if the value is not in the allowed set …</h1>
271
+ <p>#
272
+ ENV.parse :TWELVE, as: :integer, from_set: (1..5) # =&gt; raises EnvParser::ValueNotAllowedError
273
273
  ```</p>
274
274
  </li>
275
275
  <li>
@@ -278,12 +278,12 @@ ENV.parse :TWELVE, as: :integer, from_set: (1..5) ## =&gt; raises EnvParser::Va
278
278
  <p>You can write your own, more complex validations by passing in a <strong><em>validated_by</em></strong> lambda or an equivalent block. The lambda/block should take one value and return true if the given value passes the custom validation.</p>
279
279
 
280
280
  <p>```ruby
281
- ## Via a “validated_by” lambda …
282
- ##
281
+ # Via a “validated_by” lambda …
282
+ #
283
283
  ENV.parse :MUST_BE_LOWERCASE, as: :string, validated_by: -&gt;(value) { value == value.downcase }</p>
284
284
 
285
- <h2 id="or-with-a-block">… or with a block!</h2>
286
- <p>##
285
+ <h1 id="or-with-a-block">… or with a block!</h1>
286
+ <p>#
287
287
  ENV.parse(:MUST_BE_LOWERCASE, as: :string) { |value| value == value.downcase }
288
288
  ENV.parse(:CONNECTION_RETRIES, as: :integer, &amp;:positive?)
289
289
  ```</p>
@@ -347,7 +347,7 @@ EnvParser.register :USERNAME, as: :string
347
347
  EnvParser.register :PASSWORD, as: :string
348
348
  EnvParser.register :MOCK_API, as: :boolean, within: MyClassOrModule }</p>
349
349
 
350
- <h2 id="is-equivalent-to--1">… is equivalent to …</h2>
350
+ <h1 id="is-equivalent-to--1">… is equivalent to …</h1>
351
351
 
352
352
  <p>EnvParser.register USERNAME: { as: :string },
353
353
  PASSWORD: { as: :string },
@@ -396,7 +396,7 @@ USERNAME:
396
396
  </div></div>
397
397
 
398
398
  <div id="footer">
399
- Generated on Sun Dec 25 21:11:48 2022 by
399
+ Generated on Fri Dec 30 17:49:58 2022 by
400
400
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
401
401
  0.9.28 (ruby-3.0.4).
402
402
  </div>
data/docs/index.html CHANGED
@@ -76,13 +76,13 @@
76
76
  <li>
77
77
  <p>Add one of the following to your application’s Gemfile:
78
78
  ```ruby
79
- ## For on-demand usage …
80
- ##
79
+ # For on-demand usage …
80
+ #
81
81
  gem ‘env_parser’</p>
82
82
 
83
- <h2 id="to-automatically-register-env">To automatically register ENV</h2>
84
- <p>## constants per “.env_parser.yml” …
85
- ##
83
+ <h1 id="to-automatically-register-env">To automatically register ENV</h1>
84
+ <p># constants per “.env_parser.yml” …
85
+ #
86
86
  gem ‘env_parser’, require: ‘env_parser/autoregister’
87
87
  ```</p>
88
88
  </li>
@@ -103,33 +103,33 @@ $ gem install env_parser
103
103
  <h2 id="syntax-cheat-sheet">Syntax Cheat Sheet</h2>
104
104
 
105
105
  <p>```ruby
106
- ## Returns an ENV value parsed “as” a specific type:
107
- ##
106
+ # Returns an ENV value parsed “as” a specific type:
107
+ #
108
108
  EnvParser.parse env_key_as_a_symbol
109
- as: … ## ➜ required
110
- if_unset: … ## ➜ optional; default value
111
- from_set: … ## ➜ optional; an Array or Range
112
- validated_by: -&gt;(value) { … } ## ➜ optional; may also be given as a block</p>
109
+ as: … # ➜ required
110
+ if_unset: … # ➜ optional; default value
111
+ from_set: … # ➜ optional; an Array or Range
112
+ validated_by: -&gt;(value) { … } # ➜ optional; may also be given as a block</p>
113
113
 
114
- <h2 id="parse-an-env-value-and-register-it-as-a-constant">Parse an ENV value and register it as a constant:</h2>
115
- <p>##
114
+ <h1 id="parse-an-env-value-and-register-it-as-a-constant">Parse an ENV value and register it as a constant:</h1>
115
+ <p>#
116
116
  EnvParser.register env_key_as_a_symbol
117
- as: … ## ➜ required
118
- within: … ## ➜ optional; Class or Module
119
- if_unset: … ## ➜ optional; default value
120
- from_set: … ## ➜ optional; an Array or Range
121
- validated_by: -&gt;(value) { … } ## ➜ optional; may also be given as a block</p>
122
-
123
- <h2 id="registers-all-env-variables-as-speced-in-envparseryml">Registers all ENV variables as spec’ed in “.env_parser.yml”:</h2>
124
- <p>##
125
- EnvParser.autoregister ## Note this is automatically called if your
126
- ## Gemfile included the “env_parser” gem with
127
- ## the “require: ‘env_parser/autoregister’” option.</p>
128
-
129
- <h2 id="lets-you-call-parse-and-register-on-env-itself">Lets you call “parse” and “register” on ENV itself:</h2>
130
- <p>##
131
- EnvParser.add_env_bindings ## ENV.parse will now be a proxy for EnvParser.parse
132
- ## and ENV.register will now be a proxy for EnvParser.register
117
+ as: … # ➜ required
118
+ within: … # ➜ optional; Class or Module
119
+ if_unset: … # ➜ optional; default value
120
+ from_set: … # ➜ optional; an Array or Range
121
+ validated_by: -&gt;(value) { … } # ➜ optional; may also be given as a block</p>
122
+
123
+ <h1 id="registers-all-env-variables-as-speced-in-envparseryml">Registers all ENV variables as spec’ed in “.env_parser.yml”:</h1>
124
+ <p>#
125
+ EnvParser.autoregister # Note this is automatically called if your
126
+ # Gemfile included the “env_parser” gem with
127
+ # the “require: ‘env_parser/autoregister’” option.</p>
128
+
129
+ <h1 id="lets-you-call-parse-and-register-on-env-itself">Lets you call “parse” and “register” on ENV itself:</h1>
130
+ <p>#
131
+ EnvParser.add_env_bindings # ENV.parse will now be a proxy for EnvParser.parse
132
+ # and ENV.register will now be a proxy for EnvParser.register
133
133
  ```</p>
134
134
 
135
135
  <h2 id="extended-how-to-use">Extended How-To-Use</h2>
@@ -143,9 +143,9 @@ EnvParser.add_env_bindings ## ENV.parse will now be a proxy for EnvParser.parse
143
143
  <p>At its core, EnvParser is a straight-forward parser for string values (since that’s all <code>ENV</code> ever gives you), allowing you to read a given string <strong><em>as</em></strong> a variety of types.</p>
144
144
 
145
145
  <p><code>ruby
146
- ## Returns ENV['TIMEOUT_MS'] as an Integer,
147
- ## or a sensible default (0) if ENV['TIMEOUT_MS'] is unset.
148
- ##
146
+ # Returns ENV['TIMEOUT_MS'] as an Integer,
147
+ # or a sensible default (0) if ENV['TIMEOUT_MS'] is unset.
148
+ #
149
149
  timeout_ms = EnvParser.parse ENV['TIMEOUT_MS'], as: :integer
150
150
  </code></p>
151
151
 
@@ -157,9 +157,9 @@ timeout_ms = EnvParser.parse ENV['TIMEOUT_MS'], as: :integer
157
157
  <p>EnvParser is all about ~~simplification~~ ~~less typing~~ <em>laziness</em>. If you pass in a symbol instead of a string, EnvParser will look to <code>ENV</code> and use the value from the corresponding (string) key.</p>
158
158
 
159
159
  <p><code>ruby
160
- ## YAY, LESS TYPING! 😃
161
- ## These two are the same:
162
- ##
160
+ # YAY, LESS TYPING! 😃
161
+ # These two are the same:
162
+ #
163
163
  more_typing = EnvParser.parse ENV['TIMEOUT_MS'], as: :integer
164
164
  less_typing = EnvParser.parse :TIMEOUT_MS, as: :integer
165
165
  </code></p>
@@ -170,20 +170,20 @@ less_typing = EnvParser.parse :TIMEOUT_MS, as: :integer
170
170
  <p>The <code>EnvParser.register</code> method lets you “promote” <code>ENV</code> variables into their own constants, already parsed into the correct type.</p>
171
171
 
172
172
  <p>```ruby
173
- ENV[‘API_KEY’] ## =&gt; ‘unbreakable p4$$w0rd’</p>
173
+ ENV[‘API_KEY’] # =&gt; ‘unbreakable p4$$w0rd’</p>
174
174
 
175
175
  <p>EnvParser.register :API_KEY, as: :string
176
- API_KEY ## =&gt; ‘unbreakable p4$$w0rd’
176
+ API_KEY # =&gt; ‘unbreakable p4$$w0rd’
177
177
  ```</p>
178
178
 
179
179
  <p>By default, <code>EnvParser.register</code> will create the requested constant within the Kernel module (making it available everywhere), but you can specify any class or module you like.</p>
180
180
 
181
181
  <p>```ruby
182
- ENV[‘BEST_VIDEO’] ## =&gt; ‘https://youtu.be/L_jWHffIx5E’</p>
182
+ ENV[‘BEST_VIDEO’] # =&gt; ‘https://youtu.be/L_jWHffIx5E’</p>
183
183
 
184
184
  <p>EnvParser.register :BEST_VIDEO, as: :string, within: URI
185
- URI::BEST_VIDEO ## =&gt; ‘https://youtu.be/L_jWHffIx5E’
186
- BEST_VIDEO ## =&gt; raises NameError
185
+ URI::BEST_VIDEO # =&gt; ‘https://youtu.be/L_jWHffIx5E’
186
+ BEST_VIDEO # =&gt; raises NameError
187
187
  ```</p>
188
188
 
189
189
  <p>You can also register multiple constants with a single call, which is a bit cleaner.</p>
@@ -193,7 +193,7 @@ EnvParser.register :USERNAME, as: :string
193
193
  EnvParser.register :PASSWORD, as: :string
194
194
  EnvParser.register :MOCK_API, as: :boolean, within: MyClassOrModule }</p>
195
195
 
196
- <h2 id="is-equivalent-to-">… is equivalent to …</h2>
196
+ <h1 id="is-equivalent-to-">… is equivalent to …</h1>
197
197
 
198
198
  <p>EnvParser.register USERNAME: { as: :string },
199
199
  PASSWORD: { as: :string },
@@ -206,31 +206,31 @@ EnvParser.register :MOCK_API, as: :boolean, within: MyClassOrModule }</p>
206
206
  <p>Calling <code>EnvParser.add_env_bindings</code> binds proxy <code>parse</code> and <code>register</code> methods onto <code>ENV</code>. With these bindings in place, you can call <code>parse</code> or <code>register</code> on <code>ENV</code> itself, which is more legible and feels more straight-forward.</p>
207
207
 
208
208
  <p>```ruby
209
- ENV[‘SHORT_PI’] ## =&gt; ‘3.1415926’
210
- ENV[‘BETTER_PI’] ## =&gt; ‘[“flaky crust”, “strawberry filling”]’</p>
209
+ ENV[‘SHORT_PI’] # =&gt; ‘3.1415926’
210
+ ENV[‘BETTER_PI’] # =&gt; ‘[“flaky crust”, “strawberry filling”]’</p>
211
211
 
212
- <h2 id="bind-the-proxy-methods">Bind the proxy methods.</h2>
213
- <p>##
212
+ <h1 id="bind-the-proxy-methods">Bind the proxy methods.</h1>
213
+ <p>#
214
214
  EnvParser.add_env_bindings</p>
215
215
 
216
- <p>ENV.parse :SHORT_PI, as: :float ## =&gt; 3.1415926
217
- ENV.register :BETTER_PI, as: :array ## Your constant is set!
216
+ <p>ENV.parse :SHORT_PI, as: :float # =&gt; 3.1415926
217
+ ENV.register :BETTER_PI, as: :array # Your constant is set!
218
218
  ```</p>
219
219
 
220
220
  <p>Note that the proxy <code>ENV.parse</code> method will (naturally) <em>always</em> interpret the value given as an <code>ENV</code> key (converting it to a string, if necessary), which is slightly different from the original <code>EnvParser.parse</code> method.</p>
221
221
 
222
222
  <p>```ruby
223
- ENV[‘SHORT_PI’] ## =&gt; ‘3.1415926’</p>
223
+ ENV[‘SHORT_PI’] # =&gt; ‘3.1415926’</p>
224
224
 
225
- <p>EnvParser.parse ‘SHORT_PI’, as: :float ## =&gt; ‘SHORT_PI’ as a float: 0.0
226
- EnvParser.parse :SHORT_PI , as: :float ## =&gt; ENV[‘SHORT_PI’] as a float: 3.1415926</p>
225
+ <p>EnvParser.parse ‘SHORT_PI’, as: :float # =&gt; ‘SHORT_PI’ as a float: 0.0
226
+ EnvParser.parse :SHORT_PI , as: :float # =&gt; ENV[‘SHORT_PI’] as a float: 3.1415926</p>
227
227
 
228
- <h2 id="bind-the-proxy-methods-1">Bind the proxy methods.</h2>
229
- <p>##
228
+ <h1 id="bind-the-proxy-methods-1">Bind the proxy methods.</h1>
229
+ <p>#
230
230
  EnvParser.add_env_bindings</p>
231
231
 
232
- <p>ENV.parse ‘SHORT_PI’, as: :float ## =&gt; ENV[‘SHORT_PI’] as a float: 3.1415926
233
- ENV.parse :SHORT_PI , as: :float ## =&gt; ENV[‘SHORT_PI’] as a float: 3.1415926
232
+ <p>ENV.parse ‘SHORT_PI’, as: :float # =&gt; ENV[‘SHORT_PI’] as a float: 3.1415926
233
+ ENV.parse :SHORT_PI , as: :float # =&gt; ENV[‘SHORT_PI’] as a float: 3.1415926
234
234
  ```</p>
235
235
 
236
236
  <p>Note also that the <code>ENV.parse</code> and <code>ENV.register</code> binding is done safely and without polluting the method space for other objects.</p>
@@ -248,14 +248,14 @@ ENV.parse :SHORT_PI , as: :float ## =&gt; ENV[‘SHORT_PI’] as a float: 3.141
248
248
  <p>If the <code>ENV</code> variable you want is unset (<code>nil</code>) or blank (<code>''</code>), the return value is a sensible default for the given <strong><em>as</em></strong> type: 0 or 0.0 for numbers, an empty string/array/hash, etc. Sometimes you want a non-trivial default, however. The <strong><em>if_unset</em></strong> option lets you specify a default that better meets your needs.</p>
249
249
 
250
250
  <p><code>ruby
251
- ENV.parse :MISSING_VAR, as: :integer ## =&gt; 0
252
- ENV.parse :MISSING_VAR, as: :integer, if_unset: 250 ## =&gt; 250
251
+ ENV.parse :MISSING_VAR, as: :integer # =&gt; 0
252
+ ENV.parse :MISSING_VAR, as: :integer, if_unset: 250 # =&gt; 250
253
253
  </code></p>
254
254
 
255
255
  <p>Note these default values are used as-is with no type conversion, so exercise caution.</p>
256
256
 
257
257
  <p><code>ruby
258
- ENV.parse :MISSING_VAR, as: :integer, if_unset: 'Careful!' ## =&gt; 'Careful!' (NOT AN INTEGER)
258
+ ENV.parse :MISSING_VAR, as: :integer, if_unset: 'Careful!' # =&gt; 'Careful!' (NOT AN INTEGER)
259
259
  </code></p>
260
260
  </li>
261
261
  <li>
@@ -267,9 +267,9 @@ ENV.parse :MISSING_VAR, as: :integer, if_unset: 'Careful!' ## =&gt; 'Careful!'
267
267
  ENV.parse :API_TO_USE, as: :symbol, from_set: %i[internal external]
268
268
  ENV.parse :NETWORK_PORT, as: :integer, from_set: (1..65535), if_unset: 80</p>
269
269
 
270
- <h2 id="and-if-the-value-is-not-in-the-allowed-set-">And if the value is not in the allowed set …</h2>
271
- <p>##
272
- ENV.parse :TWELVE, as: :integer, from_set: (1..5) ## =&gt; raises EnvParser::ValueNotAllowedError
270
+ <h1 id="and-if-the-value-is-not-in-the-allowed-set-">And if the value is not in the allowed set …</h1>
271
+ <p>#
272
+ ENV.parse :TWELVE, as: :integer, from_set: (1..5) # =&gt; raises EnvParser::ValueNotAllowedError
273
273
  ```</p>
274
274
  </li>
275
275
  <li>
@@ -278,12 +278,12 @@ ENV.parse :TWELVE, as: :integer, from_set: (1..5) ## =&gt; raises EnvParser::Va
278
278
  <p>You can write your own, more complex validations by passing in a <strong><em>validated_by</em></strong> lambda or an equivalent block. The lambda/block should take one value and return true if the given value passes the custom validation.</p>
279
279
 
280
280
  <p>```ruby
281
- ## Via a “validated_by” lambda …
282
- ##
281
+ # Via a “validated_by” lambda …
282
+ #
283
283
  ENV.parse :MUST_BE_LOWERCASE, as: :string, validated_by: -&gt;(value) { value == value.downcase }</p>
284
284
 
285
- <h2 id="or-with-a-block">… or with a block!</h2>
286
- <p>##
285
+ <h1 id="or-with-a-block">… or with a block!</h1>
286
+ <p>#
287
287
  ENV.parse(:MUST_BE_LOWERCASE, as: :string) { |value| value == value.downcase }
288
288
  ENV.parse(:CONNECTION_RETRIES, as: :integer, &amp;:positive?)
289
289
  ```</p>
@@ -347,7 +347,7 @@ EnvParser.register :USERNAME, as: :string
347
347
  EnvParser.register :PASSWORD, as: :string
348
348
  EnvParser.register :MOCK_API, as: :boolean, within: MyClassOrModule }</p>
349
349
 
350
- <h2 id="is-equivalent-to--1">… is equivalent to …</h2>
350
+ <h1 id="is-equivalent-to--1">… is equivalent to …</h1>
351
351
 
352
352
  <p>EnvParser.register USERNAME: { as: :string },
353
353
  PASSWORD: { as: :string },
@@ -396,7 +396,7 @@ USERNAME:
396
396
  </div></div>
397
397
 
398
398
  <div id="footer">
399
- Generated on Sun Dec 25 21:11:48 2022 by
399
+ Generated on Fri Dec 30 17:49:58 2022 by
400
400
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
401
401
  0.9.28 (ruby-3.0.4).
402
402
  </div>
@@ -100,7 +100,7 @@
100
100
  </div>
101
101
 
102
102
  <div id="footer">
103
- Generated on Sun Dec 25 21:11:48 2022 by
103
+ Generated on Fri Dec 30 17:49:58 2022 by
104
104
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
105
105
  0.9.28 (ruby-3.0.4).
106
106
  </div>
data/env_parser.gemspec CHANGED
@@ -21,11 +21,10 @@ Gem::Specification.new do |spec|
21
21
  spec.metadata['rubygems_mfa_required'] = 'true'
22
22
 
23
23
  spec.add_dependency 'activesupport', ['>= 6.1.0', '< 7.1']
24
- spec.add_dependency 'chronic'
25
- spec.add_dependency 'chronic_duration'
24
+ spec.add_dependency 'chronic', '~> 0'
25
+ spec.add_dependency 'chronic_duration', '~> 0'
26
26
 
27
27
  spec.add_development_dependency 'bundler', '~> 2'
28
- spec.add_development_dependency 'rake'
29
28
  spec.add_development_dependency 'rspec', '~> 3'
30
29
  spec.add_development_dependency 'rspec_junit_formatter'
31
30
  spec.add_development_dependency 'rubocop'
@@ -1,3 +1,3 @@
1
1
  class EnvParser
2
- VERSION = '1.6.0'.freeze
2
+ VERSION = '1.6.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: env_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nestor Custodio
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-12-30 00:00:00.000000000 Z
11
+ date: 2023-01-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -34,28 +34,28 @@ dependencies:
34
34
  name: chronic
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - ">="
37
+ - - "~>"
38
38
  - !ruby/object:Gem::Version
39
39
  version: '0'
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
- - - ">="
44
+ - - "~>"
45
45
  - !ruby/object:Gem::Version
46
46
  version: '0'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: chronic_duration
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - ">="
51
+ - - "~>"
52
52
  - !ruby/object:Gem::Version
53
53
  version: '0'
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - ">="
58
+ - - "~>"
59
59
  - !ruby/object:Gem::Version
60
60
  version: '0'
61
61
  - !ruby/object:Gem::Dependency
@@ -72,20 +72,6 @@ dependencies:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
74
  version: '2'
75
- - !ruby/object:Gem::Dependency
76
- name: rake
77
- requirement: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - ">="
80
- - !ruby/object:Gem::Version
81
- version: '0'
82
- type: :development
83
- prerelease: false
84
- version_requirements: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- version: '0'
89
75
  - !ruby/object:Gem::Dependency
90
76
  name: rspec
91
77
  requirement: !ruby/object:Gem::Requirement