class Taskr::TaskManager
Public Class Methods
new()
click to toggle source
# File lib/taskr/task_manager.rb, line 5 def initialize @data = {} end
Public Instance Methods
register(task, deps=[])
click to toggle source
# File lib/taskr/task_manager.rb, line 9 def register(task, deps=[]) raise ArgumentError.new('Can register only instances of Taskr::Task') unless task.is_a? Task @data[task.name] = {:task => task, :deps => deps} true end
run(task_name)
click to toggle source
# File lib/taskr/task_manager.rb, line 19 def run(task_name) task_record = find_by_name(task_name) task_record[:deps].each { |task_dep_name| run(task_dep_name) } task_record[:task].run end
tasks()
click to toggle source
# File lib/taskr/task_manager.rb, line 15 def tasks @data.values.map {|task_record| task_record[:task]} end
Private Instance Methods
find_by_name(task_name)
click to toggle source
# File lib/taskr/task_manager.rb, line 27 def find_by_name(task_name) task = @data.fetch(task_name, nil) raise TaskNotFoundError.new("Task with name #{task_name} could not be found") if task.nil? task end