Module: WorldFlags::Util::Language
- Defined in:
- lib/world_flags/util/language.rb
Instance Attribute Summary collapse
Instance Method Summary collapse
- #find_language_map(loc) ⇒ Object
- #language(code = :us, locale = :en) ⇒ Object
- #language_label(code, locale) ⇒ Object
- #languages ⇒ Object
- #languages=(languages) ⇒ Object
Instance Attribute Details
#hashied_languages ⇒ Object
53 54 55 56 57 58 59 60 61 62 |
# File 'lib/world_flags/util/language.rb', line 53 def hashied_languages @hashied_languages ||= begin case languages when Hash Hashie::Mash.new languages else languages end end end |
#languages_map ⇒ Object
44 45 46 47 48 49 50 51 |
# File 'lib/world_flags/util/language.rb', line 44 def languages_map @languages_map ||= begin available_locales.inject({}) do |res, loc| res[loc] = find_language_map(loc) res end end end |
Instance Method Details
#find_language_map(loc) ⇒ Object
64 65 66 67 68 |
# File 'lib/world_flags/util/language.rb', line 64 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 |
#language(code = :us, locale = :en) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/world_flags/util/language.rb', line 10 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) ⇒ Object
6 7 8 |
# File 'lib/world_flags/util/language.rb', line 6 def language_label code, locale language code, locale end |
#languages ⇒ Object
35 36 37 |
# File 'lib/world_flags/util/language.rb', line 35 def languages @languages ||= Languages.new end |
#languages=(languages) ⇒ Object
39 40 41 42 |
# File 'lib/world_flags/util/language.rb', line 39 def languages= languages raise ArgumentError, "Must be a hash, was: #{languages}" unless !languages || languages.kind_of?(Hash) @languages = languages end |