Class: Rubino::Jobs::Registry
- Inherits:
-
Object
- Object
- Rubino::Jobs::Registry
- Defined in:
- lib/rubino/jobs/registry.rb
Overview
Registry that maps job type strings to handler classes.
Class Method Summary collapse
-
.handler_for(type) ⇒ Object
Returns the handler class for a job type.
-
.register(type, handler_class) ⇒ Object
Registers a handler class for a job type.
-
.registered_types ⇒ Object
Returns all registered job types.
-
.reset! ⇒ Object
Clears all registrations (useful for testing).
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_types ⇒ Object
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 |