cpf_utils 1.1.1 → 1.2.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
[![Gem Version](https://badge.fury.io/rb/cpf_utils.png)](http://badge.fury.io/rb/cpf_utils)
|
3
3
|
[![Build status](https://secure.travis-ci.org/jacksonpires/cpf_utils.png)](https://secure.travis-ci.org/jacksonpires/cpf_utils)
|
4
4
|
[![Code Climate](https://codeclimate.com/github/jacksonpires/cpf_utils.png)](https://codeclimate.com/github/jacksonpires/cpf_utils)
|
5
|
+
[![Coverage Status](https://coveralls.io/repos/jacksonpires/cpf_utils/badge.png?branch=master)](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
|