Class: FastGettext::TranslationRepository::Chain

Inherits:
Base
  • Object
show all
Defined in:
lib/fast_gettext/translation_repository/chain.rb

Overview

Responsibility:

- delegate calls to members of the chain in turn

TODO cache should be expired after a repo was added

Instance Attribute Summary collapse

Attributes inherited from Base

#name, #options

Instance Method Summary collapse

Constructor Details

#initialize(name, options = {}) ⇒ Chain

Returns a new instance of Chain.



13
14
15
16
# File 'lib/fast_gettext/translation_repository/chain.rb', line 13

def initialize(name, options = {})
  super
  self.chain = options[:chain]
end

Instance Attribute Details

#chainObject

Returns the value of attribute chain.



11
12
13
# File 'lib/fast_gettext/translation_repository/chain.rb', line 11

def chain
  @chain
end

Instance Method Details

#[](key) ⇒ Object



31
32
33
34
35
36
37
38
# File 'lib/fast_gettext/translation_repository/chain.rb', line 31

def [](key)
  chain.each do |c|
    if result = c[key]
      return result
    end
  end
  nil
end

#available_localesObject



18
19
20
# File 'lib/fast_gettext/translation_repository/chain.rb', line 18

def available_locales
  chain.map(&:available_locales).flatten.uniq
end

#plural(*keys) ⇒ Object



40
41
42
43
44
45
46
# File 'lib/fast_gettext/translation_repository/chain.rb', line 40

def plural(*keys)
  chain.each do |c|
    result = c.plural(*keys)
    return result unless result.compact.empty?
  end
  []
end

#pluralisation_ruleObject



22
23
24
25
26
27
28
29
# File 'lib/fast_gettext/translation_repository/chain.rb', line 22

def pluralisation_rule
  chain.each do |c|
    if result = c.pluralisation_rule
      return result
    end
  end
  nil
end

#reloadObject



48
49
50
51
# File 'lib/fast_gettext/translation_repository/chain.rb', line 48

def reload
  chain.each(&:reload)
  super
end