class Gm::Notepad::InputHandlerRegistry

Responsible for registering the various input handlers

Public Class Methods

new() { |self| ... } click to toggle source
# File lib/gm/notepad/input_handler_registry.rb, line 6
def initialize
  @registry = []
  yield(self) if block_given?
end

Public Instance Methods

default_handler_builder() click to toggle source
# 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)) click to toggle source
# 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:) click to toggle source
# File lib/gm/notepad/input_handler_registry.rb, line 23
def register(handler:)
  @registry << handler
end