class ReeRoda::BuildRoutingTree::RoutingTree

def print_proc_tree(tree = self)

def print_proc_tree(tree = self)
  param_value = tree.values[0].start_with?(":") ? String : "\"#{tree.values[0]}\""
  if tree.routes.length == 0
    if tree.children.length > 0
      puts "#{get_offset(tree.depth)}r.on #{param_value} do"
      tree.children.each do |child|
        print_proc_tree(child)
      end
      puts "#{get_offset(tree.depth)}end"
    end
    nil
  else
    if tree.children.length > 0
      puts "#{get_offset(tree.depth)}r.on #{param_value} do"
      tree.children.each do |child|
        print_proc_tree(child)
      end
      puts "#{get_offset(tree.depth + 1)}r.is do"
      tree.routes.each do |route|
        puts "#{get_offset(tree.depth + 2)}r.#{route.request_method} do"
        puts "#{get_offset(tree.depth + 2)}end"
      end
      puts "#{get_offset(tree.depth + 1)}end"
      puts "#{get_offset(tree.depth)}end"
    else
      puts "#{get_offset(tree.depth)}r.is #{param_value} do"
      puts "#{get_offset(tree.depth + 1)}r.is do"
      tree.routes.each do |route|
        puts "#{get_offset(tree.depth + 2)}r.#{route.request_method} do"
        puts "#{get_offset(tree.depth + 2)}end"
      end
      puts "#{get_offset(tree.depth + 1)}end"
      puts "#{get_offset(tree.depth)}end"
    end
  end
  nil
end