phone_number_validator 0.2.1 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- 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')
|