class ValidatesZipcode::Zipcode

Public Class Methods

new(args = {}) click to toggle source
# File lib/validates_zipcode/zipcode.rb, line 6
def initialize(args = {})
  @zipcode                = args.fetch(:zipcode)
  @country_alpha2         = args.fetch(:country_alpha2)
  @excluded_country_codes = args.fetch(:excluded_country_codes, [])
  @format                 = args.fetch(:format, false)
end

Public Instance Methods

format() click to toggle source
# File lib/validates_zipcode/zipcode.rb, line 22
def format
  raise InvalidZipcodeError, "invalid zipcode #{formatted_zip} for country #{@country_alpha2.to_s.upcase}" unless valid?

  formatted_zip
end
valid?() click to toggle source
# File lib/validates_zipcode/zipcode.rb, line 13
def valid?
  return true if @excluded_country_codes.include?(@country_alpha2)
  return true unless regexp

  zipcode = @format ? formatted_zip : @zipcode
  !!(regexp =~ zipcode)
end
Also aliased as: validate
validate()
Alias for: valid?

Private Instance Methods

formatted_zip() click to toggle source
# File lib/validates_zipcode/zipcode.rb, line 34
def formatted_zip
  @formatted_zip ||= Formatter.new(zipcode: @zipcode, country_alpha2: @country_alpha2).format
end
regexp() click to toggle source
# File lib/validates_zipcode/zipcode.rb, line 30
def regexp
  @regexp ||= regexp_for_country_alpha2(@country_alpha2)
end