# frozen_string_literal: true module Spree module BaseHelper def available_countries checkout_zone = Zone.find_by(name: ENV.fetch("CHECKOUT_ZONE", nil)) countries = if checkout_zone && checkout_zone.kind == 'country' checkout_zone.countries else Country.includes(:states).all end countries.collect do |country| country.name = Spree.t(country.iso, scope: 'country_names', default: country.name) country end.sort { |a, b| a.name <=> b.name } end def countries available_countries.map { |c| [c.name, c.id] } end def states_for_country(country) country.states.map do |state| [state.name, state.id] end end def countries_with_states available_countries.map { |c| [c.id, c.states.map { |s| [s.name, s.id] }] } end def pretty_time(time) I18n.l(time, format: :long) end end end