Sha256: c0e1bb7a30e13f8d365daf494db7a4fe43476d564d2ee75d79acd70c6cda02c5

Contents?: true

Size: 602 Bytes

Versions: 28

Compression:

Stored size: 602 Bytes

Contents

# frozen_string_literal: true

require "forwardable"
require "singleton"
require "yaml"

module Worldwide
  class ExtantOutcodes
    include Singleton

    class << self
      extend Forwardable
      def_delegators :instance, :for_country
    end

    def for_country(code:)
      extant[code.to_s.downcase]
    end

    private

    def initialize
      @extant = nil
    end

    def extant
      @extant ||= YAML.safe_load_file("#{::Worldwide::Paths::GEM_ROOT}/db/extant_outcodes.yml").dig("extant_outcodes")&.map do |key, value|
        [key, value.to_set]
      end&.to_h || {}
    end
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
worldwide-1.14.0 lib/worldwide/extant_outcodes.rb
worldwide-1.13.0 lib/worldwide/extant_outcodes.rb
worldwide-1.12.0 lib/worldwide/extant_outcodes.rb
worldwide-1.11.1 lib/worldwide/extant_outcodes.rb
worldwide-1.11.0 lib/worldwide/extant_outcodes.rb
worldwide-1.10.0 lib/worldwide/extant_outcodes.rb
worldwide-1.9.0 lib/worldwide/extant_outcodes.rb
worldwide-1.8.0 lib/worldwide/extant_outcodes.rb
worldwide-1.7.5 lib/worldwide/extant_outcodes.rb
worldwide-1.7.4 lib/worldwide/extant_outcodes.rb
worldwide-1.7.3 lib/worldwide/extant_outcodes.rb
worldwide-1.7.2 lib/worldwide/extant_outcodes.rb
worldwide-1.7.1 lib/worldwide/extant_outcodes.rb
worldwide-1.7.0 lib/worldwide/extant_outcodes.rb
worldwide-1.6.2 lib/worldwide/extant_outcodes.rb
worldwide-1.6.1 lib/worldwide/extant_outcodes.rb
worldwide-1.6.0 lib/worldwide/extant_outcodes.rb
worldwide-1.5.0 lib/worldwide/extant_outcodes.rb
worldwide-1.4.1 lib/worldwide/extant_outcodes.rb
worldwide-1.4.0 lib/worldwide/extant_outcodes.rb