aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordave <dave@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-09-14 14:49:19 +0000
committerdave <dave@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-09-14 14:49:19 +0000
commit0964c4781652bcdfcf940017722164d2effc69ee (patch)
tree41697e222662b668abbb8355cfa504147d659401
parentd4e341c43d435c42a9da85beb1c999b721c9dffb (diff)
downloadruby-0964c4781652bcdfcf940017722164d2effc69ee.tar.gz
Add simple formatter to ri
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6909 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog6
-rw-r--r--lib/rdoc/README5
-rw-r--r--lib/rdoc/ri/ri_formatter.rb80
3 files changed, 76 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index 37c816a405..a1c6014b28 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Tue Sep 14 23:45:44 2004 Dave Thomas <dave@pragprog.com>
+
+ * lib/rdoc/ri/ri_formatter.rb (RI::TextFormatter::TextFormatter.for):
+ Add Eric Hodel's simpleformatter.
+
Tue Sep 14 22:11:08 2004 Minero Aoki <aamine@loveruby.net>
* parse.y [ripper]: Add rdoc.
@@ -46,6 +51,7 @@ Tue Sep 14 16:59:37 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
* ext/tk/sample/safe-tk.rb: new sample script
+
Mon Sep 13 21:33:40 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
* ext/openssl/ossl_x509name.c (ossl_x509name_to_s): add optional
diff --git a/lib/rdoc/README b/lib/rdoc/README
index cfc99cb50f..5e90d792a2 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 63c12aaced..25bd3000f9 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