| require 'rdoc' | |
| class DLTKRi < RDoc::RI::Driver | |
| def display_name name | |
| out = RDoc::Markup::Document.new | |
| add_method out, name | |
| puts (out.accept formatter(RDoc::Markup::ToAnsi.new)) | |
| end | |
| end | |
| endMarker = "DLTKDOCEND" | |
| ri = DLTKRi.new(RDoc::RI::Driver.process_args(%w[-T --format=ansi --doc-dir=/usr/share/ri/system/])) | |
| ri.use_stdout = true | |
| while true do | |
| s = STDIN.gets | |
| if (s.nil?) | |
| break; | |
| end | |
| s = s.chop! | |
| begin | |
| ri.display_name(s) | |
| STDOUT.puts "\n" + endMarker | |
| STDOUT.flush | |
| rescue RDoc::RI::Driver::Error => e | |
| STDOUT.puts "#{e}" | |
| STDOUT.puts "\n" + endMarker | |
| STDOUT.flush | |
| next | |
| end | |
| end |