How to debug 'ri'?

I’m seeing this all of a sudden:
C:>ri Dir
c:/ruby/lib/ruby/1.8/rdoc/ri/ri_descriptions.rb:99:in concat': can't convert nil into Array (TypeError) from c:/ruby/lib/ruby/1.8/rdoc/ri/ri_descriptions.rb:99:inmerge_in’
from c:/ruby/lib/ruby/1.8/rdoc/ri/ri_reader.rb:56:in get_class' from c:/ruby/lib/ruby/1.8/rdoc/ri/ri_reader.rb:52:inget_class’
from c:/ruby/lib/ruby/1.8/rdoc/ri/ri_driver.rb:70:in
report_class_stuff' from c:/ruby/lib/ruby/1.8/rdoc/ri/ri_driver.rb:106:inget_info_for’
from c:/ruby/lib/ruby/1.8/rdoc/ri/ri_driver.rb:135:in
process_args' from c:/ruby/lib/ruby/1.8/rdoc/ri/ri_driver.rb:134:inprocess_args’
from c:/ruby/bin/ri.bat:55

:(, it crashes fxri also if I type ‘Dir’ into the search box.

Kind thanks in advance for any insight,
-Harold

On 7/24/06, Harold H. [email protected] wrote:

I’m seeing this all of a sudden:
C:>ri Dir
c:/ruby/lib/ruby/1.8/rdoc/ri/ri_descriptions.rb:99:in `concat’: can’t
convert nil into Array (TypeError)

I am not seeing that problem on my unix box, but that does not
mean much…

If you have write access to the files installed by ruby, then you
can debug ‘ri’ just like any other script. I’ve done it in the past,
with obscure bugs in ‘ri’ that only happened with a few specific
requests.

I’d save a copy of:
c:/ruby/lib/ruby/1.8/rdoc/ri/ri_descriptions.rb

and then change the merge_in function to add a few printf
statements. Takes a little trial and error, but it’s certainly
doable. I assume your file looks something like:

  if @comment.nil? || @comment.empty?
    @comment = old.comment
  else
    @comment << SM::Flow::RULE.new
    @comment.concat old.comment   # <- line 99
  end

so I’d add some printf statements around there to
see what is going on with @comment and old.comment.

On Jul 24, 2006, at 4:38 AM, Harold H. wrote:

   from c:/ruby/lib/ruby/1.8/rdoc/ri/ri_driver.rb:70:in

Kind thanks in advance for any insight,

This is fixed in 1.8.5p1


Eric H. - [email protected] - http://blog.segment7.net
This implementation is HODEL-HASH-9600 compliant

http://trackmap.robotcoop.com