class Producer::Core::Task
Attributes
actions[R]
condition[R]
name[R]
Public Class Methods
define_action(keyword, klass)
click to toggle source
# File lib/producer/core/task.rb, line 5 def define_action keyword, klass define_method keyword do |*args| @actions << klass.new(@env, *args) end end
evaluate(env, name, *args, &block)
click to toggle source
# File lib/producer/core/task.rb, line 11 def evaluate env, name, *args, &block new(env, name).tap { |o| o.instance_exec *args, &block } end
new(env, name, actions = [], condition = true)
click to toggle source
# File lib/producer/core/task.rb, line 35 def initialize env, name, actions = [], condition = true @env = env @name = name @actions = actions @condition = condition end
Public Instance Methods
ask(question, choices, prompter: build_prompter)
click to toggle source
# File lib/producer/core/task.rb, line 55 def ask question, choices, prompter: build_prompter prompter.prompt question, choices end
condition_met?()
click to toggle source
# File lib/producer/core/task.rb, line 42 def condition_met? !!@condition end
task(name, *args, &block)
click to toggle source
# File lib/producer/core/task.rb, line 51 def task name, *args, &block @actions << self.class.evaluate(@env, name, *args, &block) end
template(path, variables = {})
click to toggle source
# File lib/producer/core/task.rb, line 59 def template path, variables = {} Template.new(path).render variables end
Private Instance Methods
build_prompter()
click to toggle source
# File lib/producer/core/task.rb, line 65 def build_prompter Prompter.new(@env.input, @env.output) end