class Djin::Executor

Public Class Methods

new(task_repository: Djin.task_repository) click to toggle source
# File lib/djin/executor.rb, line 5
def initialize(task_repository: Djin.task_repository)
  @task_repository = task_repository
end

Public Instance Methods

call(*tasks) click to toggle source
# File lib/djin/executor.rb, line 9
def call(*tasks)
  tasks.each do |task|
    run_task(task)
  end
end

Private Instance Methods

run(command, task_name:) click to toggle source
# File lib/djin/executor.rb, line 26
def run(command, task_name:)
  raise TaskError, "Task `#{task_name}` failed" unless system(command)
end
run_task(task) click to toggle source
# File lib/djin/executor.rb, line 17
def run_task(task)
  @task_repository.find_by_names(task.depends_on).each do |dependent_task|
    run_task dependent_task
  end

  run(task.build_command, task_name: task.name) if task.build_command
  run(task.command, task_name: task.name) if task.command
end