Thibault Jouan e6c14f1903 Implement basic task actions API:
* Add Action base class;
* Implement Task::DSL.define_action(keyword, klass);
* Add Task::DSL#actions accessor;
* Apply task DSL actions when Task instances are evaluated.
2013-08-04 20:30:54 +00:00

19 lines
305 B
Ruby

module Producer
module Core
class Task
attr_reader :name
def initialize(name, &block)
@name = name
@block = block
end
def evaluate(env)
dsl = DSL.new(&@block)
dsl.evaluate(env)
dsl.actions.map(&:apply)
end
end
end
end