diff options
author | dave <dave@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-09-14 14:49:19 +0000 |
---|---|---|
committer | dave <dave@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-09-14 14:49:19 +0000 |
commit | c001a7b8fbc4b59aec77266512a6a65846e9ce07 (patch) | |
tree | 41697e222662b668abbb8355cfa504147d659401 /lib | |
parent | 198126bded51bce24ebaca53246deb9b62a988da (diff) | |
download | ruby-c001a7b8fbc4b59aec77266512a6a65846e9ce07.tar.gz ruby-c001a7b8fbc4b59aec77266512a6a65846e9ce07.tar.xz ruby-c001a7b8fbc4b59aec77266512a6a65846e9ce07.zip |
Add simple formatter to ri
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@6909 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
-rw-r--r-- | lib/rdoc/README | 5 | ||||
-rw-r--r-- | lib/rdoc/ri/ri_formatter.rb | 80 |
2 files changed, 70 insertions, 15 deletions
diff --git a/lib/rdoc/README b/lib/rdoc/README index cfc99cb50..5e90d792a 100644 --- a/lib/rdoc/README +++ b/lib/rdoc/README @@ -164,7 +164,10 @@ Options are: include line numbers in the source code [<tt>--main</tt> _name_] - set the class, module, or file to appear on the index page + the class of module _name_ will appear on the index page. If you + want to set a particular file as a main page (a README, for + example) simply specifiy its name as the first on the command + line. [<tt>--merge</tt>] when generating _ri_ output, if classes being processed already diff --git a/lib/rdoc/ri/ri_formatter.rb b/lib/rdoc/ri/ri_formatter.rb index 63c12aace..25bd3000f 100644 --- a/lib/rdoc/ri/ri_formatter.rb +++ b/lib/rdoc/ri/ri_formatter.rb @@ -1,20 +1,6 @@ module RI class TextFormatter - def TextFormatter.list - "plain, html, bs, ansi" - end - - def TextFormatter.for(name) - case name - when /plain/i then TextFormatter - when /html/i then HtmlFormatter - when /bs/i then OverstrikeFormatter - when /ansi/i then AnsiFormatter - else nil - end - end - attr_reader :indent def initialize(options, indent) @@ -594,6 +580,72 @@ module RI end end + + ################################################## + + # This formatter reduces extra lines for a simpler output. + # It improves way output looks for tools like IRC bots. + + class SimpleFormatter < TextFormatter + + ###################################################################### + + # No extra blank lines + + def blankline + end + + ###################################################################### + + # Display labels only, no lines + + def draw_line(label=nil) + unless label.nil? then + bold_print(label) + puts + end + end + + ###################################################################### + + # Place heading level indicators inline with heading. + + def display_heading(text, level, indent) + case level + when 1 + puts "= " + text.upcase + when 2 + puts "-- " + text + else + print indent, text, "\n" + end + end + + end + + + # Finally, fill in the list of known formatters + + class TextFormatter + + FORMATTERS = { + "ansi" => AnsiFormatter, + "bs" => OverstrikeFormatter, + "html" => HtmlFormatter, + "plain" => TextFormatter, + "simple" => SimpleFormatter, + } + + def TextFormatter.list + FORMATTERS.keys.sort.join(", ") + end + + def TextFormatter.for(name) + FORMATTERS[name.downcase] + end + + end + end |