class ActiveModel::Validations::CorreiosCepValidator

Constants

CORREIOS_CEP_I18N_SCOPE

Public Instance Methods

validate_each(record, attribute, value) click to toggle source
# File lib/validates-correios-cep/activemodel.rb, line 10
def validate_each(record, attribute, value)
  error_message_scope = begin
                          "#{CORREIOS_CEP_I18N_SCOPE}.not_exists" if ::Correios::CEP::AddressFinder.get(value).blank?
                        rescue EOFError, ::HTTP::ConnectionError
                          "#{CORREIOS_CEP_I18N_SCOPE}.connection_failed"
                        rescue ArgumentError
                          "#{CORREIOS_CEP_I18N_SCOPE}.invalid"
                        rescue ::Net::OpenTimeout, ::HTTP::TimeoutError
                          "#{CORREIOS_CEP_I18N_SCOPE}.timeouted"
                        end

  record.errors.add(attribute, I18n.t(error_message_scope, zipcode: value)) if error_message_scope.present?
end