Class: Gm::Notepad::InputHandlerRegistry
- Inherits:
-
Object
- Object
- Gm::Notepad::InputHandlerRegistry
- Defined in:
- lib/gm/notepad/input_handler_registry.rb
Overview
Responsible for registering the various input handlers
Instance Method Summary collapse
- #default_handler_builder ⇒ Object
- #handler_for(input:, skip_default: false, table_registry: Container.resolve(:table_registry)) ⇒ Object
-
#initialize {|_self| ... } ⇒ InputHandlerRegistry
constructor
A new instance of InputHandlerRegistry.
- #register(handler:) ⇒ Object
Constructor Details
#initialize {|_self| ... } ⇒ InputHandlerRegistry
Returns a new instance of InputHandlerRegistry.
6 7 8 9 |
# File 'lib/gm/notepad/input_handler_registry.rb', line 6 def initialize @registry = [] yield(self) if block_given? end |
Instance Method Details
#default_handler_builder ⇒ Object
27 28 29 |
# File 'lib/gm/notepad/input_handler_registry.rb', line 27 def default_handler_builder InputHandlers::DefaultHandler end |
#handler_for(input:, skip_default: false, table_registry: Container.resolve(:table_registry)) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/gm/notepad/input_handler_registry.rb', line 11 def handler_for(input:, skip_default: false, table_registry: Container.resolve(:table_registry)) handler = nil @registry.each do |handler_builder| if handler = handler_builder.build_if_handled(input: input, table_registry: table_registry) break end end return handler if handler return nil if skip_default default_handler_builder.build_if_handled(input: input, table_registry: table_registry) end |
#register(handler:) ⇒ Object
23 24 25 |
# File 'lib/gm/notepad/input_handler_registry.rb', line 23 def register(handler:) @registry << handler end |