./ruby/rake/bugs.txt

download original
X-From-Line: nobody Tue Jan 11 15:07:36 2005
To: rake-devel@rubyforge.org
Subject: [rake] RDocTask.rdoc_target should be public, sub-tasks should be documented
From: Olaf Klischat <klischat@cs.tu-berlin.de>
Date: Tue, 11 Jan 2005 15:07:24 +0100
Message-ID: <m2mzvgvz37.fsf@cs.tu-berlin.de>
User-Agent: Gnus/5.1006 (Gnus v5.10.6) XEmacs/21.4 (Security Through Obscurity, linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Lines: 33
Xref: tick archive.mail:472
X-Gnus-Article-Number: 472   Tue Jan 11 15:07:36 2005

I think that the method RDocTask.rdoc_target should be public, not
private. Moreover, I'd argue that RDocTask should document the
internal prerequisites of the tasks it generates.

Rationale:

For a pet project, I wanted to add additional file prerequisites to
the rdoc task (those are files that are :include:d from the rdoc
text). After some digging through the rake sources, I found this to be
the only way to do that properly:

Rake::RDocTask.new { |rdoc|
  rdoc.rdoc_dir = 'doc'
  ....

  #file rdoc.rdoc_target => ['examples/company.xml','examples/company.rb']  # doesn't work -- private method!
  file "#{rdoc.rdoc_dir}/index.html" => ['examples/company.xml','examples/company.rb']
}

Obviously, this is somewhat of a black art -- the additional files
have to be added to the prerequisites of the internal prerequisite of
the :rdoc task (file "#{rdoc.rdoc_dir}/index.html")[1], and that
prerequisite is neither documented nor is the method that returns its
name (RDocTask.rdoc_target) callable from the outside. Hence my
proposal.

Olaf

[1] adding the files as prerequisites to the :rdoc task itself is a
    nonsolution because the rdoc execution runs as the action of the
    file "#{rdoc.rdoc_dir}/index.html" task, so the :rdoc task
    wouldn't be run when only one of my additional files had been
    changed.


-----------------

same argument goes for Rake::PackageTask, Rake::GemPackageTask.

-----------------

Rake::PackageTask should remove and recreate its package_dir each time
it needs to rebuild a package. Otherwise, files that have been removed
from the list of files to be archived may still be in the package_dir
and would consequently be added to the archive again.

  
back to rake

(C) 1998-2017 Olaf Klischat <olaf.klischat@gmail.com>