class Producer::Core::Worker

Constants

DRY_RUN_WARNING

Public Class Methods

new(env) click to toggle source
# File lib/producer/core/worker.rb, line 7
def initialize env
  @env = env
end

Public Instance Methods

process(tasks) click to toggle source
# File lib/producer/core/worker.rb, line 11
def process tasks
  @env.log DRY_RUN_WARNING, :warn if @env.dry_run?

  tasks.each { |t| process_task t }
end
process_task(task, indent_level = 0) click to toggle source
# File lib/producer/core/worker.rb, line 17
def process_task task, indent_level = 0
  if task.condition_met?
    log "Task: `#{task}' applying...", indent_level
    task.actions.each do |e|
      case e
      when Task
        process_task e, indent_level + 2
      else
        log " action: #{e}", indent_level
        e.apply unless @env.dry_run?
      end
    end
  else
    log "Task: `#{task}' skipped", indent_level
  end
end

Private Instance Methods

log(message, indent_level) click to toggle source
# File lib/producer/core/worker.rb, line 36
def log message, indent_level
  message = [' ' * indent_level, message].join
  @env.log message
end