Sha256: 8d0d98f3019ad5ef4f0b4abb5b67445c0007fde283052c7262b2b17d4e689913

Contents?: true

Size: 1.06 KB

Versions: 1

Compression:

Stored size: 1.06 KB

Contents

module Omnitest
  class Psychic
    module TaskRunner
      # Chooses an appropriate task for the task alias
      # @param [String] task_alias an alias used to lookup a task
      # @return [Task] the best match for the task alias
      def task(task_alias)
        task_alias = task_alias.to_sym
        task_factory = task_factory_manager.factories_for(task_alias).last
        fail TaskNotImplementedError, task_alias if task_factory.nil? || task_factory.priority == 0
        command = task_factory.task(task_alias)
        Task.new(self, command)
      end

      # Lists all known tasks. This will include tasks that have been
      # manually alased in `psychic.yaml`, well-known tasks for detected
      # tools, and possibly some dynamically detected tasks for tools that
      # support task discovery.
      # @return [Set<Task>] the set of known tasks
      def known_tasks
        task_factory_manager.known_tasks
      end

      # @api private
      def task_factory_manager
        @task_factory_manager ||= TaskFactoryManager.new(self, opts)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
omnitest-psychic-0.0.9 lib/omnitest/psychic/task_runner.rb