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