Sha256: 239f53cb9b9ab6632a6cded36ccbb6bb6d4e6a63bb7a92dcba669d02f0d329ac

Contents?: true

Size: 755 Bytes

Versions: 30

Compression:

Stored size: 755 Bytes

Contents

class CountryShippingZone < ShippingZone

  has_many      :regional_shipping_zones, dependent: :destroy

  validates     :country_code,  presence: true
  validate      :code_validity

  before_save   :set_name,      if: :country_code_changed?
  after_create  :create_regions

  def country
    Carmen::Country.coded(country_code)
  end

  def self.all_country_codes
    CountryShippingZone.pluck(:country_code)
  end

  private

  def code_validity
    unless country
      errors.add(:country_code, "is invalid")
    end
  end

  def create_regions
    country.subregions.each do | region |
      regional_shipping_zones.create({ state_code: region.code, country_code: country_code })
    end
  end

  def set_name
    self.name = country.name
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
nimbleshop_core-0.0.23 app/models/country_shipping_zone.rb
nimbleshop_core-0.0.21 app/models/country_shipping_zone.rb
nimbleshop_core-0.0.20 app/models/country_shipping_zone.rb
nimbleshop_core-0.0.19 app/models/country_shipping_zone.rb
nimbleshop_core-0.0.17 app/models/country_shipping_zone.rb
nimbleshop_core-0.0.16 app/models/country_shipping_zone.rb
nimbleshop_core-0.0.15 app/models/country_shipping_zone.rb
nimbleshop_core-0.0.14 app/models/country_shipping_zone.rb
nimbleshop_core-0.0.14.rc2 app/models/country_shipping_zone.rb
nimbleshop_core-0.0.14.rc1 app/models/country_shipping_zone.rb
nimbleshop_core-0.0.13 app/models/country_shipping_zone.rb
nimbleshop_core-0.0.12 app/models/country_shipping_zone.rb
nimbleshop_core-0.0.11 app/models/country_shipping_zone.rb
nimbleshop_core-0.0.10 app/models/country_shipping_zone.rb
nimbleshop_core-0.0.9 app/models/country_shipping_zone.rb
nimbleshop_core-0.0.8 app/models/country_shipping_zone.rb
nimbleshop_core-0.0.7 app/models/country_shipping_zone.rb
nimbleshop_core-0.0.5 app/models/country_shipping_zone.rb
nimbleshop_core-0.0.4.beta1 app/models/country_shipping_zone.rb
nimbleshop_core-0.0.4 app/models/country_shipping_zone.rb