File: listpluginparameters.rb

package info (click to toggle)
webgen 0.3.8-3
  • links: PTS
  • area: main
  • in suites: lenny, squeeze
  • size: 1,912 kB
  • ctags: 586
  • sloc: ruby: 4,789; makefile: 9
file content (39 lines) | stat: -rw-r--r-- 984 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
require 'set'

module WebgenDocuPlugins

  class ListPluginParametersTag < Tags::DefaultTag

    summary "Lists all available plugin parameters"

    tag 'listPluginParameters'

    def initialize
      super
      @processOutput = false
    end

    def process_tag( tag, node, refNode )
      plugins = Webgen::Plugin.config.select {|k,v| k.name !~ /^WebgenDocuPlugins::/ }

      mydata = {}
      plugins.each do |klass, data|
        next if data.params.nil?
        (mydata[klass.name[/^.*?(?=::)/].gsub(/([A-Z][a-z])/, ' \1').strip] ||= []) << data
      end

      output = "<dl>\n"
      mydata.sort.each do |cat, plugins|
        output << "<dt>#{cat}</dt><dd><dl>"
        plugins.sort {|a,b| a.plugin <=> b.plugin}.each do |data|
          output << "<dt>#{data.plugin}</dt>\n"
          output << "<dd>#{Webgen::Plugin['DescribeTag'].format_params( data.params )}</dd>\n"
        end
        output << "</dl></dd>"
      end
      output << "</dl>\n"
    end

  end

end