Module: Tasker::TaskHandler::ClassMethods

Defined in:
lib/tasker/task_handler/class_methods.rb

Overview

Class methods for task handlers

This module provides class-level functionality for task handlers, including step template definition and handler registration.

Defined Under Namespace

Classes: StepTemplateDefiner

Instance Method Summary collapse

Instance Method Details

#define_step_templates {|StepTemplateDefiner| ... } ⇒ void

This method returns an undefined value.

Define step templates for a task handler

Yields:



297
298
299
300
301
302
303
304
305
306
307
308
309
310
# File 'lib/tasker/task_handler/class_methods.rb', line 297

def define_step_templates
  definer = StepTemplateDefiner.new(self)
  yield(definer)
  definer.klass.define_method(:step_templates) do
    definer.step_templates
  end
  definer.register_class_map
  definer.klass.define_method(:step_handler_class_map) do
    definer.step_handler_class_map
  end
  definer.klass.define_method(:step_handler_config_map) do
    definer.step_handler_config_map
  end
end

#register_handler(name, namespace_name: 'default', version: '0.1.0', concurrent: true) ⇒ void

This method returns an undefined value.

Register a task handler with the handler factory

Parameters:

  • name (String, Symbol)

    The name to register the handler under

  • namespace_name (String) (defaults to: 'default')

    The namespace to register under

  • version (String) (defaults to: '0.1.0')

    The version to register

  • concurrent (Boolean) (defaults to: true)

    Whether to use concurrent processing (unused parameter for compatibility)



319
320
321
322
323
324
# File 'lib/tasker/task_handler/class_methods.rb', line 319

def register_handler(name, namespace_name: 'default', version: '0.1.0', concurrent: true)
  # Register the handler with the factory
  # Note: concurrent parameter is not passed to register method as it's not supported
  Tasker::HandlerFactory.instance.register(name, self, namespace_name: namespace_name, version: version,
                                                       replace: true)
end