Sha256: d3f0f52692fb7ae415211d8cf61a46e69a1ab4c20e39c0b8e0a80ee5efbb7e9c

Contents?: true

Size: 667 Bytes

Versions: 14

Compression:

Stored size: 667 Bytes

Contents

class RegionalShippingZone < ShippingZone

  validates :state_code, presence: true, uniqueness: { scope: :country_shipping_zone_id }

  validate :code_validity, if: lambda { |r| r.state_code && r.country }

  before_save :set_name

  delegate :country, to: :country_shipping_zone, allow_nil: true

  private

  def code_validity
    country = country_shipping_zone.country
    unless country.subregions.coded(state_code)
      errors.add(:state_code, "#{state_code} is an invalid regional code for country #{country.name}")
    end
  end

  def set_name
    country = country_shipping_zone.country
    self.name = country.subregions.coded(state_code).name
  end

end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
nimbleshop_core-0.0.7 app/models/regional_shipping_zone.rb
nimbleshop_core-0.0.5 app/models/regional_shipping_zone.rb
nimbleshop_core-0.0.4.beta1 app/models/regional_shipping_zone.rb
nimbleshop_core-0.0.4 app/models/regional_shipping_zone.rb
nimbleshop_core-0.0.3 app/models/regional_shipping_zone.rb
nimbleshop_core-0.0.2 app/models/regional_shipping_zone.rb
nimbleshop_core-0.0.2.beta1 app/models/regional_shipping_zone.rb
nimbleshop_core-0.0.1 app/models/regional_shipping_zone.rb
nimbleshop_core-0.0.1.rc6 app/models/regional_shipping_zone.rb
nimbleshop_core-0.0.1.rc5 app/models/regional_shipping_zone.rb
nimbleshop_core-0.0.1.rc4 app/models/regional_shipping_zone.rb
nimbleshop_core-0.0.1.rc3 app/models/regional_shipping_zone.rb
nimbleshop_core-0.0.1.rc2 app/models/regional_shipping_zone.rb
nimbleshop_core-0.0.1.rc1 app/models/regional_shipping_zone.rb