summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/irb/completion.rb3
-rw-r--r--test/irb/test_completion.rb5
2 files changed, 7 insertions, 1 deletions
diff --git a/lib/irb/completion.rb b/lib/irb/completion.rb
index c7c0fb99eb..385957c3f1 100644
--- a/lib/irb/completion.rb
+++ b/lib/irb/completion.rb
@@ -296,7 +296,8 @@ module IRB
candidates.uniq!
end
if doc_namespace
- "#{rec.class.name}#{sep}#{candidates.find{ |i| i == message }}"
+ rec_class = rec.is_a?(Module) ? rec : rec.class
+ "#{rec_class.name}#{sep}#{candidates.find{ |i| i == message }}"
else
select_message(receiver, message, candidates, sep)
end
diff --git a/test/irb/test_completion.rb b/test/irb/test_completion.rb
index 260b8a8892..a661d68c59 100644
--- a/test/irb/test_completion.rb
+++ b/test/irb/test_completion.rb
@@ -89,5 +89,10 @@ module TestIRB
assert_include(IRB::InputCompletor.retrieve_completion_data("str_examp", bind: binding), "str_example")
assert_equal(IRB::InputCompletor.retrieve_completion_data("str_example", bind: binding, doc_namespace: true), "String")
end
+
+ def test_complete_class_method
+ assert_include(IRB::InputCompletor.retrieve_completion_data("String.new", bind: binding), "String.new")
+ assert_equal(IRB::InputCompletor.retrieve_completion_data("String.new", bind: binding, doc_namespace: true), "String.new")
+ end
end
end