Sha256: 0fa0385978253b6cb4e35992498427889556e7ac03554ae0d1add8684743c0f6

Contents?: true

Size: 591 Bytes

Versions: 6

Compression:

Stored size: 591 Bytes

Contents

# frozen_string_literal: true

require 'iso_country_codes'
require 'administrate/field/string'

module Administrate
  module Field
    class CountryEmoji < Administrate::Field::String
      def to_emoji
        iso2_to_flag_emoji(data)
      end

      def to_s
        data
      end

      private

      def iso2_to_flag_emoji(iso2)
        return if iso2.nil?

        iso2  = iso2.upcase
        emoji = iso2.chars.map { |char| (char.ord + 127_397).chr(Encoding::UTF_8) }.join
        entry = ::IsoCountryCodes.find(iso2)

        "#{emoji} (#{entry.name})"
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
administrate_tailwind_theme-0.0.6 lib/administrate/field/country_emoji.rb
administrate_tailwind_theme-0.0.5 lib/administrate/field/country_emoji.rb
administrate_tailwind_theme-0.0.4 lib/administrate/field/country_emoji.rb
administrate_tailwind_theme-0.0.3 lib/administrate/field/country_emoji.rb
administrate_tailwind_theme-0.0.2 lib/administrate/field/country_emoji.rb
administrate_tailwind_theme-0.0.1 lib/administrate/field/country_emoji.rb