env_parser 1.0.0 → 1.1.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/.circleci/config.yml +6 -5
- data/Gemfile.lock +1 -1
- data/README.md +1 -2
- data/docs/EnvParser.html +2 -2
- data/docs/EnvParser/Error.html +1 -1
- data/docs/EnvParser/TypeAlreadyDefinedError.html +1 -1
- data/docs/EnvParser/UnknownTypeError.html +1 -1
- data/docs/EnvParser/ValueNotAllowedError.html +1 -1
- data/docs/EnvParser/ValueNotConvertibleError.html +1 -1
- data/docs/EnvParserTypes.html +5 -3
- data/docs/EnvParserTypes/BaseTypes.html +19 -1
- data/docs/EnvParserTypes/InternetTypes.html +159 -0
- data/docs/_index.html +16 -1
- data/docs/class_list.html +1 -1
- data/docs/file.README.html +3 -5
- data/docs/index.html +3 -5
- data/docs/top-level-namespace.html +1 -1
- data/lib/env_parser/types/base_types.rb +18 -0
- data/lib/env_parser/types/internet.rb +99 -0
- data/lib/env_parser/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a9267e9a3c9e84f53fe028aa4eaecefd43559b67
|
|
4
|
+
data.tar.gz: efb184bc36af4c482ee88d721d5dc281b0e20ad3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1158be532e36463128f3c97d78186d7b2d4601315e53cb9b2d2ce21fb779f617ec44cb34a375af9c95b31ee426a8ac3a8d8491cf44442b3fab42883d3e67662e
|
|
7
|
+
data.tar.gz: b59a03c76c0988f5545e88338de325e8d1eded9b9a87a691e28768b6c94e3ef9da5bbc906787eb045dbb9fde01535086a65ae3f0988a0af405eaa3e64fbfe802
|
data/.circleci/config.yml
CHANGED
|
@@ -48,11 +48,12 @@ jobs:
|
|
|
48
48
|
mkdir /tmp/test-results
|
|
49
49
|
TEST_FILES="$(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)"
|
|
50
50
|
|
|
51
|
-
bundle exec rspec --format progress
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
51
|
+
bundle exec rspec --format progress \
|
|
52
|
+
--format RspecJunitFormatter \
|
|
53
|
+
--out /tmp/test-results/rspec.xml \
|
|
54
|
+
--format progress \
|
|
55
|
+
-- \
|
|
56
|
+
$TEST_FILES
|
|
56
57
|
|
|
57
58
|
# collect reports
|
|
58
59
|
- store_test_results:
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
|
@@ -209,8 +209,7 @@ b = EnvParser.parse :B, as: :my_special_type_of_number
|
|
|
209
209
|
|
|
210
210
|
Additional features/options coming in the future:
|
|
211
211
|
|
|
212
|
-
-
|
|
213
|
-
- ... ?
|
|
212
|
+
- Continue to round out the "as" type selection as ideas come to mind, suggestions are made, and pull requests are submitted.
|
|
214
213
|
|
|
215
214
|
|
|
216
215
|
## Contribution / Development
|
data/docs/EnvParser.html
CHANGED
|
@@ -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'>1.
|
|
133
|
+
<dd><pre class="code"><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>1.1.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
|
|
|
@@ -1075,7 +1075,7 @@ each value needing validation must give its own “validated_by” Proc.</p>
|
|
|
1075
1075
|
</div>
|
|
1076
1076
|
|
|
1077
1077
|
<div id="footer">
|
|
1078
|
-
Generated on Mon Dec 25
|
|
1078
|
+
Generated on Mon Dec 25 23:01:10 2017 by
|
|
1079
1079
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
1080
1080
|
0.9.11 (ruby-2.4.2).
|
|
1081
1081
|
</div>
|
data/docs/EnvParser/Error.html
CHANGED
|
@@ -129,7 +129,7 @@
|
|
|
129
129
|
</div>
|
|
130
130
|
|
|
131
131
|
<div id="footer">
|
|
132
|
-
Generated on Mon Dec 25
|
|
132
|
+
Generated on Mon Dec 25 23:01:10 2017 by
|
|
133
133
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
134
134
|
0.9.11 (ruby-2.4.2).
|
|
135
135
|
</div>
|
|
@@ -133,7 +133,7 @@
|
|
|
133
133
|
</div>
|
|
134
134
|
|
|
135
135
|
<div id="footer">
|
|
136
|
-
Generated on Mon Dec 25
|
|
136
|
+
Generated on Mon Dec 25 23:01:10 2017 by
|
|
137
137
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
138
138
|
0.9.11 (ruby-2.4.2).
|
|
139
139
|
</div>
|
|
@@ -133,7 +133,7 @@
|
|
|
133
133
|
</div>
|
|
134
134
|
|
|
135
135
|
<div id="footer">
|
|
136
|
-
Generated on Mon Dec 25
|
|
136
|
+
Generated on Mon Dec 25 23:01:10 2017 by
|
|
137
137
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
138
138
|
0.9.11 (ruby-2.4.2).
|
|
139
139
|
</div>
|
|
@@ -135,7 +135,7 @@ by failing the “validated_by” Proc or yield-block check.</p>
|
|
|
135
135
|
</div>
|
|
136
136
|
|
|
137
137
|
<div id="footer">
|
|
138
|
-
Generated on Mon Dec 25
|
|
138
|
+
Generated on Mon Dec 25 23:01:10 2017 by
|
|
139
139
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
140
140
|
0.9.11 (ruby-2.4.2).
|
|
141
141
|
</div>
|
|
@@ -134,7 +134,7 @@ requested type.</p>
|
|
|
134
134
|
</div>
|
|
135
135
|
|
|
136
136
|
<div id="footer">
|
|
137
|
-
Generated on Mon Dec 25
|
|
137
|
+
Generated on Mon Dec 25 23:01:10 2017 by
|
|
138
138
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
139
139
|
0.9.11 (ruby-2.4.2).
|
|
140
140
|
</div>
|
data/docs/EnvParserTypes.html
CHANGED
|
@@ -78,7 +78,9 @@
|
|
|
78
78
|
|
|
79
79
|
<dl>
|
|
80
80
|
<dt>Defined in:</dt>
|
|
81
|
-
<dd>lib/env_parser/types/
|
|
81
|
+
<dd>lib/env_parser/types/internet.rb<span class="defines">,<br />
|
|
82
|
+
lib/env_parser/types/base_types.rb</span>
|
|
83
|
+
</dd>
|
|
82
84
|
</dl>
|
|
83
85
|
|
|
84
86
|
</div>
|
|
@@ -99,7 +101,7 @@ for documentation's sake.</p>
|
|
|
99
101
|
<p class="children">
|
|
100
102
|
|
|
101
103
|
|
|
102
|
-
<strong class="modules">Modules:</strong> <span class='object_link'><a href="EnvParserTypes/BaseTypes.html" title="EnvParserTypes::BaseTypes (module)">BaseTypes</a></span>
|
|
104
|
+
<strong class="modules">Modules:</strong> <span class='object_link'><a href="EnvParserTypes/BaseTypes.html" title="EnvParserTypes::BaseTypes (module)">BaseTypes</a></span>, <span class='object_link'><a href="EnvParserTypes/InternetTypes.html" title="EnvParserTypes::InternetTypes (module)">InternetTypes</a></span>
|
|
103
105
|
|
|
104
106
|
|
|
105
107
|
|
|
@@ -117,7 +119,7 @@ for documentation's sake.</p>
|
|
|
117
119
|
</div>
|
|
118
120
|
|
|
119
121
|
<div id="footer">
|
|
120
|
-
Generated on Mon Dec 25
|
|
122
|
+
Generated on Mon Dec 25 23:01:09 2017 by
|
|
121
123
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
122
124
|
0.9.11 (ruby-2.4.2).
|
|
123
125
|
</div>
|
|
@@ -92,40 +92,58 @@
|
|
|
92
92
|
<tr>
|
|
93
93
|
<th><code>:as</code> value</th>
|
|
94
94
|
<th>type returned</th>
|
|
95
|
+
<th>default</th>
|
|
96
|
+
<th>notes</th>
|
|
95
97
|
</tr>
|
|
96
98
|
</tbody>
|
|
97
99
|
<tbody>
|
|
98
100
|
<tr>
|
|
99
101
|
<td>:string</td>
|
|
100
102
|
<td>String</td>
|
|
103
|
+
<td><code>''</code></td>
|
|
104
|
+
<td></td>
|
|
101
105
|
</tr>
|
|
102
106
|
<tr>
|
|
103
107
|
<td>:symbol</td>
|
|
104
108
|
<td>Symbol</td>
|
|
109
|
+
<td><code>:''</code></td>
|
|
110
|
+
<td></td>
|
|
105
111
|
</tr>
|
|
106
112
|
<tr>
|
|
107
113
|
<td>:boolean</td>
|
|
108
114
|
<td>TrueValue / FalseValue</td>
|
|
115
|
+
<td><code>false</code></td>
|
|
116
|
+
<td></td>
|
|
109
117
|
</tr>
|
|
110
118
|
<tr>
|
|
111
119
|
<td>:int / :integer</td>
|
|
112
120
|
<td>Integer</td>
|
|
121
|
+
<td><code>0</code></td>
|
|
122
|
+
<td></td>
|
|
113
123
|
</tr>
|
|
114
124
|
<tr>
|
|
115
125
|
<td>:float / :decimal / :number</td>
|
|
116
126
|
<td>Float</td>
|
|
127
|
+
<td><code>0.0</code></td>
|
|
128
|
+
<td></td>
|
|
117
129
|
</tr>
|
|
118
130
|
<tr>
|
|
119
131
|
<td>:json</td>
|
|
120
132
|
<td>< depends on JSON given ></td>
|
|
133
|
+
<td><code>nil</code></td>
|
|
134
|
+
<td></td>
|
|
121
135
|
</tr>
|
|
122
136
|
<tr>
|
|
123
137
|
<td>:array</td>
|
|
124
138
|
<td>Array</td>
|
|
139
|
+
<td><code>[]</code></td>
|
|
140
|
+
<td></td>
|
|
125
141
|
</tr>
|
|
126
142
|
<tr>
|
|
127
143
|
<td>:hash</td>
|
|
128
144
|
<td>Hash</td>
|
|
145
|
+
<td><code>{}</code></td>
|
|
146
|
+
<td></td>
|
|
129
147
|
</tr>
|
|
130
148
|
</tbody>
|
|
131
149
|
</table>
|
|
@@ -150,7 +168,7 @@
|
|
|
150
168
|
</div>
|
|
151
169
|
|
|
152
170
|
<div id="footer">
|
|
153
|
-
Generated on Mon Dec 25
|
|
171
|
+
Generated on Mon Dec 25 23:01:09 2017 by
|
|
154
172
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
155
173
|
0.9.11 (ruby-2.4.2).
|
|
156
174
|
</div>
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>
|
|
7
|
+
Module: EnvParserTypes::InternetTypes
|
|
8
|
+
|
|
9
|
+
— Documentation by YARD 0.9.11
|
|
10
|
+
|
|
11
|
+
</title>
|
|
12
|
+
|
|
13
|
+
<link rel="stylesheet" href="../css/style.css" type="text/css" charset="utf-8" />
|
|
14
|
+
|
|
15
|
+
<link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8" />
|
|
16
|
+
|
|
17
|
+
<script type="text/javascript" charset="utf-8">
|
|
18
|
+
pathId = "EnvParserTypes::InternetTypes";
|
|
19
|
+
relpath = '../';
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
|
|
24
|
+
|
|
25
|
+
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
</head>
|
|
29
|
+
<body>
|
|
30
|
+
<div class="nav_wrap">
|
|
31
|
+
<iframe id="nav" src="../class_list.html?1"></iframe>
|
|
32
|
+
<div id="resizer"></div>
|
|
33
|
+
</div>
|
|
34
|
+
|
|
35
|
+
<div id="main" tabindex="-1">
|
|
36
|
+
<div id="header">
|
|
37
|
+
<div id="menu">
|
|
38
|
+
|
|
39
|
+
<a href="../_index.html">Index (I)</a> »
|
|
40
|
+
<span class='title'><span class='object_link'><a href="../EnvParserTypes.html" title="EnvParserTypes (module)">EnvParserTypes</a></span></span>
|
|
41
|
+
»
|
|
42
|
+
<span class="title">InternetTypes</span>
|
|
43
|
+
|
|
44
|
+
</div>
|
|
45
|
+
|
|
46
|
+
<div id="search">
|
|
47
|
+
|
|
48
|
+
<a class="full_list_link" id="class_list_link"
|
|
49
|
+
href="../class_list.html">
|
|
50
|
+
|
|
51
|
+
<svg width="24" height="24">
|
|
52
|
+
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
|
|
53
|
+
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
|
|
54
|
+
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
|
|
55
|
+
</svg>
|
|
56
|
+
</a>
|
|
57
|
+
|
|
58
|
+
</div>
|
|
59
|
+
<div class="clear"></div>
|
|
60
|
+
</div>
|
|
61
|
+
|
|
62
|
+
<div id="content"><h1>Module: EnvParserTypes::InternetTypes
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
</h1>
|
|
67
|
+
<div class="box_info">
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
<dl>
|
|
80
|
+
<dt>Defined in:</dt>
|
|
81
|
+
<dd>lib/env_parser/types/internet.rb</dd>
|
|
82
|
+
</dl>
|
|
83
|
+
|
|
84
|
+
</div>
|
|
85
|
+
|
|
86
|
+
<h2>Overview</h2><div class="docstring">
|
|
87
|
+
<div class="discussion">
|
|
88
|
+
|
|
89
|
+
<p>Defines types for internet-related values, adding the following:</p>
|
|
90
|
+
<table>
|
|
91
|
+
<tbody>
|
|
92
|
+
<tr>
|
|
93
|
+
<th><code>:as</code> value</th>
|
|
94
|
+
<th>type returned</th>
|
|
95
|
+
<th>default</th>
|
|
96
|
+
<th>notes</th>
|
|
97
|
+
</tr>
|
|
98
|
+
</tbody>
|
|
99
|
+
<tbody>
|
|
100
|
+
<tr>
|
|
101
|
+
<td>:ipv4_address</td>
|
|
102
|
+
<td>String</td>
|
|
103
|
+
<td><code>nil</code></td>
|
|
104
|
+
<td>
|
|
105
|
+
An IPv4 address in 4-octet dot-decimal notation,
|
|
106
|
+
<br />
|
|
107
|
+
with no CIDR or subnet suffix (e.g. <code>'192.168.0.1'</code>).
|
|
108
|
+
</td>
|
|
109
|
+
</tr>
|
|
110
|
+
<tr>
|
|
111
|
+
<td>:ipv6_address</td>
|
|
112
|
+
<td>String</td>
|
|
113
|
+
<td><code>nil</code></td>
|
|
114
|
+
<td>An IPv6 address, in RFC5952 format.</td>
|
|
115
|
+
</tr>
|
|
116
|
+
<tr>
|
|
117
|
+
<td>:network_port / :port</td>
|
|
118
|
+
<td>Integer</td>
|
|
119
|
+
<td><code>nil</code></td>
|
|
120
|
+
<td></td>
|
|
121
|
+
</tr>
|
|
122
|
+
<tr>
|
|
123
|
+
<td>:email_address</td>
|
|
124
|
+
<td>String</td>
|
|
125
|
+
<td><code>nil</code></td>
|
|
126
|
+
<td>
|
|
127
|
+
A "simple" email address, containing only a username and a domain.
|
|
128
|
+
<br />
|
|
129
|
+
Note this does not guarantee RFC5322-conformity.
|
|
130
|
+
</td>
|
|
131
|
+
</tr>
|
|
132
|
+
</tbody>
|
|
133
|
+
</table>
|
|
134
|
+
|
|
135
|
+
</div>
|
|
136
|
+
</div>
|
|
137
|
+
<div class="tags">
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
</div>
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
</div>
|
|
150
|
+
|
|
151
|
+
<div id="footer">
|
|
152
|
+
Generated on Mon Dec 25 23:01:09 2017 by
|
|
153
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
154
|
+
0.9.11 (ruby-2.4.2).
|
|
155
|
+
</div>
|
|
156
|
+
|
|
157
|
+
</div>
|
|
158
|
+
</body>
|
|
159
|
+
</html>
|
data/docs/_index.html
CHANGED
|
@@ -118,6 +118,21 @@
|
|
|
118
118
|
</ul>
|
|
119
119
|
|
|
120
120
|
|
|
121
|
+
<ul id="alpha_I" class="alpha">
|
|
122
|
+
<li class="letter">I</li>
|
|
123
|
+
<ul>
|
|
124
|
+
|
|
125
|
+
<li>
|
|
126
|
+
<span class='object_link'><a href="EnvParserTypes/InternetTypes.html" title="EnvParserTypes::InternetTypes (module)">InternetTypes</a></span>
|
|
127
|
+
|
|
128
|
+
<small>(EnvParserTypes)</small>
|
|
129
|
+
|
|
130
|
+
</li>
|
|
131
|
+
|
|
132
|
+
</ul>
|
|
133
|
+
</ul>
|
|
134
|
+
|
|
135
|
+
|
|
121
136
|
<ul id="alpha_T" class="alpha">
|
|
122
137
|
<li class="letter">T</li>
|
|
123
138
|
<ul>
|
|
@@ -178,7 +193,7 @@
|
|
|
178
193
|
</div>
|
|
179
194
|
|
|
180
195
|
<div id="footer">
|
|
181
|
-
Generated on Mon Dec 25
|
|
196
|
+
Generated on Mon Dec 25 23:01:09 2017 by
|
|
182
197
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
183
198
|
0.9.11 (ruby-2.4.2).
|
|
184
199
|
</div>
|
data/docs/class_list.html
CHANGED
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
|
|
44
44
|
<ul id="full_list" class="class">
|
|
45
45
|
<li id="object_" class="odd"><div class="item" style="padding-left:30px"><span class='object_link'><a href="top-level-namespace.html" title="Top Level Namespace (root)">Top Level Namespace</a></span></div></li>
|
|
46
|
-
<li id='object_EnvParser' class='even'><div class='item' style='padding-left:30px'><a class='toggle'></a> <span class='object_link'><a href="EnvParser.html" title="EnvParser (class)">EnvParser</a></span> < Object<small class='search_info'>Top Level Namespace</small></div><ul><li id='object_EnvParser::Error' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="EnvParser/Error.html" title="EnvParser::Error (class)">Error</a></span> < StandardError<small class='search_info'>EnvParser</small></div></li><li id='object_EnvParser::TypeAlreadyDefinedError' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="EnvParser/TypeAlreadyDefinedError.html" title="EnvParser::TypeAlreadyDefinedError (class)">TypeAlreadyDefinedError</a></span> < Error<small class='search_info'>EnvParser</small></div></li><li id='object_EnvParser::UnknownTypeError' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="EnvParser/UnknownTypeError.html" title="EnvParser::UnknownTypeError (class)">UnknownTypeError</a></span> < Error<small class='search_info'>EnvParser</small></div></li><li id='object_EnvParser::ValueNotAllowedError' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="EnvParser/ValueNotAllowedError.html" title="EnvParser::ValueNotAllowedError (class)">ValueNotAllowedError</a></span> < Error<small class='search_info'>EnvParser</small></div></li><li id='object_EnvParser::ValueNotConvertibleError' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="EnvParser/ValueNotConvertibleError.html" title="EnvParser::ValueNotConvertibleError (class)">ValueNotConvertibleError</a></span> < Error<small class='search_info'>EnvParser</small></div></li></ul></li><li id='object_EnvParserTypes' class='even'><div class='item' style='padding-left:30px'><a class='toggle'></a> <span class='object_link'><a href="EnvParserTypes.html" title="EnvParserTypes (module)">EnvParserTypes</a></span><small class='search_info'>Top Level Namespace</small></div><ul><li id='object_EnvParserTypes::BaseTypes' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="EnvParserTypes/BaseTypes.html" title="EnvParserTypes::BaseTypes (module)">BaseTypes</a></span><small class='search_info'>EnvParserTypes</small></div></li></ul></li>
|
|
46
|
+
<li id='object_EnvParser' class='even'><div class='item' style='padding-left:30px'><a class='toggle'></a> <span class='object_link'><a href="EnvParser.html" title="EnvParser (class)">EnvParser</a></span> < Object<small class='search_info'>Top Level Namespace</small></div><ul><li id='object_EnvParser::Error' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="EnvParser/Error.html" title="EnvParser::Error (class)">Error</a></span> < StandardError<small class='search_info'>EnvParser</small></div></li><li id='object_EnvParser::TypeAlreadyDefinedError' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="EnvParser/TypeAlreadyDefinedError.html" title="EnvParser::TypeAlreadyDefinedError (class)">TypeAlreadyDefinedError</a></span> < Error<small class='search_info'>EnvParser</small></div></li><li id='object_EnvParser::UnknownTypeError' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="EnvParser/UnknownTypeError.html" title="EnvParser::UnknownTypeError (class)">UnknownTypeError</a></span> < Error<small class='search_info'>EnvParser</small></div></li><li id='object_EnvParser::ValueNotAllowedError' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="EnvParser/ValueNotAllowedError.html" title="EnvParser::ValueNotAllowedError (class)">ValueNotAllowedError</a></span> < Error<small class='search_info'>EnvParser</small></div></li><li id='object_EnvParser::ValueNotConvertibleError' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="EnvParser/ValueNotConvertibleError.html" title="EnvParser::ValueNotConvertibleError (class)">ValueNotConvertibleError</a></span> < Error<small class='search_info'>EnvParser</small></div></li></ul></li><li id='object_EnvParserTypes' class='even'><div class='item' style='padding-left:30px'><a class='toggle'></a> <span class='object_link'><a href="EnvParserTypes.html" title="EnvParserTypes (module)">EnvParserTypes</a></span><small class='search_info'>Top Level Namespace</small></div><ul><li id='object_EnvParserTypes::BaseTypes' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="EnvParserTypes/BaseTypes.html" title="EnvParserTypes::BaseTypes (module)">BaseTypes</a></span><small class='search_info'>EnvParserTypes</small></div></li><li id='object_EnvParserTypes::InternetTypes' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="EnvParserTypes/InternetTypes.html" title="EnvParserTypes::InternetTypes (module)">InternetTypes</a></span><small class='search_info'>EnvParserTypes</small></div></li></ul></li>
|
|
47
47
|
|
|
48
48
|
</ul>
|
|
49
49
|
</div>
|
data/docs/file.README.html
CHANGED
|
@@ -270,10 +270,8 @@ the repo docs for the full EnvParser documentation.</a></p>
|
|
|
270
270
|
|
|
271
271
|
<p>Additional features/options coming in the future:</p>
|
|
272
272
|
<ul><li>
|
|
273
|
-
<p>
|
|
274
|
-
|
|
275
|
-
</li><li>
|
|
276
|
-
<p>… ?</p>
|
|
273
|
+
<p>Continue to round out the “as” type selection as ideas come to mind,
|
|
274
|
+
suggestions are made, and pull requests are submitted.</p>
|
|
277
275
|
</li></ul>
|
|
278
276
|
|
|
279
277
|
<h2 id="label-Contribution+-2F+Development">Contribution / Development</h2>
|
|
@@ -298,7 +296,7 @@ href="https://opensource.org/licenses/MIT">MIT License</a>.</p>
|
|
|
298
296
|
</div></div>
|
|
299
297
|
|
|
300
298
|
<div id="footer">
|
|
301
|
-
Generated on Mon Dec 25
|
|
299
|
+
Generated on Mon Dec 25 23:01:09 2017 by
|
|
302
300
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
303
301
|
0.9.11 (ruby-2.4.2).
|
|
304
302
|
</div>
|
data/docs/index.html
CHANGED
|
@@ -270,10 +270,8 @@ the repo docs for the full EnvParser documentation.</a></p>
|
|
|
270
270
|
|
|
271
271
|
<p>Additional features/options coming in the future:</p>
|
|
272
272
|
<ul><li>
|
|
273
|
-
<p>
|
|
274
|
-
|
|
275
|
-
</li><li>
|
|
276
|
-
<p>… ?</p>
|
|
273
|
+
<p>Continue to round out the “as” type selection as ideas come to mind,
|
|
274
|
+
suggestions are made, and pull requests are submitted.</p>
|
|
277
275
|
</li></ul>
|
|
278
276
|
|
|
279
277
|
<h2 id="label-Contribution+-2F+Development">Contribution / Development</h2>
|
|
@@ -298,7 +296,7 @@ href="https://opensource.org/licenses/MIT">MIT License</a>.</p>
|
|
|
298
296
|
</div></div>
|
|
299
297
|
|
|
300
298
|
<div id="footer">
|
|
301
|
-
Generated on Mon Dec 25
|
|
299
|
+
Generated on Mon Dec 25 23:01:09 2017 by
|
|
302
300
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
303
301
|
0.9.11 (ruby-2.4.2).
|
|
304
302
|
</div>
|
|
@@ -180,7 +180,7 @@
|
|
|
180
180
|
</div>
|
|
181
181
|
|
|
182
182
|
<div id="footer">
|
|
183
|
-
Generated on Mon Dec 25
|
|
183
|
+
Generated on Mon Dec 25 23:01:09 2017 by
|
|
184
184
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
185
185
|
0.9.11 (ruby-2.4.2).
|
|
186
186
|
</div>
|
|
@@ -11,40 +11,58 @@ module EnvParserTypes
|
|
|
11
11
|
## <tr>
|
|
12
12
|
## <th><code>:as</code> value</th>
|
|
13
13
|
## <th>type returned</th>
|
|
14
|
+
## <th>default</th>
|
|
15
|
+
## <th>notes</th>
|
|
14
16
|
## </tr>
|
|
15
17
|
## </tbody>
|
|
16
18
|
## <tbody>
|
|
17
19
|
## <tr>
|
|
18
20
|
## <td>:string</td>
|
|
19
21
|
## <td>String</td>
|
|
22
|
+
## <td><code>''</code></td>
|
|
23
|
+
## <td></td>
|
|
20
24
|
## </tr>
|
|
21
25
|
## <tr>
|
|
22
26
|
## <td>:symbol</td>
|
|
23
27
|
## <td>Symbol</td>
|
|
28
|
+
## <td><code>:''</code></td>
|
|
29
|
+
## <td></td>
|
|
24
30
|
## </tr>
|
|
25
31
|
## <tr>
|
|
26
32
|
## <td>:boolean</td>
|
|
27
33
|
## <td>TrueValue / FalseValue</td>
|
|
34
|
+
## <td><code>false</code></td>
|
|
35
|
+
## <td></td>
|
|
28
36
|
## </tr>
|
|
29
37
|
## <tr>
|
|
30
38
|
## <td>:int / :integer</td>
|
|
31
39
|
## <td>Integer</td>
|
|
40
|
+
## <td><code>0</code></td>
|
|
41
|
+
## <td></td>
|
|
32
42
|
## </tr>
|
|
33
43
|
## <tr>
|
|
34
44
|
## <td>:float / :decimal / :number</td>
|
|
35
45
|
## <td>Float</td>
|
|
46
|
+
## <td><code>0.0</code></td>
|
|
47
|
+
## <td></td>
|
|
36
48
|
## </tr>
|
|
37
49
|
## <tr>
|
|
38
50
|
## <td>:json</td>
|
|
39
51
|
## <td>< depends on JSON given ></td>
|
|
52
|
+
## <td><code>nil</code></td>
|
|
53
|
+
## <td></td>
|
|
40
54
|
## </tr>
|
|
41
55
|
## <tr>
|
|
42
56
|
## <td>:array</td>
|
|
43
57
|
## <td>Array</td>
|
|
58
|
+
## <td><code>[]</code></td>
|
|
59
|
+
## <td></td>
|
|
44
60
|
## </tr>
|
|
45
61
|
## <tr>
|
|
46
62
|
## <td>:hash</td>
|
|
47
63
|
## <td>Hash</td>
|
|
64
|
+
## <td><code>{}</code></td>
|
|
65
|
+
## <td></td>
|
|
48
66
|
## </tr>
|
|
49
67
|
## </tbody>
|
|
50
68
|
## </table>
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
require 'env_parser'
|
|
2
|
+
|
|
3
|
+
## The parent module for all EnvParser type definition modules.
|
|
4
|
+
## Exists only for documentation's sake.
|
|
5
|
+
##
|
|
6
|
+
module EnvParserTypes
|
|
7
|
+
## Defines types for internet-related values, adding the following:
|
|
8
|
+
##
|
|
9
|
+
## <table>
|
|
10
|
+
## <tbody>
|
|
11
|
+
## <tr>
|
|
12
|
+
## <th><code>:as</code> value</th>
|
|
13
|
+
## <th>type returned</th>
|
|
14
|
+
## <th>default</th>
|
|
15
|
+
## <th>notes</th>
|
|
16
|
+
## </tr>
|
|
17
|
+
## </tbody>
|
|
18
|
+
## <tbody>
|
|
19
|
+
## <tr>
|
|
20
|
+
## <td>:ipv4_address</td>
|
|
21
|
+
## <td>String</td>
|
|
22
|
+
## <td><code>nil</code></td>
|
|
23
|
+
## <td>
|
|
24
|
+
## An IPv4 address in 4-octet dot-decimal notation,
|
|
25
|
+
## <br />
|
|
26
|
+
## with no CIDR or subnet suffix (e.g. <code>'192.168.0.1'</code>).
|
|
27
|
+
## </td>
|
|
28
|
+
## </tr>
|
|
29
|
+
## <tr>
|
|
30
|
+
## <td>:ipv6_address</td>
|
|
31
|
+
## <td>String</td>
|
|
32
|
+
## <td><code>nil</code></td>
|
|
33
|
+
## <td>An IPv6 address, in RFC5952 format.</td>
|
|
34
|
+
## </tr>
|
|
35
|
+
## <tr>
|
|
36
|
+
## <td>:network_port / :port</td>
|
|
37
|
+
## <td>Integer</td>
|
|
38
|
+
## <td><code>nil</code></td>
|
|
39
|
+
## <td></td>
|
|
40
|
+
## </tr>
|
|
41
|
+
## <tr>
|
|
42
|
+
## <td>:email_address</td>
|
|
43
|
+
## <td>String</td>
|
|
44
|
+
## <td><code>nil</code></td>
|
|
45
|
+
## <td>
|
|
46
|
+
## A "simple" email address, containing only a username and a domain.
|
|
47
|
+
## <br />
|
|
48
|
+
## Note this does not guarantee RFC5322-conformity.
|
|
49
|
+
## </td>
|
|
50
|
+
## </tr>
|
|
51
|
+
## </tbody>
|
|
52
|
+
## </table>
|
|
53
|
+
##
|
|
54
|
+
module InternetTypes
|
|
55
|
+
EnvParser.define_type(:ipv4_address, if_unset: nil) do |value|
|
|
56
|
+
begin
|
|
57
|
+
require 'socket'
|
|
58
|
+
address = Addrinfo.getaddrinfo(value, nil, Socket::AF_INET, nil, Socket::IPPROTO_TCP).first
|
|
59
|
+
raise StandardError unless address.ipv4?
|
|
60
|
+
rescue StandardError
|
|
61
|
+
raise EnvParser::ValueNotConvertibleError, 'non-ip value'
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
address.ip_address
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
EnvParser.define_type(:ipv6_address, if_unset: nil) do |value|
|
|
68
|
+
begin
|
|
69
|
+
require 'socket'
|
|
70
|
+
address = Addrinfo.getaddrinfo(value, nil, Socket::AF_INET6, nil, Socket::IPPROTO_TCP).first
|
|
71
|
+
raise StandardError unless address.ipv6?
|
|
72
|
+
rescue StandardError
|
|
73
|
+
raise EnvParser::ValueNotConvertibleError, 'non-ip value'
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
address.ip_address
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
EnvParser.define_type(:network_port, aliases: :port, if_unset: nil) do |value|
|
|
80
|
+
begin
|
|
81
|
+
Integer(value)
|
|
82
|
+
rescue
|
|
83
|
+
raise(EnvParser::ValueNotConvertibleError, 'non-numeric value')
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
value = value.to_i
|
|
87
|
+
raise(EnvParser::ValueNotAllowedError, 'value out of range') unless (0..65535).cover?(value)
|
|
88
|
+
|
|
89
|
+
value
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
EnvParser.define_type(:email_address, if_unset: nil) do |value|
|
|
93
|
+
simple_email = %r[^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$]i
|
|
94
|
+
raise(EnvParser::ValueNotConvertibleError, 'not an email') unless value.match?(simple_email)
|
|
95
|
+
|
|
96
|
+
value
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|
data/lib/env_parser/version.rb
CHANGED
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.
|
|
4
|
+
version: 1.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Nestor Custodio
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2017-12-
|
|
11
|
+
date: 2017-12-27 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -111,6 +111,7 @@ files:
|
|
|
111
111
|
- docs/EnvParser/ValueNotConvertibleError.html
|
|
112
112
|
- docs/EnvParserTypes.html
|
|
113
113
|
- docs/EnvParserTypes/BaseTypes.html
|
|
114
|
+
- docs/EnvParserTypes/InternetTypes.html
|
|
114
115
|
- docs/_index.html
|
|
115
116
|
- docs/class_list.html
|
|
116
117
|
- docs/css/common.css
|
|
@@ -130,6 +131,7 @@ files:
|
|
|
130
131
|
- lib/env_parser/errors.rb
|
|
131
132
|
- lib/env_parser/types.rb
|
|
132
133
|
- lib/env_parser/types/base_types.rb
|
|
134
|
+
- lib/env_parser/types/internet.rb
|
|
133
135
|
- lib/env_parser/version.rb
|
|
134
136
|
homepage: https://github.com/nestor-custodio/env_parser
|
|
135
137
|
licenses:
|