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