class BrDocuments::IE::RO

Protected Instance Methods

format_ie(number) click to toggle source
# File lib/br_documents/ie/ro.rb, line 11
def format_ie(number)
  if number.gsub(/(\.)|(\-)/, '').length == 9
    number.sub(/(\d{3})(\d{5})(\d{1})/, '\\1.\\2-\\3')
  else
    number.sub(/(\d{13})(\d{1})/, '\\1-\\2')
  end
end
valid_check_digit?() click to toggle source
# File lib/br_documents/ie/ro.rb, line 23
def valid_check_digit?
  valid_old_digital_check or valid_new_digital_check
end
valid_format?() click to toggle source
# File lib/br_documents/ie/ro.rb, line 19
def valid_format?
  valid_old_format or valid_new_format
end

Private Instance Methods

remove_mask!() click to toggle source
# File lib/br_documents/ie/ro.rb, line 51
def remove_mask!
  @number.gsub!(/[\.\/-]/, '')
end
valid_new_digital_check() click to toggle source
# File lib/br_documents/ie/ro.rb, line 45
def valid_new_digital_check
  weight = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]
  remove_mask!
  @number[-1] == generate_check_digit(@number, weight).to_s
end
valid_new_format() click to toggle source
# File lib/br_documents/ie/ro.rb, line 34
def valid_new_format
  regex = /^(\d{13}\-\d{1})$|^(\d{14})$/
  regex.match(@number).present?
end
valid_old_digital_check() click to toggle source
# File lib/br_documents/ie/ro.rb, line 39
def valid_old_digital_check
  weight = [3, 2, 9, 8, 7, 6, 5, 4, 3, 2]
  remove_mask!
  @number[-1] == generate_check_digit(@number[-6, 6], weight).to_s
end
valid_old_format() click to toggle source
# File lib/br_documents/ie/ro.rb, line 29
def valid_old_format
  regex = /^(\d{3}\.\d{5}\-\d{1})$|^(\d{9})$/
  regex.match(@number).present?
end