Sha256: 298664a796201d899299dbabd88bdb0931fd1f49336cf8a681b2d476a2efffd8

Contents?: true

Size: 1.16 KB

Versions: 2

Compression:

Stored size: 1.16 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
    localize_component_children component
  end

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

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

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

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
promethee-1.7.1 lib/promethee/data/master_localized.rb
promethee-1.7.0 lib/promethee/data/master_localized.rb