Sha256: 67e3e4cdd063546ece513a26e63436f5c8848803a6015b92c88be867dbb9b8ac

Contents?: true

Size: 494 Bytes

Versions: 8

Compression:

Stored size: 494 Bytes

Contents

require 'csv'
require 'set'

module Arbetsformedlingen
  class CountryCode
    CODES = CSV.read(
      File.expand_path('../../../../data/country-codes.csv', __FILE__)
    ).to_h.freeze

    COUNTRY_CODES = Set.new(CODES.values).freeze

    def self.to_code(country_code)
      normalize(country_code)
    end

    def self.valid?(country_code)
      COUNTRY_CODES.include?(normalize(country_code))
    end

    def self.normalize(country_code)
      country_code.to_s.upcase
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
arbetsformedlingen-0.5.0 lib/arbetsformedlingen/codes/country_code.rb
arbetsformedlingen-0.4.1 lib/arbetsformedlingen/codes/country_code.rb
arbetsformedlingen-0.4.0 lib/arbetsformedlingen/codes/country_code.rb
arbetsformedlingen-0.3.0 lib/arbetsformedlingen/codes/country_code.rb
arbetsformedlingen-0.2.0 lib/arbetsformedlingen/codes/country_code.rb
arbetsformedlingen-0.1.2 lib/arbetsformedlingen/codes/country_code.rb
arbetsformedlingen-0.1.1 lib/arbetsformedlingen/codes/country_code.rb
arbetsformedlingen-0.1.0 lib/arbetsformedlingen/codes/country_code.rb