class TN::Validator

Constants

MASK

Public Class Methods

calc_crc(number) click to toggle source
# File lib/tn_validator.rb, line 13
    def calc_crc number
  crc = 
          number[0].to_i * 8 + 
          number[1].to_i * 6 + 
          number[2].to_i * 4 + 
          number[3].to_i * 2 + 
          number[4].to_i * 3 + 
          number[5].to_i * 5 + 
          number[6].to_i * 9 + 
          number[7].to_i * 7
  crc = crc % 11
  crc = 11 - crc
  return 0 if crc == 10
  return 5 if crc == 11
  crc
end
valid?(number) click to toggle source
# File lib/tn_validator.rb, line 8
def valid? number
        r = check number
        { result: r == :OK, code: r, msg: Message.msg(r)}

end

Private Class Methods

check(number) click to toggle source
# File lib/tn_validator.rb, line 46
def check number
        return :BAD_LENGTH unless check_length number
        return :BAD_FORMAT unless check_format number
        return :BAD_CRC unless check_crc number

        return :OK
        
end
check_crc(number) click to toggle source
# File lib/tn_validator.rb, line 37
def check_crc number
  m =MASK.match number 

  m[:crc].to_s == calc_crc(m[:number]).to_s




end
check_format(number) click to toggle source
# File lib/tn_validator.rb, line 34
def check_format number
  v = number =~ MASK
end
check_length(number) click to toggle source
# File lib/tn_validator.rb, line 30
def check_length number
  number.length == 13
  
end