Class: I18n::Locale::Fallbacks

### Home Classes Methods

### In Files

- lib/i18n/locale/fallbacks.rb

### Parent

Hash

### Methods

- ::new
- #[]
- #compute
- #defaults=
- #map

### Class/Module Index

Quicksearch

- I18n
- I18n::ArgumentError
- I18n::Backend
- I18n::Backend::Base
- I18n::Backend::Cache
- I18n::Backend::Cascade
- I18n::Backend::Chain
- I18n::Backend::Chain::Implementation
- I18n::Backend::Fallbacks
- I18n::Backend::Flatten
- I18n::Backend::Gettext
- I18n::Backend::Gettext::PoData
- I18n::Backend::InterpolationCompiler
- I18n::Backend::InterpolationCompiler::Compiler
- I18n::Backend::KeyValue
- I18n::Backend::KeyValue::Implementation
- I18n::Backend::Memoize
- I18n::Backend::Metadata
- I18n::Backend::Pluralization
- I18n::Backend::Simple
- I18n::Backend::Simple::Implementation
- I18n::Config
- I18n::ExceptionHandler
- I18n::Gettext
- I18n::Gettext::Helpers
- I18n::InvalidLocale
- I18n::InvalidLocaleData
- I18n::InvalidPluralizationData
- I18n::Locale
- I18n::Locale::Fallbacks
- I18n::Locale::Tag
- I18n::Locale::Tag::Parents
- I18n::Locale::Tag::Rfc4646
- I18n::Locale::Tag::Rfc4646::Parser
- I18n::Locale::Tag::Simple
- I18n::MissingInterpolationArgument
- I18n::MissingTranslation
- I18n::MissingTranslation::Base
- I18n::MissingTranslationData
- I18n::ReservedInterpolationKey
- I18n::Tests
- I18n::Tests::Basics
- I18n::Tests::Defaults
- I18n::Tests::Link
- I18n::Tests::Localization
- I18n::Tests::Lookup
- I18n::Tests::Pluralization
- I18n::Tests::Procs
- I18n::UnknownFileType
- GetText
- GetText::PoParser
- Hash
- Kernel
- KeyError
- String

No matching classes.

# I18n::Locale::Fallbacks

### Attributes

defaults[R]

### Public Class Methods

new(*mappings) click to toggle source

    # File lib/i18n/locale/fallbacks.rb, line 56
    def initialize(*mappings)
      @map = {}
      map(mappings.pop) if mappings.last.is_a?(Hash)
      self.defaults = mappings.empty? ? [I18n.default_locale.to_sym] : mappings
    end

### Public Instance Methods

[](locale) click to toggle source

    # File lib/i18n/locale/fallbacks.rb, line 67
    def [](locale)
      raise InvalidLocale.new(locale) if locale.nil?
      locale = locale.to_sym
      super || store(locale, compute(locale))
    end

defaults=(defaults) click to toggle source

    # File lib/i18n/locale/fallbacks.rb, line 62
    def defaults=(defaults)
      @defaults = defaults.map { |default| compute(default, false) }.flatten
    end

map(mappings) click to toggle source

    # File lib/i18n/locale/fallbacks.rb, line 73
    def map(mappings)
      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
    end

### Protected Instance Methods

compute(tags, include_defaults = true, exclude = []) click to toggle source

    # File lib/i18n/locale/fallbacks.rb, line 85
    def compute(tags, include_defaults = true, exclude = [])
      result = Array(tags).collect 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.flatten
      result.push(*defaults) if include_defaults
      result.uniq.compact
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.