class Promethee::Data::MasterLocalized

Injects localization data into master data, so the page can be showed in the correct localization

Public Class Methods

new(master, localization = nil) click to toggle source
# File lib/promethee/data/master_localized.rb, line 3
def initialize(master, localization = nil)
  @data = hashify master
  if localization
    @localization = Localization.new localization
    localize_component @data
  end
end

Protected Instance Methods

find_localized_component(id) click to toggle source
# File lib/promethee/data/master_localized.rb, line 30
def find_localized_component(id)
  return if @localization.nil? || !@localization.include?(:components)
  @localization[:components].find { |component| component[:id] == id }
end
localize_component(component) click to toggle source
# File lib/promethee/data/master_localized.rb, line 13
def localize_component(component)
  localize_component_attributes component if component.include?(:attributes)
  localize_component_children component if component.include?(:children)
end
localize_component_attributes(component) click to toggle source
# File lib/promethee/data/master_localized.rb, line 18
def localize_component_attributes(component)
  localized_component = find_localized_component component[:id]
  return if (localized_component.nil? || !localized_component.include?(:attributes))
  component[:attributes].deep_merge_existing_keys! localized_component[:attributes]
end
localize_component_children(component) click to toggle source
# File lib/promethee/data/master_localized.rb, line 26
def localize_component_children(component)
  component[:children].each { |child| localize_component child }
end