Class: Traco::LocaleFallbacks

Inherits:
Object
  • Object
show all
Defined in:
lib/traco/locale_fallbacks.rb

Constant Summary collapse

OPTIONS =
[
  DEFAULT_FALLBACK = :default,
  ANY_FALLBACK = :any,
  NO_FALLBACK = false,
  DEFAULT_FIRST_FALLBACK = :default_first,
  I18N_FALLBACK = :i18n,
]

Instance Method Summary collapse

Constructor Details

#initialize(fallback_option) ⇒ LocaleFallbacks

Returns a new instance of LocaleFallbacks.



16
17
18
19
20
21
22
# File 'lib/traco/locale_fallbacks.rb', line 16

def initialize(fallback_option)
  validate_option(fallback_option)

  @fallback_option = fallback_option
  @default_locale = I18n.default_locale
  @available_locales = I18n.available_locales.sort
end

Instance Method Details

#[](current_locale) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
# File 'lib/traco/locale_fallbacks.rb', line 24

def [](current_locale)
  case fallback_option
  when DEFAULT_FALLBACK       then [ current_locale, @default_locale ]
  when ANY_FALLBACK           then [ current_locale, @default_locale, *@available_locales ].uniq
  when NO_FALLBACK            then [ current_locale ]
  when DEFAULT_FIRST_FALLBACK then [ @default_locale, *@available_locales ].uniq
  when I18N_FALLBACK          then I18n.fallbacks[current_locale]
  when Array                  then [ current_locale, *fallback_option ]
  else                        raise "Unknown fallback."  # Should never get here.
  end
end