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