class Traco::LocaleFallbacks
Constants
- OPTIONS
Attributes
fallback_option[R]
Public Class Methods
new(fallback_option)
click to toggle source
# 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
Public Instance Methods
[](current_locale)
click to toggle source
# 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
Private Instance Methods
validate_option(fallback_option)
click to toggle source
# File lib/traco/locale_fallbacks.rb, line 38 def validate_option(fallback_option) return if OPTIONS.include?(fallback_option) return if fallback_option.is_a?(Array) valids = OPTIONS.map(&:inspect).join(", ") raise ArgumentError.new("Unsupported fallback: #{fallback_option.inspect} (expected one of #{valids}, or an array)") end