Refactor task DSL usages:
Remove most of task evaluation code from Task class, rely on Task::DSL.evaluate to get an evaluated task. * Task: remove #evaluate, change constructor prototype to accept actions instead of a block, implement .evaluate(name, env &block); * Implement Task::DSL.evaluate method; * Recipe::DSL: remove tasks evaluation from#evaluate, modify #task to use Task.evaluate to return the new task to be rigstered.
This commit is contained in:
@@ -3,6 +3,12 @@ module Producer
|
||||
class Task
|
||||
class DSL
|
||||
class << self
|
||||
def evaluate(name, env, &block)
|
||||
dsl = new(&block)
|
||||
dsl.evaluate(env)
|
||||
Task.new(name, dsl.actions)
|
||||
end
|
||||
|
||||
def define_action(keyword, klass)
|
||||
define_method(keyword) do |*args|
|
||||
@actions << klass.new(@env, *args)
|
||||
|
Reference in New Issue
Block a user