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