From: Mauricio Fernandez Date: 2006-11-09T19:55:52+09:00 Subject: Re: [ANN] FastRI 0.1.0: faster, smarter RI docs for Ruby, DRb-enabled On Thu, Nov 09, 2006 at 06:05:40PM +0900, Leslie Viljoen wrote: > I get some strange responses on Windows. I'll test on Linux shortly. > > c:\Program Files\Microsoft Visual Studio 8\VC>fri -f plain assert > ------------------------------------------------------ Breakpoint#assert [...] > c:\Program Files\Microsoft Visual Studio 8\VC>fri -f plain assert_not_same > nil [...] > c:\Program Files\Microsoft Visual Studio 8\VC>fri -f plain Test::Unit > (druby://127.0.0.1:1310) > c:/ruby/lib/ruby/1.8/rdoc/ri/ri_descriptions.rb:99:in ` > concat': can't convert nil into Array (TypeError) > from (druby://127.0.0.1:1310) > c:/ruby/lib/ruby/1.8/rdoc/ri/ri_descriptions.rb:99:in `merge_in' > from (druby://127.0.0.1:1310) > c:/ruby/lib/ruby/gems/1.8/gems/fastri-0.1.0.1/lib/fastri/ri_index.rb:323: > in `get_class' from (druby://127.0.0.1:1310) As far as I can see from this and your other message, * your Ruby install in Windows is missing the core/stdlib RI documentation; that's the reason why Test::Unit::Assertions#assert isn't found when FastRI falls back to "nested" matches (i.e. exact method name matches anywhere in the hierarchy), and you get Breakpoint#assert instead of 'multiple choices' * the RI docs in your Linux install might be incomplete; Test::Unit::Assertions#assert should have been found before falling back to "nested+partial" matches. * as for the above TypeError: it looks like a bug in rdoc/ri/ri_descriptions.rb (ModuleDescription#merge_in), but my copy says: 88 # merge in another class desscription into this one 89 def merge_in(old) 90 merge(@class_methods, old.class_methods) 91 merge(@instance_methods, old.instance_methods) 92 merge(@attributes, old.attributes) 93 merge(@constants, old.constants) 94 merge(@includes, old.includes) 95 if @comment.nil? || @comment.empty? 96 @comment = old.comment 97 else 98 unless old.comment.nil? or old.comment.empty? then 99 @comment << SM::Flow::RULE.new 100 @comment.concat old.comment 101 end 102 end 103 end The test in line 98 should have prevented the TypeError, but in your backtrace #concat is called in line 99 (instead of 100 as in my copy). Maybe you've got an older version that does not include line 98 above? $ ruby -v ruby 1.8.5 (2006-08-25) [i686-linux] -- Mauricio Fernandez - http://eigenclass.org - singular Ruby