I’m a big fan of the Firefox keyword search. For example I have
keywords for LEO, Wikipedia and Man pages. Sometimes I
want to look up API documentation in Ruby and typing ri camelize
into the address bar and viewing the documentation as web page seems
to be quite natural for me. So I wrote a quick and dirty cgi, which
calls RI and outputs HTML.
I’ve put the following code in file named
/usr/lib/cgi-bin/ri.b. This is the default location for cgi scripts
on my system for Apache.
- #!/usr/bin/env ruby
- require 'rdoc/ri/ri_driver'
- require 'rubygems'
- print "Content-type: text/html\r\n\r\n"
- ARGV << '-f' << 'html'
- ri = RiDriver.new
- print '<html><body style="width:600px; margin:auto; padding:20px">'
- ri.process_args
- print '</body></html>'
This script does the same thing as if you typed ri somequery -f
html. I put some HTML around it to give it some style, but that’s it.
So I want to type ri String.capitalize and the browser should send a
request to http://localhost/cgi-bin/ri.rb?String.capitalize.
Just add a new bookmark and give it the keyword ri and use as url
this one:
http://localhost/cgi-bin/ri.rb?%s
Now we’re done. One thing I would like to improve is to add hyperlinks to the output. For example viewing the documentation of a class brings up all documented methods. Each of them should be a link to the actual documentation. Probably some monkey patching on the HtmlFormatter class would do the job.