Class: Langulator::Untangler
- Inherits:
-
Object
- Object
- Langulator::Untangler
- Defined in:
- lib/langulator/untangler.rb
Instance Attribute Summary collapse
-
#aggregate ⇒ Object
readonly
Returns the value of attribute aggregate.
-
#languages ⇒ Object
readonly
Returns the value of attribute languages.
Instance Method Summary collapse
- #extract(language, tangled) ⇒ Object
-
#initialize(aggregate, options = {}) ⇒ Untangler
constructor
A new instance of Untangler.
- #translations?(values) ⇒ Boolean
- #untangle ⇒ Object
Constructor Details
#initialize(aggregate, options = {}) ⇒ Untangler
Returns a new instance of Untangler.
4 5 6 7 |
# File 'lib/langulator/untangler.rb', line 4 def initialize(aggregate, = {}) @aggregate = aggregate @languages = [:languages] end |
Instance Attribute Details
#aggregate ⇒ Object (readonly)
Returns the value of attribute aggregate.
3 4 5 |
# File 'lib/langulator/untangler.rb', line 3 def aggregate @aggregate end |
#languages ⇒ Object (readonly)
Returns the value of attribute languages.
3 4 5 |
# File 'lib/langulator/untangler.rb', line 3 def languages @languages end |
Instance Method Details
#extract(language, tangled) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/langulator/untangler.rb', line 17 def extract(language, tangled) untangled = {} tangled.keys.each do |key| values = tangled[key] if translations?(values) untangled[key] = values[language] else untangled[key] = extract(language, values) end end untangled end |
#translations?(values) ⇒ Boolean
30 31 32 |
# File 'lib/langulator/untangler.rb', line 30 def translations?(values) !values.keys.select {|key| languages.include?(key) }.empty? end |
#untangle ⇒ Object
9 10 11 12 13 14 15 |
# File 'lib/langulator/untangler.rb', line 9 def untangle untangled = {} languages.each do |language| untangled[language] = extract(language, aggregate) end untangled end |