module WorldFlags::Util::Language

Attributes

hashied_languages[W]
languages_map[W]

Public Instance Methods

find_language_map(loc) click to toggle source
# File lib/world_flags/util/language.rb, line 68
def find_language_map loc
  hashied_languages.respond_to?(loc) ? hashied_languages.send(loc) : hashied_languages.send(locale(loc))
rescue
  hashied_languages.send(default_locale_used)
end
hashied_languages() click to toggle source
# File lib/world_flags/util/language.rb, line 57
def hashied_languages
  @hashied_languages ||= begin
    case languages
    when Hash
      Hashie::Mash.new languages
    else
      languages
    end
  end
end
language(code = :us, locale = :en) click to toggle source
# File lib/world_flags/util/language.rb, line 14
def language code = :us, locale = :en 
  locale ||= default_locale_used      
  locale = WorldFlags.locale(locale).to_sym

  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 #{locale_languages_map.inspect}" if locale_languages_map.blank?

  # raise("No language map defined for language code: #{code} in #{locale_languages_map[code]}")
  code_language = locale_languages_map[code] ? locale_languages_map[code] : locale_languages_map[default_code_used]         

  case code_language
  when Array
    code_language.join(',')
  when String
    code_language
  else
    raise "The language in the language map must be either a String or Array, was #{code_language.inspect}"
  end
rescue Exception => e
  raise e if WorldFlags.raise_error?
  "Undefined"
end
language_label(code, locale) click to toggle source
# File lib/world_flags/util/language.rb, line 10
def language_label code, locale
  language code, locale
end
languages() click to toggle source
# File lib/world_flags/util/language.rb, line 39
def languages
  @languages ||= Languages.new
end
languages=(languages) click to toggle source
# File lib/world_flags/util/language.rb, line 43
def languages= languages
  raise ArgumentError, "Must be a hash, was: #{languages}" unless !languages || languages.kind_of?(Hash)
  @languages = languages
end
languages_map() click to toggle source
# File lib/world_flags/util/language.rb, line 48
def languages_map
  @languages_map ||= begin 
    available_locales.inject({}) do |res, loc|
      res[loc] = find_language_map(loc)
      res
    end
  end
end