Hi,
The collaboa site for engines is having serious problems, so I'm posting
here.
As mentioned previously, rake 0.8.x broke the code for redefining rake
tasks.
The problem is that in rake 0.8.x, the first argument to resolve_args
should now be an array. Also, last_comment was changed to
last_description.
So, this will only work with rake 0.8.x.
Any chance to get this patch into engines /branches/rb_1.2? Not sure
what should be done about BC on this. Any ideas?
Thanks,
John
--- engines.rake 2007-12-29 22:54:17.000000000 -0800
+++ engines.rake.new 2007-12-29 22:54:10.000000000 -0800
@@ -6,14 +6,14 @@
module Rake
module TaskManager
def redefine_task(task_class, args, &block)
- task_name, deps = resolve_args(args)
+ task_name, deps = resolve_args([args])
task_name = task_class.scope_name(@scope, task_name)
deps = [deps] unless deps.respond_to?(:to_ary)
deps = deps.collect {|d| d.to_s }
task = @tasks[task_name.to_s] = task_class.new(task_name, self)
task.application = self
- task.add_comment(@last_comment)
- @last_comment = nil
+ task.add_description(@last_description)
+ @last_description = nil
task.enhance(deps, &block)
task
end
on 30.12.2007 08:07
on 31.12.2007 06:22
Replying to myself. New patch. Here is a simple backwards-compatible
patch that allows this to work for rake 0.7.3 and rake 0.8.x
Feel free to DRY this up or otherwise make it prettier.
I tested this with on my rails app with both rake 0.7.3 and 0.8.1.
Thanks,
John
--- engines.rake.old 2007-12-29 22:54:17.000000000 -0800
+++ engines.rake 2007-12-30 20:16:10.000000000 -0800
@@ -6,14 +6,19 @@
module Rake
module TaskManager
def redefine_task(task_class, args, &block)
- task_name, deps = resolve_args(args)
+ task_name, deps = (RAKEVERSION >= '0.8.0') ?
resolve_args([args]) : resolve_args(args)
task_name = task_class.scope_name(@scope, task_name)
deps = [deps] unless deps.respond_to?(:to_ary)
deps = deps.collect {|d| d.to_s }
task = @tasks[task_name.to_s] = task_class.new(task_name, self)
task.application = self
- task.add_comment(@last_comment)
- @last_comment = nil
+ if RAKEVERSION >= '0.8.0'
+ task.add_description(@last_description)
+ @last_description = nil
+ else
+ task.add_comment(@last_comment)
+ @last_comment = nil
+ end
task.enhance(deps, &block)
task
end
on 03.01.2008 13:09
Hi John, Could you post this patch to the issue tracker? http://dev.rails-engines.org - login info is on the http://rails-engines.org website. Thanks! James
on 03.01.2008 18:28
Hi James, Happy to. Collaboa was giving errors last I tried. On a related note, after posting to rake-devel, Jim Weirich (author of rake) offered to implement redefine_task within rake proper, but is asking for input. Would you be kind enough to jump-in with specifics on what engines needs for rake redefine_task? Here is the thread on rake list: http://rubyforge.org/pipermail/rake-devel/2008-January/000357.html Thanks! John
on 03.01.2008 18:39
On 1/3/08, John Dell <spovich@gmail.com> wrote: > Hi James, > > Happy to. Collaboa was giving errors last I tried. Thanks :) > Would you be kind enough to jump-in with specifics on what engines needs for rake redefine_task? Will do, and thanks for raising this on the rake list - it's clearly something I should've done myself! I suppose the attitude of some of the guardians of the Rails codebase has sunk sufficiently into my subconscious that I no longer immediately consider feeding change requests back to original projects (!) :)