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