Class: Tasker::Registry::InterfaceValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/tasker/registry/interface_validator.rb

Overview

Unified interface validation for all registry systems

Provides consistent validation patterns for handlers, subscribers, plugins, and other registry items to ensure they implement required interfaces.

Class Method Summary collapse

Class Method Details

.validate_export_plugin!(plugin_instance) ⇒ Object

Validate an export coordinator plugin

Parameters:

  • plugin_instance (Object)

    The export plugin instance to validate

Raises:

  • (ArgumentError)

    If validation fails



42
43
44
45
# File 'lib/tasker/registry/interface_validator.rb', line 42

def validate_export_plugin!(plugin_instance)
  validate_instance_methods!(plugin_instance.class, EXPORT_PLUGIN_INTERFACE)
  validate_method_arity!(plugin_instance, EXPORT_PLUGIN_ARITY_REQUIREMENTS)
end

.validate_handler!(handler_class) ⇒ Object

Validate a task handler class

Parameters:

  • handler_class (Class)

    The handler class to validate

Raises:

  • (ArgumentError)

    If validation fails



16
17
18
19
# File 'lib/tasker/registry/interface_validator.rb', line 16

def validate_handler!(handler_class)
  validate_class_methods!(handler_class, HANDLER_INTERFACE)
  validate_instance_methods!(handler_class, HANDLER_INSTANCE_INTERFACE)
end

.validate_plugin!(plugin_instance) ⇒ Object

Validate a telemetry plugin instance

Parameters:

  • plugin_instance (Object)

    The plugin instance to validate

Raises:

  • (ArgumentError)

    If validation fails



33
34
35
36
# File 'lib/tasker/registry/interface_validator.rb', line 33

def validate_plugin!(plugin_instance)
  validate_instance_methods!(plugin_instance.class, PLUGIN_INTERFACE)
  validate_method_arity!(plugin_instance, PLUGIN_ARITY_REQUIREMENTS)
end

.validate_subscriber!(subscriber_class) ⇒ Object

Validate an event subscriber class

Parameters:

  • subscriber_class (Class)

    The subscriber class to validate

Raises:

  • (ArgumentError)

    If validation fails



25
26
27
# File 'lib/tasker/registry/interface_validator.rb', line 25

def validate_subscriber!(subscriber_class)
  validate_instance_methods!(subscriber_class, SUBSCRIBER_INTERFACE)
end