Upgraded Rails and RSpec
[monkeycharger.git] / vendor / plugins / rspec / doc / plugin / breadcrumbs.rb
blob5496fbac3833c731964b91e54f9559d602496477
1 require 'webgen/plugins/menustyles/default'
2 load_plugin 'webgen/plugins/menustyles/default'
4 module RSpec
5   class BreadcrumbsMenuStyle < MenuStyles::DefaultMenuStyle
7     infos( :name => 'MenuStyle/Breadcrumbs',
8            :author => 'Aslak Hellesoy',
9            :summary => "Plugin for RSpec.rubyforge.org's menu"
10            )
12     register_handler 'breadcrumbs'
14     def internal_build_menu( src_node, menu_tree )
15       out = "<div class=\"breadcrumbs\">\n  <ul>\n"
16       crumbs = trail(src_node, menu_tree.node_info[:node])
17       last_span = false
18       crumbs.each do |node|
19         unless last_span
20           link = node.link_from(src_node)
21           last_span = link =~ /<span>/
22           li = last_span ? '<li class="selected">' : '<li>'
23           out << "    #{li}#{link}</li>\n"
24         end
25       end
26       out << "  </ul>\n</div>\n"
27       out << "<div class=\"menu\">\n  <ul>\n"
28       if src_node.to_url.to_s =~ /index\.html/
29         src_node.parent.each do |node|
30           if !(node.to_url.to_s =~ /\.template$|\.page$|\.css$|images/) && src_node.to_url != node.to_url
31             link = node.link_from( src_node )
32             out << "    <li>#{link}</li>\n"
33           end
34         end
35       end
36       out << "  </ul>\n</div>\n"
37       out
38     end
40     def trail(node, root_node)
41       nodes = []
42       until node.parent.nil?
43         nodes << node
44         node = node.parent 
45       end
46       nodes << root_node
47       nodes.reverse
48     end
49   end
50 end