summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog20
-rw-r--r--Makefile.in10
-rwxr-xr-xbin/ri2
-rw-r--r--lib/.document27
-rw-r--r--lib/rdoc/parsers/parse_rb.rb5
-rw-r--r--lib/rdoc/ri/ri_options.rb75
-rw-r--r--lib/test/unit.rb9
7 files changed, 108 insertions, 40 deletions
diff --git a/ChangeLog b/ChangeLog
index 7a7ce4d673..1b77e5e5fd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,23 @@
+Tue Jan 6 06:37:53 2004 Dave Thomas <dave@pragprog.com>
+
+ * bin/rdoc: Add --ri-system switch
+
+ * lib/.document: Update with list of files that seem to have
+ documentation
+
+ * lib/test/unit.rb: Reorder comment to make it RDoc friendly.
+
+ * Makefile.in: add install-nodoc target, and make it
+ generate RDoc on default install.
+
+ * lib/rdoc/ri/ri_options.rb (RI::Options::parse): Add
+ --doc-dir option to ri.
+
+Tue Jan 6 00:04:40 2004 Dave Thomas <dave@pragprog.com>
+
+ * lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_method_or_yield_parameters):
+ fix parsing if there are braces in a method parameter list
+
Tue Jan 6 01:01:04 2004 NAKAMURA Usaku <usa@ruby-lang.org>
* win32/dir.h, win32/win32.c: fix patch miss.
diff --git a/Makefile.in b/Makefile.in
index 1a9179dda1..6e8cd18b42 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -139,7 +139,9 @@ ruby.imp: $(LIBRUBY_A)
@@NM@ -Pgp $(LIBRUBY_A) | awk 'BEGIN{print "#!"}; $$2~/^[BD]$$/{print $$1}' | sort -u -o $@
# $(MINIRUBY) $< $@
-install: rbconfig.rb
+install: install-nodoc rdoc
+
+install-nodoc: rbconfig.rb
$(MINIRUBY) $(srcdir)/instruby.rb $(SCRIPT_ARGS) --mantype="$(MANTYPE)"
$(MINIRUBY) $(srcdir)/ext/extmk.rb $(SCRIPT_ARGS) install
@@ -147,6 +149,10 @@ what-where no-install: rbconfig.rb
$(MINIRUBY) $(srcdir)/instruby.rb -n $(SCRIPT_ARGS) --mantype="$(MANTYPE)"
$(MINIRUBY) $(srcdir)/ext/extmk.rb -n $(SCRIPT_ARGS) install
+rdoc:
+ @echo Generating RDoc documentation
+ $(MINIRUBY) -I lib bin/rdoc --all --ri-system
+
clean-ext:
@-$(MINIRUBY) $(srcdir)/ext/extmk.rb $(SCRIPT_ARGS) clean 2> /dev/null || true
@@ -198,7 +204,7 @@ Makefile: $(srcdir)/Makefile.in
.PRECIOUS: @MAKEFILES@
-.PHONY: test
+.PHONY: test install install-nodoc rdoc
PHONY:
diff --git a/bin/ri b/bin/ri
index 498850027d..49d8849974 100755
--- a/bin/ri
+++ b/bin/ri
@@ -28,7 +28,7 @@ class RiDisplay
def initialize
@options = RI::Options.instance
@options.parse
- paths = RI::Paths::PATH
+ paths = @options.paths || RI::Paths::PATH
if paths.empty?
$stderr.puts "No ri documentation found in:"
[ RI::Paths::SYSDIR, RI::Paths::SITEDIR, RI::Paths::HOMEDIR].each do |d|
diff --git a/lib/.document b/lib/.document
index dc9eab9a8d..d01d7d7f8f 100644
--- a/lib/.document
+++ b/lib/.document
@@ -1,4 +1,29 @@
# We only run RDoc on the top-level files in here: we skip
# all the helper stuff in sub-directories
-*.rb \ No newline at end of file
+# Eventually, we hope to see...
+# *.rb
+
+# But for now
+
+benchmark.rb
+cgi.rb
+complex.rb
+date.rb
+fileutils.rb
+find.rb
+generator.rb
+logger.rb
+matrix.rb
+observer.rb
+optionparser.rb
+pathname.rb
+set.rb
+shellwords.rb
+singleton.rb
+tempfile.rb
+test/unit.rb
+thread.rb
+thwait.rb
+time.rb
+yaml.rb \ No newline at end of file
diff --git a/lib/rdoc/parsers/parse_rb.rb b/lib/rdoc/parsers/parse_rb.rb
index b8044c119b..d050829915 100644
--- a/lib/rdoc/parsers/parse_rb.rb
+++ b/lib/rdoc/parsers/parse_rb.rb
@@ -1997,8 +1997,11 @@ module RDoc
case tk
when TkSEMICOLON
break
+ when TkLBRACE
+ nest += 1
when TkRBRACE
- break
+ nest -= 1
+ break if nest <= 0
when TkLPAREN, TkfLPAREN
nest += 1
when end_token
diff --git a/lib/rdoc/ri/ri_options.rb b/lib/rdoc/ri/ri_options.rb
index fe323ed45f..f0ba69f4d3 100644
--- a/lib/rdoc/ri/ri_options.rb
+++ b/lib/rdoc/ri/ri_options.rb
@@ -25,6 +25,9 @@ module RI
# the formatting we apply to the output
attr_reader :formatter
+ # the directory we search for original documentation
+ attr_reader :doc_dir
+
module OptionList
OPTION_LIST = [
@@ -34,12 +37,16 @@ module RI
[ "--classes", "-c", nil,
"Display the names of classes and modules we\n" +
"know about"],
+
+ [ "--doc-dir", "-d", "<dirname>",
+ "A directory to search for documentation. If not\n"+
+ "specified, we search the standard rdoc/ri directories."],
[ "--format", "-f", "<name>",
"Format to use when displaying output:\n" +
" " + RI::TextFormatter.list + "\n" +
"Use 'bs' (backspace) with most pager programs.\n" +
- "To use ANSI, either also use the -T option, or\n\n" +
+ "To use ANSI, either also use the -T option, or\n" +
"tell your pager to allow control characters\n" +
"(for example using the -R option to less)"],
@@ -116,54 +123,56 @@ module RI
ri 'Array.[]'
ri compact\\!
- EOT
-
- if short_form
- puts "For help on options, type 'ri -h'"
- puts "For a list of classes I know about, type 'ri -c'"
- else
- puts "Options:\n\n"
- OPTION_LIST.each do |long, short, arg, desc|
- opt = sprintf("%20s", "#{long}, #{short}")
- oparg = sprintf("%-7s", arg)
- print "#{opt} #{oparg}"
- desc = desc.split("\n")
- if arg.nil? || arg.length < 7
- puts desc.shift
- else
+ EOT
+
+ if short_form
+ puts "For help on options, type 'ri -h'"
+ puts "For a list of classes I know about, type 'ri -c'"
+ else
+ puts "Options:\n\n"
+ OPTION_LIST.each do|long, short, arg, desc|
+ opt = sprintf("%15s", "#{long}, #{short}")
+ if arg
+ opt << " " << arg
+ end
+ print opt
+ desc = desc.split("\n")
+ if opt.size < 17
+ print " "*(18-opt.size)
+ puts desc.shift
+ else
+ puts
+ end
+ desc.each do |line|
+ puts(" "*18 + line)
+ end
puts
end
- desc.each do |line|
- puts(" "*28 + line)
- end
- puts
+ exit 0
end
-
- exit 0
end
end
- end
-
# Parse command line options.
def parse
-
+
@use_stdout = !STDOUT.tty?
@width = 72
@formatter = RI::TextFormatter.for("plain")
- @list_classes = false
+ @list_classes = false
begin
-
+
go = GetoptLong.new(*OptionList.options)
go.quiet = true
-
+
go.each do |opt, arg|
case opt
when "--help" then OptionList.usage
when "--no-pager" then @use_stdout = true
when "--classes" then @list_classes = true
+ when "--doc-dir" then @doc_dir = arg
when "--format"
@formatter = RI::TextFormatter.for(arg)
@@ -181,12 +190,18 @@ module RI
end
end
end
-
+
rescue GetoptLong::InvalidOption, GetoptLong::MissingArgument => error
OptionList.error(error.message)
-
+
end
end
+
+ # Return the doc_dir as an array, or nil if no overriding doc dir was given
+ def paths
+ @doc_dir ? [ @doc_dir ] : nil
+ end
end
+
end
diff --git a/lib/test/unit.rb b/lib/test/unit.rb
index 7d2c464500..a784359136 100644
--- a/lib/test/unit.rb
+++ b/lib/test/unit.rb
@@ -1,3 +1,6 @@
+require 'test/unit/testcase'
+require 'test/unit/autorunner'
+
# = Test::Unit - Ruby Unit Testing Framework
#
# == Introduction
@@ -255,12 +258,8 @@
# missing points, etc., in this document (or any other).
-
-
-require 'test/unit/testcase'
-require 'test/unit/autorunner'
-
module Test
+ # For documentation, see module Test
module Unit
def self.run=(flag)
@run = flag