Sha256: 089a4849bc24357b291a570a5c6df3e30746e133657eaa25ac6b8f0c6085fafa
Contents?: true
Size: 1.19 KB
Versions: 1
Compression:
Stored size: 1.19 KB
Contents
require 'correios-cep' require 'active_model' require 'net/http' module ActiveModel module Validations class CorreiosCepValidator < EachValidator CORREIOS_CEP_I18N_SCOPE = 'correios_cep.errors.messages' 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 end module HelperMethods def validates_correios_cep_of(*attributes) validates_with CorreiosCepValidator, _merge_attributes(attributes) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
validates-correios-cep-0.1.3 | lib/validates-correios-cep/activemodel.rb |