* 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]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15355 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
usa 2008-01-31 05:10:58 +00:00
Родитель ae8095e44d
Коммит d2bb8975e1
3 изменённых файлов: 40 добавлений и 10 удалений

Просмотреть файл

@ -1,3 +1,17 @@
Thu Jan 31 14:03:38 2008 NAKAMURA Usaku <usa@ruby-lang.org>
* 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@ruby-lang.org>
* common.mk (ext/extmk.rb, instruby.rb): inlined $(MAKE) so that can

Просмотреть файл

@ -136,16 +136,16 @@ class RDoc::RI::DefaultDisplay
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

Просмотреть файл

@ -346,7 +346,7 @@ Options may also be set in the 'RI' environment variable.
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 @@ Options may also be set in the 'RI' environment variable.
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)