check_cpf_cnpj 0.2.0 → 0.2.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/check_cpf_cnpj.gemspec +1 -1
- data/lib/cnpj/cnpj.rb +27 -25
- data/lib/cpf/cpf.rb +34 -32
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3f773d01a0f182d2822f0645ed12b4418c0970ea
|
|
4
|
+
data.tar.gz: 9dc8cf00d45c4b72e92830300ceb9b5d0ee31bf7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 642a47e5f6964beac36fd190940233282e86e7736de19c492d18de7cfc010b139359f8e0b3569c32d03cbdfc6e75cd31dc7a97b467977c30fad9ff7c08f289e6
|
|
7
|
+
data.tar.gz: 5a1658fbc8b054fc32b4dcf92ba34c51747a8bbec679d44bb2134e9adefbbc4d67f409c058c526a497fad365430ffccb28ca6775457a62425075c5de8f99fb2f
|
data/check_cpf_cnpj.gemspec
CHANGED
data/lib/cnpj/cnpj.rb
CHANGED
|
@@ -1,32 +1,34 @@
|
|
|
1
|
-
|
|
1
|
+
module CheckCpfCnpj
|
|
2
|
+
class Cnpj
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
def initialize(number=nil)
|
|
5
|
+
return false if number.nil?
|
|
6
|
+
@number = number.to_s
|
|
7
|
+
end
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
def only_numbers
|
|
10
|
+
return @number.gsub(".", "").gsub("-", "").gsub("/", "")
|
|
11
|
+
end
|
|
11
12
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
def formatted
|
|
14
|
+
return @number.insert(2, '.').insert(6, '.').insert(10, '/').insert(15, '-')
|
|
15
|
+
end
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
def valid?
|
|
18
|
+
return false if @number == '00000000000000'
|
|
19
|
+
return false if @number[12].to_i != check_digits(@number[0..11].split("").reverse)
|
|
20
|
+
return false if @number[13].to_i != check_digits(@number[0..12].split("").reverse)
|
|
21
|
+
return true
|
|
22
|
+
end
|
|
22
23
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
24
|
+
def check_digits(digits)
|
|
25
|
+
#receives digits reverted to simplify iteration
|
|
26
|
+
#array_check also is reverted to iteration
|
|
27
|
+
array_check = [2,3,4,5,6,7,8,9,2,3,4,5,6]
|
|
28
|
+
sum = 0
|
|
29
|
+
digits.each_with_index{ |digit, index| sum += digit.to_i * array_check[index].to_i }
|
|
30
|
+
mod = sum % 11
|
|
31
|
+
if mod < 2 then 0 else 11-mod end
|
|
32
|
+
end
|
|
31
33
|
end
|
|
32
34
|
end
|
data/lib/cpf/cpf.rb
CHANGED
|
@@ -1,40 +1,42 @@
|
|
|
1
|
-
|
|
1
|
+
module CheckCpfCnpj
|
|
2
|
+
class Cpf
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
INVALID_CPF = [
|
|
5
|
+
'11111111111', '22222222222', '33333333333',
|
|
6
|
+
'44444444444', '55555555555', '66666666666',
|
|
7
|
+
'77777777777', '88888888888', '99999999999',
|
|
8
|
+
'00000000000'
|
|
9
|
+
]
|
|
9
10
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
def initialize(number)
|
|
12
|
+
return false if number.nil?
|
|
13
|
+
@number = number.to_s
|
|
14
|
+
end
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
def only_numbers
|
|
17
|
+
return @number.gsub(".", "").gsub("-", "")
|
|
18
|
+
end
|
|
18
19
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
def formatted
|
|
21
|
+
return @number.insert(3, '.').insert(7, '.').insert(11, '-')
|
|
22
|
+
end
|
|
22
23
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
def valid?
|
|
25
|
+
return false if INVALID_CPF.include?(@number)
|
|
26
|
+
return false if @number[9].to_i != check_digits(@number[0..8].split(""))
|
|
27
|
+
return false if @number[10].to_i != check_digits(@number[0..9].split(""))
|
|
28
|
+
return true
|
|
29
|
+
end
|
|
29
30
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
def check_digits(digits)
|
|
32
|
+
prod = digits.size + 1
|
|
33
|
+
sum = 0
|
|
34
|
+
digits.each do |digit|
|
|
35
|
+
sum += digit.to_i * prod
|
|
36
|
+
prod -= 1
|
|
37
|
+
end
|
|
38
|
+
mod = sum%11
|
|
39
|
+
if mod < 2 then 0 else 11-mod end
|
|
36
40
|
end
|
|
37
|
-
mod = sum%11
|
|
38
|
-
if mod < 2 then 0 else 11-mod end
|
|
39
41
|
end
|
|
40
|
-
end
|
|
42
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: check_cpf_cnpj
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Thiago Varanda
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-08-
|
|
11
|
+
date: 2016-08-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description:
|
|
14
14
|
email:
|
|
@@ -42,7 +42,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
42
42
|
version: '0'
|
|
43
43
|
requirements: []
|
|
44
44
|
rubyforge_project:
|
|
45
|
-
rubygems_version: 2.
|
|
45
|
+
rubygems_version: 2.4.5.1
|
|
46
46
|
signing_key:
|
|
47
47
|
specification_version: 4
|
|
48
48
|
summary: Simple gem to validate CPF and CNPJ
|