def generate_class_list @items = options.objects.select{|o| [:module, :class, :root].include? o.type} if options.objects @list_title = "Class List" @list_type = "class" generate_list_contents end def generate_puppet_manifest_list @items = options.objects.select{|o| [:hostclass, :definedtype].include? o.type} if options.objects @list_title = "Puppet Manifest List" # This is important. It causes some YARD JavaScript bits to hook in and # perform the correct formatting. @list_class = "class" @list_type = "puppet_manifest" generate_list_contents end def generate_puppet_plugin_list # NOTE: PuppetNamaspaceObject might eventually be used for more than just a # container for plugins... @items = options.objects.select{|o| [:puppetnamespace].include? o.type} if options.objects @list_title = "Puppet Plugin List" # This is important. It causes some YARD JavaScript bits to hook in and # perform the correct formatting. @list_class = "class" @list_type = "puppet_plugin" generate_list_contents end # A hacked version of class_list that can be instructed to only display certain # namespace types. This allows us to separate Puppet bits from Ruby bits. def namespace_list(opts = {}) o = { :root => Registry.root, :namespace_types => [:module, :class] }.merge(opts) root = o[:root] namespace_types = o[:namespace_types] out = "" children = run_verifier(root.children) if root == Registry.root children += @items.select {|o| o.namespace.is_a?(CodeObjects::Proxy) } end children.reject {|c| c.nil? }.sort_by {|child| child.path }.map do |child| if namespace_types.include? child.type name = child.namespace.is_a?(CodeObjects::Proxy) ? child.path : child.name has_children = child.respond_to?(:children) && run_verifier(child.children).any? {|o| o.is_a?(CodeObjects::NamespaceObject) } out << "<li>" out << "<a class='toggle'></a> " if has_children out << linkify(child, name) out << " < #{child.superclass.name}" if child.is_a?(CodeObjects::ClassObject) && child.superclass out << "<small class='search_info'>" out << child.namespace.title out << "</small>" out << "</li>" out << "<ul>#{namespace_list(:root => child, :namespace_types => namespace_types)}</ul>" if has_children end end out end