class ValidateCnpj::Cnpj
Constants
- BLACKLIST
Public Class Methods
new(document)
click to toggle source
# File lib/validate_cnpj/cnpj.rb, line 3 def initialize(document) @validate = validation(document) end
Public Instance Methods
valid?()
click to toggle source
# File lib/validate_cnpj/cnpj.rb, line 14 def valid? @validate end
validation(document)
click to toggle source
# File lib/validate_cnpj/cnpj.rb, line 7 def validation(document) return true if document.blank? return false if regex(document) == false return false if verify_blacklist(document) == true return validate? end
Private Instance Methods
first_verification()
click to toggle source
# File lib/validate_cnpj/cnpj.rb, line 32 def first_verification sum = multiply_sum([5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2], @number) verification(sum%11).to_s end
formal_cnpj(document)
click to toggle source
# File lib/validate_cnpj/cnpj.rb, line 57 def formal_cnpj(document) document = document.gsub(/[\/.-]/, "") document =~ /(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})/ return "#{$1}.#{$2}.#{$3}/#{$4}-#{$5}" end
multiply_sum(array, number)
click to toggle source
# File lib/validate_cnpj/cnpj.rb, line 42 def multiply_sum(array, number) multiply = [] number.scan(/\d{1}/).each_with_index { |e, i| multiply[i] = e.to_i * array[i] } multiply.inject { |s, e| s + e } end
regex(document)
click to toggle source
# File lib/validate_cnpj/cnpj.rb, line 20 def regex(document) doc = document =~ /^(\d{2}\.?\d{3}\.?\d{3}\/?\d{4})-?(\d{2})$/ @number = $1 @result = $2 doc == 0 ? true : false end
second_verification()
click to toggle source
# File lib/validate_cnpj/cnpj.rb, line 37 def second_verification sum = multiply_sum([6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2], @number + first_verification) verification(sum%11).to_s end
validate?()
click to toggle source
# File lib/validate_cnpj/cnpj.rb, line 27 def validate? @number = @number.gsub(/[\/.-]/, "") @result == (first_verification + second_verification) ? true : false end
verification(rest)
click to toggle source
# File lib/validate_cnpj/cnpj.rb, line 48 def verification(rest) rest < 2 ? 0 : (11 - rest) end
verify_blacklist(document)
click to toggle source
# File lib/validate_cnpj/cnpj.rb, line 52 def verify_blacklist(document) cnpj = formal_cnpj(document) BLACKLIST.include?(cnpj) end