Module: WorldFlags::Util::Language
- Extended by:
- NameEnabler
- Defined in:
- lib/world_flags/util/language.rb
Instance Attribute Summary collapse
Attributes included from NameEnabler
#name_enabled
Instance Method Summary
collapse
name_disable!, name_enable!, name_enabled?
Instance Attribute Details
#hashied_languages ⇒ Object
57
58
59
60
61
62
63
64
65
66
|
# 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
|
#languages_map ⇒ Object
48
49
50
51
52
53
54
55
|
# 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
|
Instance Method Details
#find_language_map(loc) ⇒ Object
68
69
70
71
72
|
# 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
|
#language(code = :us, locale = :en) ⇒ Object
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# 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?
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
10
11
12
|
# File 'lib/world_flags/util/language.rb', line 10
def language_label code, locale
language code, locale
end
|
#languages ⇒ Object
39
40
41
|
# File 'lib/world_flags/util/language.rb', line 39
def languages
@languages ||= Languages.new
end
|
#languages=(languages) ⇒ Object
43
44
45
46
|
# 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
|