After mulling over this (and writing but not sending a long email about the
finer semantics I was originally thinking about), I think I'll simplify my
proposal down to,

task.after [:foo, :bar] do
  # ...
end

which would be exactly like task.enhance, except it would also accept a
single task (i.e., non-array argument.)  The block remains optional.

And secondly,

task.before [:foo, :bar] do
  # ...
end

would be equivalent to:

task.enhance do
  # ...
end

task(:foo).enhance [task]
task(:bar).enhance [task]

Hopefully this is clearer than my previous proposal and promotes better
design.  (And I think that what some of you expected the first time around.)

Makes sense?

alex

Reply via email to