Sha256: 0af7b6172c3ee840fdf636bddd85697176af672694ef8db9c50bc07510563530

Contents?: true

Size: 1.11 KB

Versions: 57

Compression:

Stored size: 1.11 KB

Contents

# Injects localization data into master data, so the page can be showed in the correct localization
class Promethee::Data::MasterLocalized < Promethee::Data
  def initialize(master, localization = nil)
    @data = hashify master
    if localization
      @localization = Localization.new localization
      localize_component @data
    end
  end

  protected

  def localize_component(component)
    localize_component_attributes component if component.include?(:attributes)
    localize_component_children component if component.include?(:children)
  end

  def localize_component_attributes(component)
    localized_component = find_localized_component component[:id]
    return if (localized_component.nil? || !localized_component.include?(:attributes))
    component[:attributes].merge! localized_component[:attributes]
  end

  def localize_component_children(component)
    component[:children].each { |child| localize_component child }
  end

  def find_localized_component(id)
    return if @localization.nil? || !@localization.include?(:components)
    @localization[:components].find { |component| component[:id] == id }
  end
end

Version data entries

57 entries across 57 versions & 1 rubygems

Version Path
promethee-1.11.29 lib/promethee/data/master_localized.rb
promethee-1.11.28 lib/promethee/data/master_localized.rb
promethee-1.11.27 lib/promethee/data/master_localized.rb
promethee-1.11.26 lib/promethee/data/master_localized.rb
promethee-1.11.25 lib/promethee/data/master_localized.rb
promethee-1.11.24 lib/promethee/data/master_localized.rb
promethee-1.11.23 lib/promethee/data/master_localized.rb
promethee-1.11.22 lib/promethee/data/master_localized.rb
promethee-1.11.21 lib/promethee/data/master_localized.rb
promethee-1.11.20 lib/promethee/data/master_localized.rb
promethee-1.11.19 lib/promethee/data/master_localized.rb
promethee-1.11.18 lib/promethee/data/master_localized.rb
promethee-1.11.17 lib/promethee/data/master_localized.rb
promethee-1.11.16 lib/promethee/data/master_localized.rb
promethee-1.11.15 lib/promethee/data/master_localized.rb
promethee-1.11.14 lib/promethee/data/master_localized.rb
promethee-1.11.13 lib/promethee/data/master_localized.rb
promethee-1.11.12 lib/promethee/data/master_localized.rb
promethee-1.11.11 lib/promethee/data/master_localized.rb
promethee-1.11.10 lib/promethee/data/master_localized.rb