Sha256: 31e9347473a89d4af3901bcae99c63d1d22f8012bb41334d3cec0040aa0ec19a
Contents?: true
Size: 1.12 KB
Versions: 2
Compression:
Stored size: 1.12 KB
Contents
require 'correios-cep' require 'active_model' 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 "#{CORREIOS_CEP_I18N_SCOPE}.connection_failed" rescue ArgumentError "#{CORREIOS_CEP_I18N_SCOPE}.invalid" rescue Net::OpenTimeout "#{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
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
validates-correios-cep-0.1.2 | lib/validates-correios-cep/activemodel.rb |
validates-correios-cep-0.1.1 | lib/validates-correios-cep/activemodel.rb |