Sha256: 6e4793deffbeb2315ab63541e517dc3dfb39f57eafec1a82e5d672c86d9888fb

Contents?: true

Size: 1.38 KB

Versions: 1

Compression:

Stored size: 1.38 KB

Contents

module WorldFlags
  module LangUtil
    def language_label code, locale
      WorldFlags.language code, locale
    end

    def language code = :us, locale = :en 
      locale ||= default_locale_used      

      locale_languages_map = languages_map[locale] || languages_map[default_locale_used]
      locale_languages_map = languages_map[:en] if locale_languages_map.blank?

      raise "No language-locale map defined for locale: #{locale} or :en in #{languages.inspect}" if locale_languages_map.blank?

      # raise("No language map defined for language code: #{code} in #{locale_languages_map[code]}")      
      locale_languages_map[code] ? locale_languages_map[code] : locale_languages_map[default_code_used] 
    rescue Exception => e
      raise e if WorldFlags.raise_error?
      "Undefined"
    end

    def languages
      @languages ||= Languages.new
    end

    def languages= languages
      raise ArgumentError, "Must be a hash, was: #{languages}" unless languages.kind_of?(Hash)
      @languages = languages
    end

    def languages_map
      @languages_map ||= begin 
        active_locales.inject({}) do |res, loc|
          res[loc] = find_language_map(loc)
          res
        end
      end
    end

    def find_language_map loc
      languages.respond_to?(loc) ? languages.send(loc) : languages.send(locale(loc))
    rescue
      languages.send(default_locale_used)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
world-flags-0.3.4 lib/world_flags/lang_util.rb