abookyun/taiwan_validator

View on GitHub
lib/taiwan_validator/address_validator.rb

Summary

Maintainability
A
0 mins
Test Coverage
C
71%
class TaiwanValidator::AddressValidator < ActiveModel::EachValidator
  class << self
    def valid?(address)
      /(\A\d{3,5})?\s?(\D+[縣市])(\D+[鄉鎮市區])?(.+)/.match(address)
    end
  end

  def validate_each(record, attribute, value)
    unless self.class.valid?(value)
      record.errors.add(attribute, options[:message] || :invalid)
    end
  end
end