Sha256: 7299d745fdbe312dd349a5cbba3881ee4e53cd6b63e69c869e6b7d6e424309ed

Contents?: true

Size: 571 Bytes

Versions: 3

Compression:

Stored size: 571 Bytes

Contents

class SiteMap

  def self.rebuild(tree)
    set_children_for(tree.first['id'], tree.first['children'])
  end

  def permalink
    '{root}'
  end

  def self.set_children_for(parent_id, data)
    parent = Page.find(parent_id)
    data.each_with_index do |child_data, i|
      child = Page.find(child_data['id'])
      child.position = i
      child.parent = parent
      child.path = child.generate_path
      child.save!
      set_children_for(child_data['id'], child_data['children']) if child_data['children']
    end
  end
  private_class_method :set_children_for
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
slices-2.0.2 app/models/site_map.rb
slices-2.0.1 app/models/site_map.rb
slices-2.0.0 app/models/site_map.rb