Class: Langulator::Untangler

Inherits:
Object
  • Object
show all
Defined in:
lib/langulator/untangler.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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, options = {})
  @aggregate = aggregate
  @languages = options[:languages]
end

Instance Attribute Details

#aggregateObject (readonly)

Returns the value of attribute aggregate.



3
4
5
# File 'lib/langulator/untangler.rb', line 3

def aggregate
  @aggregate
end

#languagesObject (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

Returns:

  • (Boolean)


30
31
32
# File 'lib/langulator/untangler.rb', line 30

def translations?(values)
  !values.keys.select {|key| languages.include?(key) }.empty?
end

#untangleObject



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