Class: Gm::Notepad::InputHandlerRegistry

Inherits:
Object
  • Object
show all
Defined in:
lib/gm/notepad/input_handler_registry.rb

Overview

Responsible for registering the various input handlers

Instance Method Summary collapse

Constructor Details

#initialize {|_self| ... } ⇒ InputHandlerRegistry

Returns a new instance of InputHandlerRegistry.

Yields:

  • (_self)

Yield Parameters:



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_builderObject



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