brazilian_validators 0.0.0 → 1.0.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
  SHA1:
3
- metadata.gz: 8f80695d4dcda6a14fad52a8d79c744c4f55bdeb
4
- data.tar.gz: ecf8a3298d59bc3d21142b047dc11e677345a5f6
3
+ metadata.gz: 910af28f149555b06bc8ba0cee19a77e3ac95d99
4
+ data.tar.gz: 834bb72cd5bc9ee095236816226c6df9185004ab
5
5
  SHA512:
6
- metadata.gz: 216ff35458d5e351ca84caa2cc2b1eca6f816c10273e676329a00e0361798b73e51e16423fbb94c93805934044aeaa292f18e4e16745b061eed6624a627bbb98
7
- data.tar.gz: ffabe11533204b05d89c878e351a0153a1cd3b2c7071e3dd2dbfdaacbf4d60532b54fe54f08bec584f572daa695e23f17afd0f36e7b66491efb933951c3d8634
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
@@ -1,5 +1,4 @@
1
1
  class BrazilianValidators
2
- def self.hi
3
- puts "Hello world!"
4
- end
5
2
  end
3
+
4
+ require "brazilian_validators/phone"
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: 0.0.0
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