1.8.5 RDoc fails to parse Fortran 95 files due to option.rb
and code_objects.rb not having the magic ignore_case
method/argument from Dennou club's monster patch?
For example,
$ ruby -v
ruby 1.8.5 (2006-08-25) [powerpc-darwin8.7.0]
$ cat > use_mod.f90
module test_f95parser
use other_module
contains
subroutine foobar
end subroutine
end module
$ rdoc use_mod.f90
use_mod.f90: m/usr/local/pkgs/ruby-1.8.5/lib/ruby/1.8/rdoc/parsers/parse_f95.rb:403:in
`parse_program_or_module': undefined method `ignore_case' for #<Options:0x1118fcc> (NoMethodError)
from /usr/local/pkgs/ruby-1.8.5/lib/ruby/1.8/rdoc/parsers/parse_f95.rb:306:in `scan'
from /usr/local/pkgs/ruby-1.8.5/lib/ruby/1.8/rdoc/parsers/parse_f95.rb:233:in `collect!'
from /usr/local/pkgs/ruby-1.8.5/lib/ruby/1.8/rdoc/parsers/parse_f95.rb:233:in `scan'
from /usr/local/pkgs/ruby-1.8.5/lib/ruby/1.8/rdoc/rdoc.rb:210:in `parse_files'
from /usr/local/pkgs/ruby-1.8.5/lib/ruby/1.8/rdoc/rdoc.rb:203:in `each'
from /usr/local/pkgs/ruby-1.8.5/lib/ruby/1.8/rdoc/rdoc.rb:203:in `parse_files'
from /usr/local/pkgs/ruby-1.8.5/lib/ruby/1.8/rdoc/rdoc.rb:246:in `document'
from /usr/local/bin/rdoc:63
where parse_f95.rb looks like
403 if !container.include_includes?(used_mod_name, @options.ignore_case)
404 progress "."
405 container.add_include Include.new(used_mod_name, "")
406 end
Or, a simpler case,
$ cat > test.f90
program f90
print *, 'hello'
end
$ rdoc test.f90
test.f90: p/usr/local/pkgs/ruby-1.8.5/lib/ruby/1.8/rdoc/parsers/parse_f95.rb:473:in
`parse_program_or_module': undefined method `each_includes' for #<RDoc::TopLevel:0x111889c> (NoMethodError)
from /usr/local/pkgs/ruby-1.8.5/lib/ruby/1.8/rdoc/parsers/parse_f95.rb:333:in `scan'
from /usr/local/pkgs/ruby-1.8.5/lib/ruby/1.8/rdoc/parsers/parse_f95.rb:233:in `collect!'
from /usr/local/pkgs/ruby-1.8.5/lib/ruby/1.8/rdoc/parsers/parse_f95.rb:233:in `scan'
from /usr/local/pkgs/ruby-1.8.5/lib/ruby/1.8/rdoc/rdoc.rb:210:in `parse_files'
from /usr/local/pkgs/ruby-1.8.5/lib/ruby/1.8/rdoc/rdoc.rb:203:in `each'
from /usr/local/pkgs/ruby-1.8.5/lib/ruby/1.8/rdoc/rdoc.rb:203:in `parse_files'
from /usr/local/pkgs/ruby-1.8.5/lib/ruby/1.8/rdoc/rdoc.rb:246:in `document'
from /usr/local/bin/rdoc:63
where parse_f95.rb looks like
473 container.each_includes{ |inc|
474 TopLevel.all_files.each do |name, toplevel|
475 indicated_mod = toplevel.find_symbol(inc.name,
476 nil, @options.ignore_case) |