I wrote a simple patch for the ri Ruby documentation viewer that makes
to easier to look up ambiguous methods. Please check it out and send
or post me feedback.
I had that ambiguous lookup problem yesterday!
This is great.
Here's a patch for your patch that (hopefully always) shows the version
of the gem which holds the method:
entries.each_with_index do |m, i|
version = m.path_name.split(File::SEPARATOR)[7]
STDOUT.puts "%2d %s (%s)" % [i+1, m.full_name, version]
end
Now can you make it work with qri?
Les
Thanks for the suggestion!
I tried your patch and it work right for me, I think because the Ruby
file paths are different on OS X than on your system.
I got the following output:
spartan:~ choi$ ri find
More than one method matched your request. Type the number
of the method you want, or press Return to cancel:
1 Enumerable#find (usr)
2 Find#find (usr)
3 IRB::Locale#find (usr)
4 Pathname#find (usr)
5 Rinda::TupleBag#find (usr)
6 XML:
ocument#find (usr)
7 XML::Node#find (usr)
8 XML::XPath::find (usr)
9 ActiveRecord::Base::find (usr)
10 ActiveRecord::Base::find (ri)
11 ActiveRecord::Base::find (ri)
12 ActiveSupport::Callbacks::CallbackChain#find (ri)
13 Daemons::Monitor::find (usr)
14 Daemons::Monitor::find (usr)
15 Daemons::Monitor::find (ri)
16 Gem::GemPathSearcher#find (usr)
17 ActiveResource::Base::find (ri)
18 Spec::Story::StepGroup#find (ri)
19 Spec::Story::StepMother#find (ri)
20 EnumerablePass#find (ri)
21 PathList::Finder#find (ri)
So I changed your patch a little to this:
entries.each_with_index do |m, i|
# Assume that a gem version is always formatted like 2.0.2
match_data = /-(\d+\.\d+\.\d+)/.match(m.path_name)
version_string = match_data ? " (#{match_data[1]})" : nil
STDOUT.puts "%2d %s%s" % [i+1, m.full_name, version_string]
end
Now the output is right:
spartan:~ choi$ ri find
More than one method matched your request. Type the number
of the method you want, or press Return to cancel:
1 Enumerable#find
2 Find#find
3 IRB::Locale#find
4 Pathname#find
5 Rinda::TupleBag#find
6 XML:
ocument#find (0.3.8)
7 XML::Node#find (0.3.8)
8 XML::XPath::find (0.3.8)
9 ActiveRecord::Base::find (1.15.6)
10 ActiveRecord::Base::find (2.0.2)
11 ActiveRecord::Base::find (2.1.0)
12 ActiveSupport::Callbacks::CallbackChain#find (2.1.0)
13 Daemons::Monitor::find (1.0.7)
14 Daemons::Monitor::find (1.0.9)
15 Daemons::Monitor::find (1.0.10)
16 Gem::GemPathSearcher#find (1.0.1)
17 ActiveResource::Base::find (2.0.2)
18 Spec::Story::StepGroup#find (1.1.4)
19 Spec::Story::StepMother#find (1.1.4)
20 EnumerablePass#find (2.4.1)
21 PathList::Finder#find (2.4.1)
Please let me know if this works on your system too. I'm going to add
this to my patch and credit you. Thanks Les,
Dan