brazilian_validators 0.0.0 → 1.0.1
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/lib/brazilian_validators/phone.rb +76 -0
- data/lib/brazilian_validators.rb +2 -3
- metadata +31 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 910af28f149555b06bc8ba0cee19a77e3ac95d99
|
4
|
+
data.tar.gz: 834bb72cd5bc9ee095236816226c6df9185004ab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: db0e341c0a0d930e6648ff4ce5bd53f08d0b6375823e7498b47998398ab2000d29e7d3ccb2e4c1ca2535f1ea7784f84ad9ffcd0c7c5b8f4696f8081724c2f19f
|
7
|
+
data.tar.gz: b8cd20b0285c82be6ed776d4cf74898e337558d5134a8917ffc1159a62222d3cee68ab251f5a5e8fce3d5abe752f063030cb863bccba792e912c09475cee38b4
|
@@ -0,0 +1,76 @@
|
|
1
|
+
class BrazilianValidators
|
2
|
+
class Phone
|
3
|
+
def initialize(number = '')
|
4
|
+
number = remove_non_digits(number)
|
5
|
+
@area_code = number.slice!(0..1)
|
6
|
+
@number = number
|
7
|
+
end
|
8
|
+
|
9
|
+
def area_code
|
10
|
+
@area_code
|
11
|
+
end
|
12
|
+
|
13
|
+
def area_code=(area_code)
|
14
|
+
area_code = remove_non_digits(area_code)
|
15
|
+
@area_code = area_code
|
16
|
+
end
|
17
|
+
|
18
|
+
def is_mobile?
|
19
|
+
valid? && valid_mobile?
|
20
|
+
end
|
21
|
+
|
22
|
+
def number
|
23
|
+
@number
|
24
|
+
end
|
25
|
+
|
26
|
+
def number=(number)
|
27
|
+
number = remove_non_digits(number)
|
28
|
+
@number = number
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.is_mobile?(number)
|
32
|
+
phone = new(number)
|
33
|
+
phone.valid?
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.valid?(number)
|
37
|
+
phone = new(number)
|
38
|
+
phone.valid?
|
39
|
+
end
|
40
|
+
|
41
|
+
def valid?
|
42
|
+
valid_area_code? && valid_number?
|
43
|
+
end
|
44
|
+
|
45
|
+
private
|
46
|
+
|
47
|
+
def valid_area_code?
|
48
|
+
return false unless @area_code.size == 2
|
49
|
+
return false if @area_code.match(/\A0|[1-9]0|2[3569]|3[69]|45|5[26-9]|7[268]/)
|
50
|
+
true
|
51
|
+
end
|
52
|
+
|
53
|
+
def valid_mobile?
|
54
|
+
return false if @number.match(/\A[0-6]/)
|
55
|
+
return true if @number.size == 9 && @number.match(/\A9/) && @area_code.match(/\A[0-37-9]/)
|
56
|
+
if @number.size == 8
|
57
|
+
return true if @number.match(/\A70/) && @area_code.match(/1[1-9]|2[124]/)
|
58
|
+
return true if @number.match(/\A77/) && @area_code.match(/1[1-9]|2[124]|3[147]/)
|
59
|
+
return true if @number.match(/\A78/) && @area_code.match(/1[1-9]|2[1247]|3[147]|4[1-478]|5[14]|6[125]|7[135]|8[15]/)
|
60
|
+
return true if @number.match(/\A79/) && @area_code.match(/1[1-9]/)
|
61
|
+
return true if @area_code.match(/\A[456]/) && @number.match(/\A[89]/)
|
62
|
+
end
|
63
|
+
false
|
64
|
+
end
|
65
|
+
|
66
|
+
def valid_number?
|
67
|
+
valid_mobile? || (!@number.match(/\A[2-5]/).nil? && @number.size == 8)
|
68
|
+
end
|
69
|
+
|
70
|
+
def remove_non_digits(string)
|
71
|
+
string.gsub!(/\D/, "")
|
72
|
+
string.gsub!(/\A0/, "")
|
73
|
+
string
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
data/lib/brazilian_validators.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: brazilian_validators
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matheus Mina
|
@@ -9,7 +9,35 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
date: 2016-01-23 00:00:00.000000000 Z
|
12
|
-
dependencies:
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: pry
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rspec
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
13
41
|
description: It gives you a lot of useful validators for Brazillian documents or phones.
|
14
42
|
email: mfbmina@gmail.com
|
15
43
|
executables: []
|
@@ -17,6 +45,7 @@ extensions: []
|
|
17
45
|
extra_rdoc_files: []
|
18
46
|
files:
|
19
47
|
- lib/brazilian_validators.rb
|
48
|
+
- lib/brazilian_validators/phone.rb
|
20
49
|
homepage: https://github.com/mfbmina/brazilian_validators
|
21
50
|
licenses:
|
22
51
|
- MIT
|