Class: Rubino::Jobs::Registry

Inherits:
Object
  • Object
show all
Defined in:
lib/rubino/jobs/registry.rb

Overview

Registry that maps job type strings to handler classes.

Class Method Summary collapse

Class Method Details

.handler_for(type) ⇒ Object

Returns the handler class for a job type. Job types name classes under Jobs::Handlers, so an unregistered type is resolved straight from that namespace (triggering the Zeitwerk autoload) and cached. This makes lookup independent of load order: a handler can never be “unregistered” at run time just because nothing happened to touch its constant before the inline Runner executed at enqueue time (#81).



21
22
23
# File 'lib/rubino/jobs/registry.rb', line 21

def handler_for(type)
  @handlers[type.to_s] || resolve(type.to_s)
end

.register(type, handler_class) ⇒ Object

Registers a handler class for a job type



11
12
13
# File 'lib/rubino/jobs/registry.rb', line 11

def register(type, handler_class)
  @handlers[type.to_s] = handler_class
end

.registered_typesObject

Returns all registered job types



26
27
28
# File 'lib/rubino/jobs/registry.rb', line 26

def registered_types
  @handlers.keys
end

.reset!Object

Clears all registrations (useful for testing)



31
32
33
# File 'lib/rubino/jobs/registry.rb', line 31

def reset!
  @handlers = {}
end