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