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 2007-12-30 08:07
on 2007-12-31 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 2008-01-03 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 2008-01-03 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-Jan... Thanks! John
on 2008-01-03 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 (!) :)
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.