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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 353f6e10327c7236966eb4f42938d8f93ff2e68c
4
- data.tar.gz: f954096ffa6e945df86d733c9e38f438fb423e57
3
+ metadata.gz: 64f5c49698418c66e4c22ad12c09317ba9cb9f28
4
+ data.tar.gz: 54c76745df7af95f3fe31eb29d6e17e8d1e9d91b
5
5
  SHA512:
6
- metadata.gz: 5c551661dcfb70ac3e53f2806452758a61c4af08bf6b10d1b8b8532ab258387ffd6dec1b5de95b690f5f37f36152c4fff72039fd009b9bcc814d720bdb786291
7
- data.tar.gz: 3f0a40f29ec8ff8391f655760df88447ec0e8a125be9c7ea2b80328c11ca965956d731b27fef703028e5acde116af1b10fca34b294f438aa2fcf9954878e93c2
6
+ metadata.gz: 9a085ce44ec030d1df35893c220401c712f34c79c01c702b5d9bf3d5e6d519084c52c27083ae92e08efaf166662b45150d59b57ea3b24796409408e9e49012ac
7
+ data.tar.gz: ec79ff250e1162447554dea7402617798e1b8751ca0e844c5b3dc8d68716468be59721b92bd61bbbd1cffba89e8c55dc86d51ecda10addfaeb28904fa2b46199
data/.travis.yml CHANGED
@@ -4,3 +4,6 @@ rvm:
4
4
  - 2.0.0
5
5
  - 2.1.0
6
6
  script: "bundle exec rspec spec"
7
+ addons:
8
+ code_climate:
9
+ repo_token: c0f13b2d37fab3eaaa1ffabbd9c4880ac883c87a71f8b145ce12a6907bcd18f3
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 suite de funcionalidades para CPF.
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
- gem 'cpf_utils'
14
+ ```ruby
15
+ gem 'cpf_utils'
16
+ ```
14
17
 
15
18
  E então execute:
16
19
 
17
- $ bundle
20
+ ```ruby
21
+ $ bundle
22
+ ```
18
23
 
19
24
  Ou instale você mesmo, conforme abaixo:
20
25
 
21
- $ gem install cpf_utils
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
- # Para gerar um número de CPF:
28
- CpfUtils.cpf => # "45698394823"
34
+ ```ruby
35
+ # Para gerar um número de CPF:
36
+ CpfUtils.cpf => # "45698394823"
29
37
 
30
- # Para gerar um CPF formatado:
31
- CpfUtils.cpf_formatted => # "456.983.948-23"
38
+ # Para gerar um CPF formatado:
39
+ CpfUtils.cpf_formatted => # "456.983.948-23"
32
40
 
33
- # Para verificar se um CPF é válido:
34
- CpfUtils.valid_cpf?("47238051923") => # true
35
- CpfUtils.valid_cpf?(47238051923) => # true
36
- CpfUtils.valid_cpf?("472.380.519-23") => # true
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
- # Outra forma de verificar se um CPF é válido:
39
- "45698394823".valid_cpf? => # true
40
- "456.983.948-23".valid_cpf? => # true
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
- # Para verificar se uma máscara de CPF é válida:
43
- "456.983.948-23".valid_cpf_mask? => # true
44
- "456.983..948-23".valid_cpf_mask? => # false
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
- # Para formatar um número válido de CPF:
47
- "45698394823".to_cpf_format => # "456.983.948-23"
56
+ # Para formatar um número válido de CPF:
57
+ "45698394823".to_cpf_format => # "456.983.948-23"
48
58
 
49
- # Para gerar um número de CPF a partir de um número candidato de 9 dígitos:
50
- "456983948".generate_cpf => # "45698394823"
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
- # Para gerar um número de CPF formatado a partir de um número candidato de 9 dígitos:
53
- "456983948".generate_cpf_formatted => # "456.983.948-23"
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
- # Para gerar um número de CPF:
58
- CpfUtils.cpf => # "45698394823"
68
+ ```ruby
69
+ # Para gerar um número de CPF:
70
+ CpfUtils.cpf => # "45698394823"
59
71
 
60
- # Para gerar um CPF formatado:
61
- CpfUtils.cpf_formatado => # "456.983.948-23"
72
+ # Para gerar um CPF formatado:
73
+ CpfUtils.cpf_formatado => # "456.983.948-23"
62
74
 
63
- # Para verificar se um CPF é válido:
64
- CpfUtils.cpf_valido?("47238051923") => # true
65
- CpfUtils.cpf_valido?(47238051923) => # true
66
- CpfUtils.cpf_valido?("472.380.519-23") => # true
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
- # Outra forma de verificar se um CPF é válido:
69
- "45698394823".cpf_valido? => # true
70
- "456.983.948-23".cpf_valido? => # true
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
- # Para verificar se uma máscara de CPF é válida:
73
- "456.983.948-23".mascara_de_cpf_valida? => # true
74
- "456.983..948-23".mascara_de_cpf_valida? => # false
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
- # Para formatar um número válido de CPF:
77
- "45698394823".para_formato_cpf => # "456.983.948-23"
90
+ # Para formatar um número válido de CPF:
91
+ "45698394823".para_formato_cpf => # "456.983.948-23"
78
92
 
79
- # Para gerar um número de CPF a partir de um número candidato:
80
- "456983948".gerar_cpf => # "45698394823"
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
- # Para gerar um número de CPF formatado a partir de um número candidato:
83
- "456983948".gerar_cpf_formatado => # "456.983.948-23"
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 suite de funcionalidades para o CPF.}
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
@@ -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
 
@@ -1,3 +1,3 @@
1
1
  module CpfUtils
2
- VERSION = "1.1.1"
2
+ VERSION = "1.2.1"
3
3
  end
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
- cpf = CpfUtils.cpf
28
- expect(cpf.valid_cpf?).to be_true
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
- cpf = CpfUtils.cpf
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
- cpf = CpfUtils.cpf
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
- cpf = CpfUtils.cpf
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.1.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-03-25 00:00:00.000000000 Z
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 suite de funcionalidades para o CPF.
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/cpf.rb
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/cpf.rb
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