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 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