Sha256: a25b0fdcfae34b6865bd155c96c345b5c149a4839eb13ffce97251f412900c39

Contents?: true

Size: 567 Bytes

Versions: 5

Compression:

Stored size: 567 Bytes

Contents

# frozen_string_literal: true

require 'emoji_flag/defaults'

module EmojiFlag
  OFFSET = 127_397
  COUNTRY_CODE_RE = /^[A-Z]{2}$/

  def self.new(input)
    locale = input.to_s
    return '' if locale.nil? || locale.size.zero?

    code = code_for_locale(locale)

    code.codepoints.collect { |codepoint| codepoint + OFFSET }.pack('U*')
  end

  def self.code_for_locale(locale)
    split = locale.upcase.split(/-|_/)
    lang = split.shift
    code = split.pop
    code = DEFAULTS[lang.downcase.to_sym] unless COUNTRY_CODE_RE.match(code)

    code || ''
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
emoji_flag-0.1.1 lib/emoji_flag.rb
emoji_flag-0.1.0 lib/emoji_flag.rb
emoji_flag-0.0.3 lib/emoji_flag.rb
emoji_flag-0.0.2 lib/emoji_flag.rb
emoji_flag-0.0.1 lib/emoji_flag.rb