module Abid::TaskManager
Public Class Methods
new()
click to toggle source
Calls superclass method
# File lib/abid/task_manager.rb, line 3 def initialize super end
Public Instance Methods
[](task_name, scopes = nil, **params)
click to toggle source
Calls superclass method
# File lib/abid/task_manager.rb, line 20 def [](task_name, scopes = nil, **params) task = super(task_name, scopes) if task.respond_to? :bind task.bind(**params) else task end end
define_mixin(task_class, mixin_name, &block)
click to toggle source
# File lib/abid/task_manager.rb, line 14 def define_mixin(task_class, mixin_name, &block) define_task(task_class, mixin_name).tap do |task| task.mixin_definition = block end end
define_play(task_class, play_name, extends: nil, &block)
click to toggle source
# File lib/abid/task_manager.rb, line 7 def define_play(task_class, play_name, extends: nil, &block) define_task(task_class, play_name).tap do |task| task.extends = extends task.play_class_definition = block end end
lookup_play_class(task_name, scope = nil)
click to toggle source
# File lib/abid/task_manager.rb, line 38 def lookup_play_class(task_name, scope = nil) if task_name.nil? play_base elsif task_name.is_a? Class task_name else t = lookup(task_name.to_s, scope) if t.respond_to? :play_class t.play_class elsif t.nil? fail "play #{task_name} not found" else fail "task #{task_name} has no play class" end end end
play_base(&block)
click to toggle source
# File lib/abid/task_manager.rb, line 30 def play_base(&block) if block_given? @play_base = Class.new(Abid::Play, &block) else @play_base ||= Abid::Play end end