Class: CPF
- Inherits:
-
Object
show all
- Defined in:
- lib/cpf.rb,
lib/cpf/cli.rb,
lib/cpf/formatter.rb,
lib/cpf/generator.rb,
lib/cpf_cnpj/version.rb,
lib/cpf/verifier_digit.rb
Defined Under Namespace
Classes: CLI, Formatter, Generator, VerifierDigit
Constant Summary
collapse
- REGEX =
/\A\d{3}\.\d{3}\.\d{3}-\d{2}\Z/
- BLACKLIST =
[
"00000000000",
"11111111111",
"22222222222",
"33333333333",
"44444444444",
"55555555555",
"66666666666",
"77777777777",
"88888888888",
"99999999999",
"12345678909"
]
- VERSION =
"0.2.0"
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(number) ⇒ CPF
Returns a new instance of CPF.
34
35
36
|
# File 'lib/cpf.rb', line 34
def initialize(number)
@number = number.to_s
end
|
Instance Attribute Details
#number ⇒ Object
Returns the value of attribute number.
7
8
9
|
# File 'lib/cpf.rb', line 7
def number
@number
end
|
Class Method Details
.generate(formatted = false) ⇒ Object
29
30
31
32
|
# File 'lib/cpf.rb', line 29
def self.generate(formatted = false)
cpf = new(Generator.generate)
formatted ? cpf.formatted : cpf.stripped
end
|
.valid?(number) ⇒ Boolean
25
26
27
|
# File 'lib/cpf.rb', line 25
def self.valid?(number)
new(number).valid?
end
|
Instance Method Details
49
50
51
|
# File 'lib/cpf.rb', line 49
def formatted
@formatted ||= Formatter.format(number)
end
|
#stripped ⇒ Object
45
46
47
|
# File 'lib/cpf.rb', line 45
def stripped
@stripped ||= Formatter.strip(number)
end
|
#valid? ⇒ Boolean
53
54
55
56
57
58
59
60
61
62
|
# File 'lib/cpf.rb', line 53
def valid?
return unless stripped.size == 11
return if BLACKLIST.include?(stripped)
_numbers = numbers[0...9]
_numbers << VerifierDigit.generate(_numbers)
_numbers << VerifierDigit.generate(_numbers)
_numbers[-2, 2] == numbers[-2, 2]
end
|