1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Add simple formatter to ri

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6909 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
dave 2004-09-14 14:49:19 +00:00
parent e02f79dfe9
commit f2ff67952f
3 changed files with 76 additions and 15 deletions

View file

@ -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 16:59:37 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
* ext/tcltklib/tcltklib.c: fix SEGV
@ -45,6 +50,7 @@ Sun Sep 12 02:41:58 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
* ext/tcltklib/tcltklib.c: add TclTkIp#allow_ruby_exit? and
allow_ruby_exit=
* ext/tk/lib/multi-tk.rb: ditto.
* ext/tk/lib/remote-tk.rb: ditto.

View file

@ -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

View file

@ -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