Class: Cabriolet::Commands::CommandRegistry
- Inherits:
-
Object
- Object
- Cabriolet::Commands::CommandRegistry
- Defined in:
- lib/cabriolet/cli/command_registry.rb
Overview
Registry for mapping format symbols to command handler classes
This registry provides a centralized location for managing format handlers, following the Open/Closed Principle - new formats can be added without modifying existing command logic.
Class Method Summary collapse
-
.clear ⇒ void
Clear all registered formats (primarily for testing).
-
.format_registered?(format) ⇒ Boolean
Check if a format is registered.
-
.handler_for(format) ⇒ Class?
Get the command handler class for a given format.
-
.register_format(format, handler_class) ⇒ Object
Register a command handler for a format.
-
.registered_formats ⇒ Array<Symbol>
Get all registered formats.
Class Method Details
.clear ⇒ void
This method returns an undefined value.
Clear all registered formats (primarily for testing)
60 61 62 |
# File 'lib/cabriolet/cli/command_registry.rb', line 60 def clear @handlers = {} end |
.format_registered?(format) ⇒ Boolean
Check if a format is registered
53 54 55 |
# File 'lib/cabriolet/cli/command_registry.rb', line 53 def format_registered?(format) @handlers.key?(format) end |
.handler_for(format) ⇒ Class?
Get the command handler class for a given format
25 26 27 |
# File 'lib/cabriolet/cli/command_registry.rb', line 25 def handler_for(format) @handlers[format] end |
.register_format(format, handler_class) ⇒ Object
Register a command handler for a format
This allows for dynamic registration of format handlers, supporting extensibility and plugin architectures.
37 38 39 40 |
# File 'lib/cabriolet/cli/command_registry.rb', line 37 def register_format(format, handler_class) validate_handler_interface(handler_class) @handlers[format] = handler_class end |
.registered_formats ⇒ Array<Symbol>
Get all registered formats
45 46 47 |
# File 'lib/cabriolet/cli/command_registry.rb', line 45 def registered_formats @handlers.keys end |