class TaiwanValidator::IdValidator
Constants
- DEPRECATED_FIRST_LETTER
- FIRST_LETTER
- MULTIPLIER
- VALID_FIRST_LETTER
Public Class Methods
valid?(id)
click to toggle source
# File lib/taiwan_validator/id_validator.rb, line 16 def valid?(id) id = id.to_s return false if id.size != 10 || !(VALID_FIRST_LETTER.keys.include?(id[0])) || (id[1..9] =~ /\A\d+\Z/).nil? digits = (VALID_FIRST_LETTER[id[0]].to_s.chars + id[1..9].to_s.chars).map(&:to_i) results = digits.zip(MULTIPLIER).map { |r| r.inject(&:*) }.inject(&:+) results % 10 == 0 end
Public Instance Methods
validate_each(record, attribute, value)
click to toggle source
# File lib/taiwan_validator/id_validator.rb, line 27 def validate_each(record, attribute, value) unless self.class.valid?(value) record.errors.add(attribute, options[:message] || :invalid) end end