Sha256: 84833926072aa15a6b7585ec3ecf795a584e0e20247b2df376d80c1055fe90d3

Contents?: true

Size: 795 Bytes

Versions: 9

Compression:

Stored size: 795 Bytes

Contents

# frozen_string_literal: true

module ISO3166
  module SubdivisionMethods
    def subdivision_data(alpha2)
      data = load_data_for_alpha2(alpha2)
      locales = ISO3166.configuration.locales.map(&:to_s)

      data.each_value { |subdivision| subdivision['translations'] = subdivision['translations'].slice(*locales) }

      data
    end

    def load_data_for_alpha2(alpha2)
      file = subdivision_file_path(alpha2)
      File.exist?(file) ? YAML.load_file(file) : {}
    end

    def subdivisions(alpha2)
      @subdivisions ||= {}
      @subdivisions[alpha2] ||= create_subdivisions(subdivision_data(alpha2))
    end

    def create_subdivisions(subdivision_data)
      subdivision_data.transform_values do |subdivision|
        Subdivision.new(subdivision)
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
countries-7.1.1 lib/countries/data/subdivision_methods.rb
countries-7.1.0 lib/countries/data/subdivision_methods.rb
countries-7.0.0 lib/countries/data/subdivision_methods.rb
countries-6.0.0 lib/countries/data/subdivision_methods.rb
countries-5.7.2 lib/countries/data/subdivision_methods.rb
countries-5.7.1 lib/countries/data/subdivision_methods.rb
countries-5.7.0 lib/countries/data/subdivision_methods.rb
countries-5.6.0 lib/countries/data/subdivision_methods.rb
countries-5.5.0 lib/countries/data/subdivision_methods.rb