ruby-changes:3866
From: ko1@a...
Date: Thu, 31 Jan 2008 14:11:12 +0900 (JST)
Subject: [ruby-changes:3866] usa - Ruby:r15355 (trunk): * lib/rdoc/ri/display.rb (display_method_list, display_class_list):
usa 2008-01-31 14:10:58 +0900 (Thu, 31 Jan 2008)
New Revision: 15355
Modified files:
trunk/ChangeLog
trunk/lib/rdoc/ri/display.rb
trunk/lib/rdoc/ri/driver.rb
Log:
* lib/rdoc/ri/display.rb (display_method_list, display_class_list):
use @formatter.raw_print_line instead of puts.
* lib/rdoc/ri/driver.rb (select_methods): new method to collect all
instance/class methods which match with passed pattern.
* lib/rdoc/ri/driver.rb (run): use class_cache's result directly
instead of select_classes' because it's removed now.
* lib/rdoc/ri/driver.rb (run): search methods when passed name is not
class name. [ruby-core:15309]
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/rdoc/ri/driver.rb?r1=15355&r2=15354&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=15355&r2=15354&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/rdoc/ri/display.rb?r1=15355&r2=15354&diff_format=u
Index: ChangeLog
===================================================================
--- ChangeLog (revision 15354)
+++ ChangeLog (revision 15355)
@@ -1,3 +1,17 @@
+Thu Jan 31 14:03:38 2008 NAKAMURA Usaku <usa@r...>
+
+ * lib/rdoc/ri/display.rb (display_method_list, display_class_list):
+ use @formatter.raw_print_line instead of puts.
+
+ * lib/rdoc/ri/driver.rb (select_methods): new method to collect all
+ instance/class methods which match with passed pattern.
+
+ * lib/rdoc/ri/driver.rb (run): use class_cache's result directly
+ instead of select_classes' because it's removed now.
+
+ * lib/rdoc/ri/driver.rb (run): search methods when passed name is not
+ class name. [ruby-core:15309]
+
Thu Jan 31 08:31:19 2008 Nobuyoshi Nakada <nobu@r...>
* common.mk (ext/extmk.rb, instruby.rb): inlined $(MAKE) so that can
Index: lib/rdoc/ri/display.rb
===================================================================
--- lib/rdoc/ri/display.rb (revision 15354)
+++ lib/rdoc/ri/display.rb (revision 15355)
@@ -136,16 +136,16 @@
def display_method_list(methods)
page do
- puts "More than one method matched your request. You can refine"
- puts "your search by asking for information on one of:\n\n"
+ @formatter.raw_print_line("More than one method matched your request. You can refine")
+ @formatter.raw_print_line("your search by asking for information on one of:\n\n")
@formatter.wrap(methods.map {|m| m.full_name} .join(", "))
end
end
def display_class_list(namespaces)
page do
- puts "More than one class or module matched your request. You can refine"
- puts "your search by asking for information on one of:\n\n"
+ @formatter.raw_print_line("More than one class or module matched your request. You can refine")
+ @formatter.raw_print_line("your search by asking for information on one of:\n\n")
@formatter.wrap(namespaces.map {|m| m.full_name}.join(", "))
end
end
Index: lib/rdoc/ri/driver.rb
===================================================================
--- lib/rdoc/ri/driver.rb (revision 15354)
+++ lib/rdoc/ri/driver.rb (revision 15355)
@@ -346,7 +346,7 @@
def run
if @names.empty? then
- @display.list_known_classes select_classes
+ @display.list_known_classes class_cache.keys.sort
else
@names.each do |name|
case name
@@ -371,17 +371,33 @@
if class_cache.key? name then
display_class name
else
- @display.list_known_classes select_classes(/^#{name}/)
+ methods = select_methods(/^#{name}/)
+ if methods.size == 0
+ abort "Nothing known about #{name}"
+ elsif methods.size == 1
+ @display.display_method_info methods.first
+ else
+ @display.display_method_list methods
+ end
end
end
end
end
end
- def select_classes(pattern = nil)
- classes = class_cache.keys.sort
- classes = classes.grep pattern if pattern
- classes
+ def select_methods(pattern)
+ methods = []
+ class_cache.keys.sort.each do |klass|
+ class_cache[klass]["instance_methods"].map{|h|h["name"]}.grep(pattern) do |name|
+ method = load_cache_for(klass)[klass+'#'+name]
+ methods << method if method
+ end
+ class_cache[klass]["class_methods"].map{|h|h["name"]}.grep(pattern) do |name|
+ method = load_cache_for(klass)[klass+'::'+name]
+ methods << method if method
+ end
+ end
+ methods
end
def write_cache(cache, path)
--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/