class MarketTown::Checkout::Address

An Address model for validating addresses. This class is for internal use only. You should validate addresses yourself before passing them into {MarketTown::Checkout}.

@api private

Attributes

address_1[RW]
address_2[RW]
address_3[RW]
company[RW]
country[RW]
locality[RW]
name[RW]
postal_code[RW]
region[RW]
save[RW]

Public Class Methods

validate!(address_attrs) click to toggle source

Validates an address, throws {InvalidError} if invalid

@param [Hash] address_attrs @option address_attrs [String] :name @option address_attrs [String] :company @option address_attrs [String] :address_1 @option address_attrs [String] :address_2 @option address_attrs [String] :address_3 @option address_attrs [String] :locality @option address_attrs [String] :region @option address_attrs [String] :postal_code @option address_attrs [String] :country must be valid ISO3166 alpha 2

@raise [InvalidError] if address invalid

# File lib/market_town/checkout/models/address.rb, line 28
def self.validate!(address_attrs)
  address = new(address_attrs)

  if address.invalid?
    raise InvalidError.new(address: address_attrs,
                           errors: address.errors.messages)
  end
end

Private Instance Methods

country_is_iso3166() click to toggle source
# File lib/market_town/checkout/models/address.rb, line 60
def country_is_iso3166
  if ISO3166::Country.find_country_by_alpha2(country).nil?
    errors.add(:country, 'Country was not valid ISO3166 alpha 2')
  end
end