Sha256: 7e80993d5229a6134645fa3d82d88ddf61a658224f8e9d81f2cee89c2b2a7992

Contents?: true

Size: 794 Bytes

Versions: 41

Compression:

Stored size: 794 Bytes

Contents

# frozen_string_literal: true

module Spree
  class Country < Spree::Base
    has_many :states, -> { order(:name) }, dependent: :destroy
    has_many :addresses, dependent: :nullify
    has_many :prices, class_name: "Spree::Price", foreign_key: "country_iso", primary_key: "iso"

    validates :name, :iso_name, presence: true

    self.allowed_ransackable_attributes = %w[name]

    def self.default
      find_by!(iso: Spree::Config.default_country_iso)
    end

    def self.available(restrict_to_zone: Spree::Config[:checkout_zone])
      checkout_zone = Zone.find_by(name: restrict_to_zone)

      return checkout_zone.country_list if checkout_zone.try(:kind) == 'country'

      all
    end

    def <=>(other)
      name <=> other.name
    end

    def to_s
      name
    end
  end
end

Version data entries

41 entries across 41 versions & 1 rubygems

Version Path
solidus_core-4.5.1 app/models/spree/country.rb
solidus_core-4.5.0 app/models/spree/country.rb
solidus_core-4.3.6 app/models/spree/country.rb
solidus_core-4.2.5 app/models/spree/country.rb
solidus_core-4.1.6 app/models/spree/country.rb
solidus_core-4.4.2 app/models/spree/country.rb
solidus_core-4.4.1 app/models/spree/country.rb
solidus_core-4.4.0 app/models/spree/country.rb
solidus_core-4.3.4 app/models/spree/country.rb
solidus_core-4.2.4 app/models/spree/country.rb
solidus_core-4.1.5 app/models/spree/country.rb
solidus_core-4.3.3 app/models/spree/country.rb
solidus_core-4.3.2 app/models/spree/country.rb
solidus_core-4.1.4 app/models/spree/country.rb
solidus_core-4.3.1 app/models/spree/country.rb
solidus_core-4.3.0 app/models/spree/country.rb
solidus_core-4.2.3 app/models/spree/country.rb
solidus_core-4.1.3 app/models/spree/country.rb
solidus_core-4.0.4 app/models/spree/country.rb
solidus_core-3.4.6 app/models/spree/country.rb