class Tr8n::SiteMap

Public Class Methods

roots() click to toggle source
# File lib/tr8n/site_map.rb, line 27
def self.roots
  @roots ||= begin
    roots = [] 
    Tr8n::Config.sitemap_sections.each do |root_section|
      root_node = Tr8n::SiteMapSection.new(root_section)
      generate_sitemap_sections(root_section[:sections], root_node)
      roots << root_node
    end
    roots
  end
end
section_for_key(key) click to toggle source
# File lib/tr8n/site_map.rb, line 47
def self.section_for_key(key)
  sections = []
  roots.each do |root|
    find_sections_by_key(root, key, sections)
  end
  sections.empty? ? nil : sections.first
end
section_for_source(source) click to toggle source
# File lib/tr8n/site_map.rb, line 39
def self.section_for_source(source)
  sections = []
  roots.each do |root|
    find_sections_by_source(root, source, sections)
  end  
  sections.empty? ? nil : sections.first
end
to_s() click to toggle source
# File lib/tr8n/site_map.rb, line 55
def self.to_s
  roots.each do |root| 
    pp root.to_hash
  end
end

Private Class Methods

find_sections_by_key(node, key, sections) click to toggle source
# File lib/tr8n/site_map.rb, line 79
def self.find_sections_by_key(node, key, sections)
  sections << node if node.key == key
  node.children.each do |child|
    find_sections_by_key(child, key, sections)
  end
end
find_sections_by_source(node, source, sections) click to toggle source
# File lib/tr8n/site_map.rb, line 71
def self.find_sections_by_source(node, source, sections)
  sections << node if node.source == source
  node.children.each do |child|
    find_sections_by_source(child, source, sections)
  end
  nil
end
generate_sitemap_sections(sub_sections, parent) click to toggle source
# File lib/tr8n/site_map.rb, line 63
def self.generate_sitemap_sections(sub_sections, parent)
  return if sub_sections.blank? or sub_sections.empty?
  sub_sections.each do |sub_section|
    node = Tr8n::SiteMapSection.new(sub_section, parent)
    generate_sitemap_sections(sub_section[:sections], node)
  end
end