I'm trying to get "rake doc:app" pull its input from a different
Rails app's source tree.  In trying to prototype a solution, I've
fiddled with documentation.rake.  However, my hack isn't working:

>  rake aborted!
>  stack level too deep
>  /usr/local/lib/ruby/gems/1.8/gems/
>    rake-0.7.1/lib/rake.rb:1038:in `orig_include'
>    rake-0.7.1/lib/rake.rb:1036:in `orig_include'
>    rails-1.2.2/lib/tasks/documentation.rake:41:in `include'

My trace of the value being mapped contains only a series of:

  new_name='.//'


Any idea what I'm doing wrong?  Here's the relevant code:

# /usr/.local/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake.rb defines
# the include method, as follows:
#
#   # Add file names defined by glob patterns to the file list.
#   # If an array is given, add each element of the array.
#   #
#   # Example:
#   #   file_list.include("*.java", "*.cfg")
#   #   file_list.include %w( math.c lib.h *.o )
#   #
#   def include(*filenames)
#     # TODO: check for pending
#     filenames.each do |fn|
#       if fn.respond_to? :to_ary
#         include(*fn.to_ary)
#       else
#         @pending_add << fn
#       end
#     end
#     @pending = true
#     self
#   end
#   alias :add :include
#
#####
#
# We can redefine this to add an arbitrary prefix to each path, based
# on the RDOC_SRC_DIR environment variable:

  class FileList

    @@rdoc_src_dir =  ENV['RDOC_SRC_DIR']

    if (@@rdoc_src_dir)
      alias :orig_include :include

      def include(*filenames)
        list = filenames.map do |name|
          new_name = "#{@@rdoc_src_dir}/#{name}"
          puts "new_name='#{new_name}'"             #T
        end
        orig_include(list)
      end
      alias :add :include
    end
  end
...


More generally, if someone has a better way to solve the original
problem, I'd be happy to hear about it!

-r
-- 
http://www.cfcl.com/rdm            Rich Morin
http://www.cfcl.com/rdm/resume     rdm / cfcl.com
http://www.cfcl.com/rdm/weblog     +1 650-873-7841

Technical editing and writing, programming, and web development