phone_number_validator 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.rdoc +1 -1
- data/doc/PhoneNumberValidator/Validator.html +34 -8
- data/doc/PhoneNumberValidator.html +10 -4
- data/doc/PhoneNumberValidatorTest.html +10 -4
- data/doc/README_rdoc.html +1 -1
- data/doc/created.rid +5 -5
- data/doc/index.html +1 -1
- data/doc/js/navigation.js.gz +0 -0
- data/doc/js/search_index.js +1 -1
- data/doc/js/search_index.js.gz +0 -0
- data/doc/js/searcher.js.gz +0 -0
- data/doc/table_of_contents.html +8 -0
- data/lib/phone_number_validator/validator.rb +30 -2
- data/lib/phone_number_validator.rb +8 -2
- data/phone_number_validator.gemspec +1 -1
- data/test/test_phone_number_validator.rb +12 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a245dadacf3c7b6a0f70d0fb94e3f55c04ce1f0e1bb24a7efd14c9f311610367
|
4
|
+
data.tar.gz: 5b0b597c2ecc2c97ee4a0a9e623c8adfcfe811ce6b1f12b32fee74b6a5a93d63
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 26d36e027e39d44870136436d73928a2bb861abb89aff986da427ae64d279be71d41b5aaf44429ab25266c6e24477130cb8ffdc42746e21417cb7f08d9ace0b5
|
7
|
+
data.tar.gz: 8c061cced1b200fe335d4aac1cda1a0f71c0ed2efdf8d8a2581be5536c8b17dd49226c80634dcc7c44707d0f5d010cbc7c0f6af98e35df4bc0a6fb9495783bc0
|
data/README.rdoc
CHANGED
@@ -10,7 +10,7 @@ It uses a complex regular expression to validate any United States phone number.
|
|
10
10
|
|
11
11
|
This gem uses the following regular expression:
|
12
12
|
|
13
|
-
PHONE_NUMBER_REGEX = Regexp.new(/^(?:(?:[2-9]11)|(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:\x20+|#|x\.?|ext\.?|extension)\s*(\d+))?)$/, Regexp::IGNORECASE)
|
13
|
+
PHONE_NUMBER_REGEX = Regexp.new(/^(?:(?:[2-9]11)|(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:\x20+|#|x\.?|ext\.?|extension)\s*(\d+))?)$/, Regexp::IGNORECASE) # US Phone Numbers
|
14
14
|
|
15
15
|
== Installing
|
16
16
|
|
@@ -106,7 +106,19 @@
|
|
106
106
|
|
107
107
|
<dt id="PHONE_NUMBER_REGEX">PHONE_NUMBER_REGEX
|
108
108
|
|
109
|
-
<dd>
|
109
|
+
<dd><h2 id="label-Validates+US+Phone+Numbers">Validates US Phone Numbers<span><a href="#label-Validates+US+Phone+Numbers">¶</a> <a href="#top">↑</a></span></h2>
|
110
|
+
|
111
|
+
<p>Regular Expression tested using <a
|
112
|
+
href="https://regexr.com/">regexr.com</a></p>
|
113
|
+
|
114
|
+
<p><strong>Raw Regular Expression:</strong></p>
|
115
|
+
|
116
|
+
<pre class="ruby"><span class="ruby-node">/^(?:(?:[2-9]11)|(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:\x20+|#|x\.?|ext\.?|extension)\s*(\d+))?)$/i</span>
|
117
|
+
</pre>
|
118
|
+
|
119
|
+
<p><strong>RegEx Flags:</strong></p>
|
120
|
+
|
121
|
+
<pre>Regexp::IGNORECASE: (i)</pre>
|
110
122
|
|
111
123
|
|
112
124
|
</dl>
|
@@ -135,16 +147,18 @@
|
|
135
147
|
|
136
148
|
<div class="method-description">
|
137
149
|
|
138
|
-
|
150
|
+
<h2 id="method-c-new-label-Initialize+Phone+Number">Initialize Phone Number<span><a href="#method-c-new-label-Initialize+Phone+Number">¶</a> <a href="#top">↑</a></span></h2>
|
151
|
+
|
152
|
+
<p><strong>Method type: constructor</strong></p>
|
139
153
|
|
140
154
|
|
141
155
|
|
142
156
|
|
143
157
|
<div class="method-source-code" id="new-source">
|
144
|
-
<pre><span class="ruby-comment"># File lib/phone_number_validator/validator.rb, line
|
145
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">phone_number</span> = <span class="ruby-string">'+1 (949) 355-6244 ext. 198842'</span>)
|
146
|
-
|
147
|
-
<span class="ruby-keyword">end</span></pre>
|
158
|
+
<pre><span class="ruby-comment"># File lib/phone_number_validator/validator.rb, line 19</span>
|
159
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">phone_number</span> = <span class="ruby-string">'+1 (949) 355-6244 ext. 198842'</span>)
|
160
|
+
<span class="ruby-ivar">@phone_number</span> = <span class="ruby-identifier">phone_number</span>
|
161
|
+
<span class="ruby-keyword">end</span></pre>
|
148
162
|
</div>
|
149
163
|
|
150
164
|
</div>
|
@@ -176,13 +190,25 @@
|
|
176
190
|
|
177
191
|
<div class="method-description">
|
178
192
|
|
179
|
-
|
193
|
+
<h2 id="method-i-validate_phone_number-label-Validation+Method">Validation Method<span><a href="#method-i-validate_phone_number-label-Validation+Method">¶</a> <a href="#top">↑</a></span></h2>
|
194
|
+
|
195
|
+
<p>Checks to see if the phone number the user entered is valid by testing
|
196
|
+
regex the pattern with the phone number</p>
|
197
|
+
|
198
|
+
<p>Return Type:</p>
|
199
|
+
|
200
|
+
<pre class="ruby"><span class="ruby-identifier">boolean</span>
|
201
|
+
</pre>
|
202
|
+
|
203
|
+
<p>Parameters:</p>
|
204
|
+
|
205
|
+
<pre>@phone_number: (String instance)</pre>
|
180
206
|
|
181
207
|
|
182
208
|
|
183
209
|
|
184
210
|
<div class="method-source-code" id="validate_phone_number-source">
|
185
|
-
<pre><span class="ruby-comment"># File lib/phone_number_validator/validator.rb, line
|
211
|
+
<pre><span class="ruby-comment"># File lib/phone_number_validator/validator.rb, line 34</span>
|
186
212
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">validate_phone_number</span>
|
187
213
|
<span class="ruby-keyword">if</span> (<span class="ruby-constant">PHONE_NUMBER_REGEX</span>.<span class="ruby-identifier">match</span>(<span class="ruby-ivar">@phone_number</span>))
|
188
214
|
<span class="ruby-identifier">puts</span> <span class="ruby-string">"'%s' is a valid phone number."</span> <span class="ruby-operator">%</span> <span class="ruby-ivar">@phone_number</span>
|
@@ -85,6 +85,8 @@
|
|
85
85
|
|
86
86
|
<section class="description">
|
87
87
|
|
88
|
+
<h1 id="class-PhoneNumberValidator-label-Phone+Number+Validator+Parent+Class">Phone Number Validator Parent Class<span><a href="#class-PhoneNumberValidator-label-Phone+Number+Validator+Parent+Class">¶</a> <a href="#top">↑</a></span></h1>
|
89
|
+
|
88
90
|
</section>
|
89
91
|
|
90
92
|
|
@@ -123,19 +125,23 @@
|
|
123
125
|
|
124
126
|
<p>Example:</p>
|
125
127
|
|
126
|
-
<pre
|
127
|
-
|
128
|
+
<pre class="ruby"><span class="ruby-constant">PhoneNumberValidator</span>.<span class="ruby-identifier">validate_phone_number</span>(<span class="ruby-string">'+1 (949) 355-6244 ext. 198842'</span>)
|
129
|
+
</pre>
|
130
|
+
|
131
|
+
<p>Output:</p>
|
132
|
+
|
133
|
+
<pre>=> '+1 (949) 355-6244 ext. 198842' is a valid phone number.'
|
128
134
|
=> true</pre>
|
129
135
|
|
130
136
|
<p>Arguments:</p>
|
131
137
|
|
132
|
-
<pre>
|
138
|
+
<pre>phone_number: (String)</pre>
|
133
139
|
|
134
140
|
|
135
141
|
|
136
142
|
|
137
143
|
<div class="method-source-code" id="validate_phone_number-source">
|
138
|
-
<pre><span class="ruby-comment"># File lib/phone_number_validator.rb, line
|
144
|
+
<pre><span class="ruby-comment"># File lib/phone_number_validator.rb, line 18</span>
|
139
145
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">validate_phone_number</span>(<span class="ruby-identifier">phone_number</span>)
|
140
146
|
<span class="ruby-identifier">validator</span> = <span class="ruby-constant">Validator</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">phone_number</span>)
|
141
147
|
<span class="ruby-identifier">validator</span>.<span class="ruby-identifier">validate_phone_number</span>
|
@@ -87,6 +87,8 @@
|
|
87
87
|
|
88
88
|
<section class="description">
|
89
89
|
|
90
|
+
<h1 id="class-PhoneNumberValidatorTest-label-Phone+Number+Validator+Test+Class">Phone Number Validator Test Class<span><a href="#class-PhoneNumberValidatorTest-label-Phone+Number+Validator+Test+Class">¶</a> <a href="#top">↑</a></span></h1>
|
91
|
+
|
90
92
|
</section>
|
91
93
|
|
92
94
|
|
@@ -121,13 +123,15 @@
|
|
121
123
|
|
122
124
|
<div class="method-description">
|
123
125
|
|
124
|
-
|
126
|
+
<h2 id="method-i-test_invalid_phone_number-label-Negative+Test">Negative Test<span><a href="#method-i-test_invalid_phone_number-label-Negative+Test">¶</a> <a href="#top">↑</a></span></h2>
|
127
|
+
|
128
|
+
<p>Inputs an invalid phone number and expects the output to be <em>false</em></p>
|
125
129
|
|
126
130
|
|
127
131
|
|
128
132
|
|
129
133
|
<div class="method-source-code" id="test_invalid_phone_number-source">
|
130
|
-
<pre><span class="ruby-comment"># File test/test_phone_number_validator.rb, line
|
134
|
+
<pre><span class="ruby-comment"># File test/test_phone_number_validator.rb, line 21</span>
|
131
135
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">test_invalid_phone_number</span>
|
132
136
|
<span class="ruby-identifier">assert_equal</span> <span class="ruby-keyword">false</span>,
|
133
137
|
<span class="ruby-constant">PhoneNumberValidator</span>.<span class="ruby-identifier">validate_phone_number</span>(<span class="ruby-string">'94643823637337'</span>)
|
@@ -155,13 +159,15 @@
|
|
155
159
|
|
156
160
|
<div class="method-description">
|
157
161
|
|
158
|
-
|
162
|
+
<h2 id="method-i-test_valid_phone_number-label-Positive+Test">Positive Test<span><a href="#method-i-test_valid_phone_number-label-Positive+Test">¶</a> <a href="#top">↑</a></span></h2>
|
163
|
+
|
164
|
+
<p>Inputs a valid phone number and expects the output to be <em>true</em></p>
|
159
165
|
|
160
166
|
|
161
167
|
|
162
168
|
|
163
169
|
<div class="method-source-code" id="test_valid_phone_number-source">
|
164
|
-
<pre><span class="ruby-comment"># File test/test_phone_number_validator.rb, line
|
170
|
+
<pre><span class="ruby-comment"># File test/test_phone_number_validator.rb, line 12</span>
|
165
171
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">test_valid_phone_number</span>
|
166
172
|
<span class="ruby-identifier">assert_equal</span> <span class="ruby-keyword">true</span>,
|
167
173
|
<span class="ruby-constant">PhoneNumberValidator</span>.<span class="ruby-identifier">validate_phone_number</span>(<span class="ruby-string">'+1 (949) 355-6244 ext. 198842'</span>)
|
data/doc/README_rdoc.html
CHANGED
@@ -100,7 +100,7 @@ number.</p>
|
|
100
100
|
|
101
101
|
<p>This gem uses the following regular expression:</p>
|
102
102
|
|
103
|
-
<pre class="ruby"><span class="ruby-constant">PHONE_NUMBER_REGEX</span> = <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">/^(?:(?:[2-9]11)|(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:\x20+|#|x\.?|ext\.?|extension)\s*(\d+))?)$/</span>, <span class="ruby-constant">Regexp</span><span class="ruby-operator">::</span><span class="ruby-constant">IGNORECASE</span>)
|
103
|
+
<pre class="ruby"><span class="ruby-constant">PHONE_NUMBER_REGEX</span> = <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">/^(?:(?:[2-9]11)|(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:\x20+|#|x\.?|ext\.?|extension)\s*(\d+))?)$/</span>, <span class="ruby-constant">Regexp</span><span class="ruby-operator">::</span><span class="ruby-constant">IGNORECASE</span>) <span class="ruby-comment"># US Phone Numbers</span>
|
104
104
|
</pre>
|
105
105
|
|
106
106
|
<h2 id="label-Installing">Installing<span><a href="#label-Installing">¶</a> <a href="#top">↑</a></span></h2>
|
data/doc/created.rid
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
Sun, 04 Nov 2018 16:
|
2
|
-
README.rdoc Sun, 04 Nov 2018 16:
|
3
|
-
lib/phone_number_validator.rb Sun, 04 Nov 2018 16:
|
4
|
-
lib/phone_number_validator/validator.rb Sun, 04 Nov 2018 16:
|
5
|
-
test/test_phone_number_validator.rb Sun, 04 Nov 2018
|
1
|
+
Sun, 04 Nov 2018 16:47:20 -0800
|
2
|
+
README.rdoc Sun, 04 Nov 2018 16:18:04 -0800
|
3
|
+
lib/phone_number_validator.rb Sun, 04 Nov 2018 16:46:30 -0800
|
4
|
+
lib/phone_number_validator/validator.rb Sun, 04 Nov 2018 16:46:13 -0800
|
5
|
+
test/test_phone_number_validator.rb Sun, 04 Nov 2018 16:46:16 -0800
|
6
6
|
bin/phone_number_validator Sun, 04 Nov 2018 14:35:10 -0800
|
data/doc/index.html
CHANGED
@@ -95,7 +95,7 @@ number.</p>
|
|
95
95
|
|
96
96
|
<p>This gem uses the following regular expression:</p>
|
97
97
|
|
98
|
-
<pre class="ruby"><span class="ruby-constant">PHONE_NUMBER_REGEX</span> = <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">/^(?:(?:[2-9]11)|(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:\x20+|#|x\.?|ext\.?|extension)\s*(\d+))?)$/</span>, <span class="ruby-constant">Regexp</span><span class="ruby-operator">::</span><span class="ruby-constant">IGNORECASE</span>)
|
98
|
+
<pre class="ruby"><span class="ruby-constant">PHONE_NUMBER_REGEX</span> = <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">/^(?:(?:[2-9]11)|(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:\x20+|#|x\.?|ext\.?|extension)\s*(\d+))?)$/</span>, <span class="ruby-constant">Regexp</span><span class="ruby-operator">::</span><span class="ruby-constant">IGNORECASE</span>) <span class="ruby-comment"># US Phone Numbers</span>
|
99
99
|
</pre>
|
100
100
|
|
101
101
|
<h2 id="label-Installing">Installing<span><a href="#label-Installing">¶</a> <a href="#top">↑</a></span></h2>
|
data/doc/js/navigation.js.gz
CHANGED
Binary file
|
data/doc/js/search_index.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
var search_data = {"index":{"searchIndex":["phonenumbervalidator","validator","phonenumbervalidatortest","new()","test_invalid_phone_number()","test_valid_phone_number()","validate_phone_number()","validate_phone_number()","readme"],"longSearchIndex":["phonenumbervalidator","phonenumbervalidator::validator","phonenumbervalidatortest","phonenumbervalidator::validator::new()","phonenumbervalidatortest#test_invalid_phone_number()","phonenumbervalidatortest#test_valid_phone_number()","phonenumbervalidator::validate_phone_number()","phonenumbervalidator::validator#validate_phone_number()",""],"info":[["PhoneNumberValidator","","PhoneNumberValidator.html","",""],["PhoneNumberValidator::Validator","","PhoneNumberValidator/Validator.html","",""],["PhoneNumberValidatorTest","","PhoneNumberValidatorTest.html","",""],["new","PhoneNumberValidator::Validator","PhoneNumberValidator/Validator.html#method-c-new","(phone_number = '+1 (949) 355-6244 ext. 198842')",""],["test_invalid_phone_number","PhoneNumberValidatorTest","PhoneNumberValidatorTest.html#method-i-test_invalid_phone_number","()",""],["test_valid_phone_number","PhoneNumberValidatorTest","PhoneNumberValidatorTest.html#method-i-test_valid_phone_number","()",""],["validate_phone_number","PhoneNumberValidator","PhoneNumberValidator.html#method-c-validate_phone_number","(phone_number)","<p>Validate any United States phone number!\n<p>Example:\n\n<pre
|
1
|
+
var search_data = {"index":{"searchIndex":["phonenumbervalidator","validator","phonenumbervalidatortest","new()","test_invalid_phone_number()","test_valid_phone_number()","validate_phone_number()","validate_phone_number()","readme"],"longSearchIndex":["phonenumbervalidator","phonenumbervalidator::validator","phonenumbervalidatortest","phonenumbervalidator::validator::new()","phonenumbervalidatortest#test_invalid_phone_number()","phonenumbervalidatortest#test_valid_phone_number()","phonenumbervalidator::validate_phone_number()","phonenumbervalidator::validator#validate_phone_number()",""],"info":[["PhoneNumberValidator","","PhoneNumberValidator.html","","<p>Phone Number Validator Parent Class\n"],["PhoneNumberValidator::Validator","","PhoneNumberValidator/Validator.html","",""],["PhoneNumberValidatorTest","","PhoneNumberValidatorTest.html","","<p>Phone Number Validator Test Class\n"],["new","PhoneNumberValidator::Validator","PhoneNumberValidator/Validator.html#method-c-new","(phone_number = '+1 (949) 355-6244 ext. 198842')","<p>Initialize Phone Number\n<p><strong>Method type: constructor</strong>\n"],["test_invalid_phone_number","PhoneNumberValidatorTest","PhoneNumberValidatorTest.html#method-i-test_invalid_phone_number","()","<p>Negative Test\n<p>Inputs an invalid phone number and expects the output to be <em>false</em>\n"],["test_valid_phone_number","PhoneNumberValidatorTest","PhoneNumberValidatorTest.html#method-i-test_valid_phone_number","()","<p>Positive Test\n<p>Inputs a valid phone number and expects the output to be <em>true</em>\n"],["validate_phone_number","PhoneNumberValidator","PhoneNumberValidator.html#method-c-validate_phone_number","(phone_number)","<p>Validate any United States phone number!\n<p>Example:\n\n<pre>PhoneNumberValidator.validate_phone_number('+1 (949) ...</pre>\n"],["validate_phone_number","PhoneNumberValidator::Validator","PhoneNumberValidator/Validator.html#method-i-validate_phone_number","()","<p>Validation Method\n<p>Checks to see if the phone number the user entered is valid by testing\nregex the pattern …\n"],["README","","README_rdoc.html","","<p>Phone Number Validator\n<p>About\n<p>This app is a US phone number-validating RubyGem.\n"]]}}
|
data/doc/js/search_index.js.gz
CHANGED
Binary file
|
data/doc/js/searcher.js.gz
CHANGED
Binary file
|
data/doc/table_of_contents.html
CHANGED
@@ -49,12 +49,20 @@
|
|
49
49
|
<ul>
|
50
50
|
<li class="class">
|
51
51
|
<a href="PhoneNumberValidator.html">PhoneNumberValidator</a>
|
52
|
+
|
53
|
+
<ul>
|
54
|
+
<li><a href="PhoneNumberValidator.html#label-Phone+Number+Validator+Parent+Class">Phone Number Validator Parent Class</a>
|
55
|
+
</ul>
|
52
56
|
</li>
|
53
57
|
<li class="class">
|
54
58
|
<a href="PhoneNumberValidator/Validator.html">PhoneNumberValidator::Validator</a>
|
55
59
|
</li>
|
56
60
|
<li class="class">
|
57
61
|
<a href="PhoneNumberValidatorTest.html">PhoneNumberValidatorTest</a>
|
62
|
+
|
63
|
+
<ul>
|
64
|
+
<li><a href="PhoneNumberValidatorTest.html#label-Phone+Number+Validator+Test+Class">Phone Number Validator Test Class</a>
|
65
|
+
</ul>
|
58
66
|
</li>
|
59
67
|
</ul>
|
60
68
|
|
@@ -1,8 +1,36 @@
|
|
1
1
|
class PhoneNumberValidator::Validator
|
2
|
+
|
3
|
+
##
|
4
|
+
# == Validates US Phone Numbers
|
5
|
+
#
|
6
|
+
# Regular Expression tested using {regexr.com}[https://regexr.com/]
|
7
|
+
#
|
8
|
+
# <b>Raw Regular Expression:</b>
|
9
|
+
# /^(?:(?:[2-9]11)|(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:\x20+|#|x\.?|ext\.?|extension)\s*(\d+))?)$/i
|
10
|
+
#
|
11
|
+
# <b>RegEx Flags:</b>
|
12
|
+
# Regexp::IGNORECASE: (i)
|
2
13
|
PHONE_NUMBER_REGEX = Regexp.new(/^(?:(?:[2-9]11)|(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:\x20+|#|x\.?|ext\.?|extension)\s*(\d+))?)$/, Regexp::IGNORECASE)
|
3
|
-
|
14
|
+
|
15
|
+
##
|
16
|
+
# == Initialize Phone Number
|
17
|
+
#
|
18
|
+
# <b>Method type: constructor</b>
|
19
|
+
def initialize(phone_number = '+1 (949) 355-6244 ext. 198842')
|
4
20
|
@phone_number = phone_number
|
5
|
-
|
21
|
+
end
|
22
|
+
|
23
|
+
##
|
24
|
+
# == Validation Method
|
25
|
+
#
|
26
|
+
# Checks to see if the phone number the user entered is valid
|
27
|
+
# by testing regex the pattern with the phone number
|
28
|
+
#
|
29
|
+
# Return Type:
|
30
|
+
# boolean
|
31
|
+
#
|
32
|
+
# Parameters:
|
33
|
+
# @phone_number: (String instance)
|
6
34
|
def validate_phone_number
|
7
35
|
if (PHONE_NUMBER_REGEX.match(@phone_number))
|
8
36
|
puts "'%s' is a valid phone number." % @phone_number
|
@@ -1,14 +1,20 @@
|
|
1
|
+
##
|
2
|
+
# = Phone Number \Validator Parent Class
|
1
3
|
class PhoneNumberValidator
|
2
4
|
class << self
|
5
|
+
|
6
|
+
##
|
3
7
|
# Validate any United States phone number!
|
4
8
|
#
|
5
9
|
# Example:
|
6
|
-
#
|
10
|
+
# PhoneNumberValidator.validate_phone_number('+1 (949) 355-6244 ext. 198842')
|
11
|
+
#
|
12
|
+
# Output:
|
7
13
|
# => '+1 (949) 355-6244 ext. 198842' is a valid phone number.'
|
8
14
|
# => true
|
9
15
|
#
|
10
16
|
# Arguments:
|
11
|
-
#
|
17
|
+
# phone_number: (String)
|
12
18
|
def validate_phone_number(phone_number)
|
13
19
|
validator = Validator.new(phone_number)
|
14
20
|
validator.validate_phone_number
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = 'phone_number_validator'
|
3
|
-
spec.version = '0.2.
|
3
|
+
spec.version = '0.2.2'
|
4
4
|
spec.date = Time.now.strftime("%Y-%m-%d")
|
5
5
|
spec.summary = 'Validate any US phone number!'
|
6
6
|
spec.description = 'This gem is a United States phone number validator. This gem uses a complex regular expression that can validate any United States phone number.'
|
@@ -1,11 +1,23 @@
|
|
1
1
|
require 'test/unit'
|
2
2
|
require 'phone_number_validator'
|
3
3
|
|
4
|
+
##
|
5
|
+
# = Phone Number \Validator Test Class
|
4
6
|
class PhoneNumberValidatorTest < Test::Unit::TestCase
|
7
|
+
|
8
|
+
##
|
9
|
+
# == Positive Test
|
10
|
+
#
|
11
|
+
# Inputs a valid phone number and expects the output to be <em>true</em>
|
5
12
|
def test_valid_phone_number
|
6
13
|
assert_equal true,
|
7
14
|
PhoneNumberValidator.validate_phone_number('+1 (949) 355-6244 ext. 198842')
|
8
15
|
end
|
16
|
+
|
17
|
+
##
|
18
|
+
# == Negative Test
|
19
|
+
#
|
20
|
+
# Inputs an invalid phone number and expects the output to be <em>false</em>
|
9
21
|
def test_invalid_phone_number
|
10
22
|
assert_equal false,
|
11
23
|
PhoneNumberValidator.validate_phone_number('94643823637337')
|