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
