Sha256: 436b71fd8fe28040b9b1d8a344a4ea1c487ade1360c63d3257dc47813731d516

Contents?: true

Size: 885 Bytes

Versions: 10

Compression:

Stored size: 885 Bytes

Contents

# frozen_string_literal: true

module Europe
  # Countries
  module Countries
    # Reversed
    module Reversed
      def self.generate(country_value)
        COUNTRIES.each_with_object({}) do |(key, value), out|
          reverse_handle_value(out, key, value, country_value)
        end
      end

      def self.reverse_handle_value(out, key, value, country_value)
        if out[value[country_value.to_sym]]
          reverse_handle_array(out, key, value, country_value)
        else
          out[value[country_value.to_sym]] = key
        end
      end

      def self.reverse_handle_array(out, key, value, country_value)
        if out[value[country_value.to_sym]].is_a?(Array)
          out[value[country_value.to_sym]] << key
        else
          out[value[country_value.to_sym]] =
            [out[value[country_value.to_sym]], key]
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
europe-0.0.23 lib/europe/countries/reversed.rb
europe-0.0.22 lib/europe/countries/reversed.rb
europe-0.0.21 lib/europe/countries/reversed.rb
europe-0.0.20 lib/europe/countries/reversed.rb
europe-0.0.19 lib/europe/countries/reversed.rb
europe-0.0.18 lib/europe/countries/reversed.rb
europe-0.0.17 lib/europe/countries/reversed.rb
europe-0.0.16 lib/europe/countries/reversed.rb
europe-0.0.15 lib/europe/countries/reversed.rb
europe-0.0.14 lib/europe/countries/reversed.rb