Sha256: 54267482b135fc911747e096176733a86d9aa9a7ddd15f24a65eb864a6797ba2

Contents?: true

Size: 704 Bytes

Versions: 58

Compression:

Stored size: 704 Bytes

Contents

# frozen_string_literal: true

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

require "worldwide/field"

module Worldwide
  class Fields
    include Singleton

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

    def initialize
      @fields = {}
    end

    # Return a Worldwide::Field for the specified country_code and field_key
    def field(country_code:, field_key:)
      code = country_code.upcase.to_sym
      key = field_key.downcase.to_sym

      cache_key = "#{code}|#{key}".to_sym
      cached = @fields[cache_key]
      return cached if cached

      @fields[cache_key] = Field.new(country_code: code, field_key: key)
    end
  end
end

Version data entries

58 entries across 58 versions & 1 rubygems

Version Path
worldwide-1.15.2 lib/worldwide/fields.rb
worldwide-1.15.1 lib/worldwide/fields.rb
worldwide-1.15.0 lib/worldwide/fields.rb
worldwide-1.14.4 lib/worldwide/fields.rb
worldwide-1.14.3 lib/worldwide/fields.rb
worldwide-1.14.1 lib/worldwide/fields.rb
worldwide-1.14.0 lib/worldwide/fields.rb
worldwide-1.13.0 lib/worldwide/fields.rb
worldwide-1.12.0 lib/worldwide/fields.rb
worldwide-1.11.1 lib/worldwide/fields.rb
worldwide-1.11.0 lib/worldwide/fields.rb
worldwide-1.10.0 lib/worldwide/fields.rb
worldwide-1.9.0 lib/worldwide/fields.rb
worldwide-1.8.0 lib/worldwide/fields.rb
worldwide-1.7.5 lib/worldwide/fields.rb
worldwide-1.7.4 lib/worldwide/fields.rb
worldwide-1.7.3 lib/worldwide/fields.rb
worldwide-1.7.2 lib/worldwide/fields.rb
worldwide-1.7.1 lib/worldwide/fields.rb
worldwide-1.7.0 lib/worldwide/fields.rb