cpf_utils 1.1.1 → 1.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/.travis.yml +3 -0
- data/Gemfile +10 -0
- data/README.md +63 -44
- data/cpf_utils.gemspec +1 -1
- data/lib/cpf_utils/string.rb +15 -1
- data/lib/cpf_utils/version.rb +1 -1
- data/spec/cpf_utils/{cpf.rb → cpf_spec.rb} +0 -0
- data/spec/cpf_utils/string_spec.rb +19 -12
- data/spec/spec_helper.rb +13 -0
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 64f5c49698418c66e4c22ad12c09317ba9cb9f28
|
4
|
+
data.tar.gz: 54c76745df7af95f3fe31eb29d6e17e8d1e9d91b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9a085ce44ec030d1df35893c220401c712f34c79c01c702b5d9bf3d5e6d519084c52c27083ae92e08efaf166662b45150d59b57ea3b24796409408e9e49012ac
|
7
|
+
data.tar.gz: ec79ff250e1162447554dea7402617798e1b8751ca0e844c5b3dc8d68716468be59721b92bd61bbbd1cffba89e8c55dc86d51ecda10addfaeb28904fa2b46199
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
@@ -1,4 +1,14 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
|
3
|
+
# Code Climate Test Reporter
|
4
|
+
gem "codeclimate-test-reporter", group: :test, require: nil
|
5
|
+
|
6
|
+
# Code coverage for Ruby 1.9+ with a powerful configuration library and
|
7
|
+
# automatic merging of coverage across test suites
|
8
|
+
gem 'simplecov', '~> 0.7.1', group: :test, require: nil
|
9
|
+
|
10
|
+
# A Ruby implementation of the Coveralls API.
|
11
|
+
gem 'coveralls', require: false
|
12
|
+
|
3
13
|
# Specify your gem's dependencies in cpf_utils.gemspec
|
4
14
|
gemspec
|
data/README.md
CHANGED
@@ -2,85 +2,104 @@
|
|
2
2
|
[](http://badge.fury.io/rb/cpf_utils)
|
3
3
|
[](https://secure.travis-ci.org/jacksonpires/cpf_utils)
|
4
4
|
[](https://codeclimate.com/github/jacksonpires/cpf_utils)
|
5
|
+
[](https://coveralls.io/r/jacksonpires/cpf_utils?branch=master)
|
5
6
|
|
6
|
-
CpfUtils é uma
|
7
|
+
CpfUtils é uma suíte de funcionalidades para CPF.
|
7
8
|
O CpfUtils é capaz de gerar CPF para testes no formado tradicional ou apenas numérico, testa se determinado número de CPF é válido, gera dígitos verificadores para determinado número candidato a CPF, dentre outras coisas.
|
8
9
|
|
9
10
|
## Instalação
|
10
11
|
|
11
12
|
Adicione essa linha na Gemfile da sua aplicação:
|
12
13
|
|
13
|
-
|
14
|
+
```ruby
|
15
|
+
gem 'cpf_utils'
|
16
|
+
```
|
14
17
|
|
15
18
|
E então execute:
|
16
19
|
|
17
|
-
|
20
|
+
```ruby
|
21
|
+
$ bundle
|
22
|
+
```
|
18
23
|
|
19
24
|
Ou instale você mesmo, conforme abaixo:
|
20
25
|
|
21
|
-
|
26
|
+
```ruby
|
27
|
+
$ gem install cpf_utils
|
28
|
+
```
|
22
29
|
|
23
30
|
## Uso
|
24
31
|
|
25
32
|
O CpfUtils é muito fácil de usar, por exempo:
|
26
33
|
|
27
|
-
|
28
|
-
|
34
|
+
```ruby
|
35
|
+
# Para gerar um número de CPF:
|
36
|
+
CpfUtils.cpf => # "45698394823"
|
29
37
|
|
30
|
-
|
31
|
-
|
38
|
+
# Para gerar um CPF formatado:
|
39
|
+
CpfUtils.cpf_formatted => # "456.983.948-23"
|
32
40
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
41
|
+
# Para verificar se um CPF é válido:
|
42
|
+
CpfUtils.valid_cpf?("47238051923") => # true
|
43
|
+
CpfUtils.valid_cpf?(47238051923) => # true
|
44
|
+
CpfUtils.valid_cpf?("472.380.519-23") => # true
|
45
|
+
CpfUtils.valid_cpf?("111.111.111-11") => # false
|
37
46
|
|
38
|
-
|
39
|
-
|
40
|
-
|
47
|
+
# Outra forma de verificar se um CPF é válido:
|
48
|
+
"45698394823".valid_cpf? => # true
|
49
|
+
"456.983.948-23".valid_cpf? => # true
|
50
|
+
"999.999.999-99".valid_cpf? => # false
|
41
51
|
|
42
|
-
|
43
|
-
|
44
|
-
|
52
|
+
# Para verificar se uma máscara de CPF é válida:
|
53
|
+
"456.983.948-23".valid_cpf_mask? => # true
|
54
|
+
"456.983..948-23".valid_cpf_mask? => # false
|
45
55
|
|
46
|
-
|
47
|
-
|
56
|
+
# Para formatar um número válido de CPF:
|
57
|
+
"45698394823".to_cpf_format => # "456.983.948-23"
|
48
58
|
|
49
|
-
|
50
|
-
|
59
|
+
# Para gerar um número de CPF a partir de um número candidato de 9 dígitos:
|
60
|
+
"456983948".generate_cpf => # "45698394823"
|
51
61
|
|
52
|
-
|
53
|
-
|
62
|
+
# Para gerar um número de CPF formatado a partir de um número candidato de 9 dígitos:
|
63
|
+
"456983948".generate_cpf_formatted => # "456.983.948-23"
|
64
|
+
```
|
54
65
|
|
55
66
|
Também é possível usar métodos em português:
|
56
67
|
|
57
|
-
|
58
|
-
|
68
|
+
```ruby
|
69
|
+
# Para gerar um número de CPF:
|
70
|
+
CpfUtils.cpf => # "45698394823"
|
59
71
|
|
60
|
-
|
61
|
-
|
72
|
+
# Para gerar um CPF formatado:
|
73
|
+
CpfUtils.cpf_formatado => # "456.983.948-23"
|
62
74
|
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
75
|
+
# Para verificar se um CPF é válido:
|
76
|
+
CpfUtils.cpf_valido?("47238051923") => # true
|
77
|
+
CpfUtils.cpf_valido?(47238051923) => # true
|
78
|
+
CpfUtils.cpf_valido?("472.380.519-23") => # true
|
79
|
+
CpfUtils.cpf_valido?("111.111.111-11") => # false
|
67
80
|
|
68
|
-
|
69
|
-
|
70
|
-
|
81
|
+
# Outra forma de verificar se um CPF é válido:
|
82
|
+
"45698394823".cpf_valido? => # true
|
83
|
+
"456.983.948-23".cpf_valido? => # true
|
84
|
+
"999.999.999-99".cpf_valido? => # false
|
71
85
|
|
72
|
-
|
73
|
-
|
74
|
-
|
86
|
+
# Para verificar se uma máscara de CPF é válida:
|
87
|
+
"456.983.948-23".mascara_de_cpf_valida? => # true
|
88
|
+
"456.983..948-23".mascara_de_cpf_valida? => # false
|
75
89
|
|
76
|
-
|
77
|
-
|
90
|
+
# Para formatar um número válido de CPF:
|
91
|
+
"45698394823".para_formato_cpf => # "456.983.948-23"
|
78
92
|
|
79
|
-
|
80
|
-
|
93
|
+
# Para gerar um número de CPF a partir de um número candidato de 9 dígitos:
|
94
|
+
"456983948".gerar_cpf => # "45698394823"
|
81
95
|
|
82
|
-
|
83
|
-
|
96
|
+
# Para gerar um número de CPF formatado a partir de um número candidato de 9 dígitos:
|
97
|
+
"456983948".gerar_cpf_formatado => # "456.983.948-23"
|
98
|
+
```
|
99
|
+
|
100
|
+
## Recomende
|
101
|
+
|
102
|
+
Gostou dessa gem? Recomende-me no [Working With Rails](http://www.workingwithrails.com/people/148426)!
|
84
103
|
|
85
104
|
## Contribuindo
|
86
105
|
|
data/cpf_utils.gemspec
CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.version = CpfUtils::VERSION
|
9
9
|
spec.authors = ["Jackson Pires"]
|
10
10
|
spec.email = ["jackson.pires@gmail.com"]
|
11
|
-
spec.description = %q{Uma
|
11
|
+
spec.description = %q{Uma suíte de funcionalidades para o CPF.}
|
12
12
|
spec.summary = %q{Gera CPF para testes no formado tradicional ou apenas
|
13
13
|
numérico, testa se determinado número de CPF
|
14
14
|
é válido, além muitas outras funcionalidades descritas
|
data/lib/cpf_utils/string.rb
CHANGED
@@ -22,7 +22,10 @@ class String
|
|
22
22
|
tested_cpf << CpfUtils::Cpf.new(original_cpf[0..8]).first_digit.to_s
|
23
23
|
tested_cpf << CpfUtils::Cpf.new(tested_cpf[0..9]).second_digit.to_s
|
24
24
|
|
25
|
-
tested_cpf == original_cpf ? true : false
|
25
|
+
valid_cpf = (tested_cpf == original_cpf) ? true : false
|
26
|
+
blacklisted_cpf = !self.blacklisted_cpf?
|
27
|
+
|
28
|
+
(valid_cpf == blacklisted_cpf) ? true : false
|
26
29
|
end
|
27
30
|
end
|
28
31
|
|
@@ -56,6 +59,17 @@ class String
|
|
56
59
|
generate_cpf.to_cpf_format
|
57
60
|
end
|
58
61
|
|
62
|
+
# Verifica se o CPF é faz parte da blacklist
|
63
|
+
# A blacklist consiste em CPFs inválidos como '111.111.111-11' e seus
|
64
|
+
# derivados
|
65
|
+
#
|
66
|
+
# "11111111111".blacklisted_cpf? => # false
|
67
|
+
def blacklisted_cpf?
|
68
|
+
wihout_mask = self.gsub(/\.?-?/,"",)
|
69
|
+
first_number = wihout_mask[0]
|
70
|
+
wihout_mask.count(first_number) == 11 ? true : false
|
71
|
+
end
|
72
|
+
|
59
73
|
# Apelido 'mascara_de_cpf_valida' para o método valid_cpf_mask
|
60
74
|
alias_method :mascara_de_cpf_valida?, :valid_cpf_mask?
|
61
75
|
|
data/lib/cpf_utils/version.rb
CHANGED
File without changes
|
@@ -1,6 +1,9 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
3
|
describe String do
|
4
|
+
let(:valid_cpf) { CpfUtils.cpf }
|
5
|
+
let(:invalid_cpf) { "11111111111" }
|
6
|
+
|
4
7
|
it "#valid_cpf_mask?" do
|
5
8
|
expect("123.456.789-12".valid_cpf_mask?).to be_true
|
6
9
|
expect("12345678912".valid_cpf_mask?).to be_true
|
@@ -24,27 +27,26 @@ describe String do
|
|
24
27
|
end
|
25
28
|
|
26
29
|
it "#valid_cpf?" do
|
27
|
-
|
28
|
-
|
30
|
+
expect(valid_cpf.valid_cpf?).to be_true
|
31
|
+
end
|
32
|
+
|
33
|
+
it "#valid_cpf? - false" do
|
34
|
+
expect(invalid_cpf.valid_cpf?).to be_false
|
29
35
|
end
|
30
36
|
|
31
37
|
it "#cpf_valido?" do
|
32
|
-
|
33
|
-
expect(cpf.cpf_valido?).to be_true
|
38
|
+
expect(valid_cpf.cpf_valido?).to be_true
|
34
39
|
end
|
35
40
|
|
36
41
|
it "#to_cpf_format?" do
|
37
|
-
|
38
|
-
expect(cpf.to_cpf_format).to match(/^[0-9]{3}\.[0-9]{3}\.[0-9]{3}-[0-9]{2}+$/)
|
42
|
+
expect(valid_cpf.to_cpf_format).to match(/^[0-9]{3}\.[0-9]{3}\.[0-9]{3}-[0-9]{2}+$/)
|
39
43
|
end
|
40
44
|
|
41
45
|
it "#para_formato_cpf?" do
|
42
|
-
|
43
|
-
expect(cpf.para_formato_cpf).to match(/^[0-9]{3}\.[0-9]{3}\.[0-9]{3}-[0-9]{2}+$/)
|
46
|
+
expect(valid_cpf.para_formato_cpf).to match(/^[0-9]{3}\.[0-9]{3}\.[0-9]{3}-[0-9]{2}+$/)
|
44
47
|
end
|
45
48
|
|
46
49
|
it "#generate_cpf" do
|
47
|
-
valid_cpf = CpfUtils.cpf
|
48
50
|
final_cpf = valid_cpf[0..8].generate_cpf
|
49
51
|
|
50
52
|
expect(final_cpf).to be_a_kind_of(String)
|
@@ -52,7 +54,6 @@ describe String do
|
|
52
54
|
end
|
53
55
|
|
54
56
|
it "#gerar_cpf" do
|
55
|
-
valid_cpf = CpfUtils.cpf
|
56
57
|
final_cpf = valid_cpf[0..8].gerar_cpf
|
57
58
|
|
58
59
|
expect(final_cpf).to be_a_kind_of(String)
|
@@ -60,16 +61,22 @@ describe String do
|
|
60
61
|
end
|
61
62
|
|
62
63
|
it "#gerar_cpf_formatado" do
|
63
|
-
valid_cpf = CpfUtils.cpf
|
64
64
|
final_cpf = valid_cpf[0..8].gerar_cpf_formatado
|
65
65
|
|
66
66
|
expect(final_cpf).to match(/^[0-9]{3}\.[0-9]{3}\.[0-9]{3}-[0-9]{2}+$/)
|
67
67
|
end
|
68
68
|
|
69
69
|
it "#generate_cpf_formatted" do
|
70
|
-
valid_cpf = CpfUtils.cpf
|
71
70
|
final_cpf = valid_cpf[0..8].generate_cpf_formatted
|
72
71
|
|
73
72
|
expect(final_cpf).to match(/^[0-9]{3}\.[0-9]{3}\.[0-9]{3}-[0-9]{2}+$/)
|
74
73
|
end
|
74
|
+
|
75
|
+
it "#blacklisted_cpf? - true" do
|
76
|
+
expect(invalid_cpf.blacklisted_cpf?).to be_true
|
77
|
+
end
|
78
|
+
|
79
|
+
it "#blacklisted_cpf? - false" do
|
80
|
+
expect(valid_cpf.blacklisted_cpf?).to be_false
|
81
|
+
end
|
75
82
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,2 +1,15 @@
|
|
1
|
+
# Require Code Climate Test Reporter
|
2
|
+
require "codeclimate-test-reporter"
|
3
|
+
|
4
|
+
# Starts Code Climate Test Reporter
|
5
|
+
CodeClimate::TestReporter.start
|
6
|
+
|
7
|
+
# Require Coveralls for Test cover
|
8
|
+
require 'coveralls'
|
9
|
+
|
10
|
+
# Starts Coderalls
|
11
|
+
Coveralls.wear!
|
12
|
+
|
13
|
+
# Require other files of project
|
1
14
|
require "cpf_utils"
|
2
15
|
require_relative "../lib/cpf_utils/cpf"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cpf_utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jackson Pires
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-04-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,7 +52,7 @@ dependencies:
|
|
52
52
|
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 2.14.1
|
55
|
-
description: Uma
|
55
|
+
description: Uma suíte de funcionalidades para o CPF.
|
56
56
|
email:
|
57
57
|
- jackson.pires@gmail.com
|
58
58
|
executables: []
|
@@ -71,7 +71,7 @@ files:
|
|
71
71
|
- lib/cpf_utils/cpf.rb
|
72
72
|
- lib/cpf_utils/string.rb
|
73
73
|
- lib/cpf_utils/version.rb
|
74
|
-
- spec/cpf_utils/
|
74
|
+
- spec/cpf_utils/cpf_spec.rb
|
75
75
|
- spec/cpf_utils/string_spec.rb
|
76
76
|
- spec/cpf_utils_spec.rb
|
77
77
|
- spec/spec_helper.rb
|
@@ -102,7 +102,7 @@ summary: Gera CPF para testes no formado tradicional ou apenas numérico, testa
|
|
102
102
|
determinado número de CPF é válido, além muitas outras funcionalidades descritas
|
103
103
|
na documentação.
|
104
104
|
test_files:
|
105
|
-
- spec/cpf_utils/
|
105
|
+
- spec/cpf_utils/cpf_spec.rb
|
106
106
|
- spec/cpf_utils/string_spec.rb
|
107
107
|
- spec/cpf_utils_spec.rb
|
108
108
|
- spec/spec_helper.rb
|