class I18n::Locale::Fallbacks
Attributes
defaults[R]
Public Class Methods
new(*mappings)
click to toggle source
# File lib/i18n/locale/fallbacks.rb, line 49 def initialize(*mappings) @map = {} map(mappings.pop) if mappings.last.is_a?(Hash) self.defaults = mappings.empty? ? [] : mappings end
Public Instance Methods
[](locale)
click to toggle source
Calls superclass method
# File lib/i18n/locale/fallbacks.rb, line 60 def [](locale) raise InvalidLocale.new(locale) if locale.nil? raise Disabled.new('fallback#[]') if locale == false locale = locale.to_sym super || store(locale, compute(locale)) end
defaults=(defaults)
click to toggle source
# File lib/i18n/locale/fallbacks.rb, line 55 def defaults=(defaults) @defaults = defaults.flat_map { |default| compute(default, false) } end
empty?()
click to toggle source
# File lib/i18n/locale/fallbacks.rb, line 82 def empty? @map.empty? && @defaults.empty? end
inspect()
click to toggle source
# File lib/i18n/locale/fallbacks.rb, line 86 def inspect "#<#{self.class.name} @map=#{@map.inspect} @defaults=#{@defaults.inspect}>" end
map(*args, &block)
click to toggle source
# File lib/i18n/locale/fallbacks.rb, line 67 def map(*args, &block) if args.count == 1 && !block_given? mappings = args.first mappings.each do |from, to| from, to = from.to_sym, Array(to) to.each do |_to| @map[from] ||= [] @map[from] << _to.to_sym end end else @map.map(*args, &block) end end
Protected Instance Methods
compute(tags, include_defaults = true, exclude = [])
click to toggle source
# File lib/i18n/locale/fallbacks.rb, line 92 def compute(tags, include_defaults = true, exclude = []) result = Array(tags).flat_map do |tag| tags = I18n::Locale::Tag.tag(tag).self_and_parents.map! { |t| t.to_sym } - exclude tags.each { |_tag| tags += compute(@map[_tag], false, exclude + tags) if @map[_tag] } tags end result.push(*defaults) if include_defaults result.uniq! result.compact! result end