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