Class: RuboCop::Cop::RubyLsp::UseRegisterWithHandlerMethod
- Inherits:
-
Base
- Object
- Base
- RuboCop::Cop::RubyLsp::UseRegisterWithHandlerMethod
- Extended by:
- T::Sig
- Defined in:
- lib/rubocop/cop/ruby_lsp/use_register_with_handler_method.rb
Overview
Avoid using register without handler method, or handler without register.
Register without handler method.
bad
class MyListener < Listener def initialize(dispatcher) super() dispatcher.register( self, :on_string_node_enter, ) end end
good
class MyListener < Listener def initialize(dispatcher) super() dispatcher.register( self, :on_string_node_enter, ) end
def on_string_node_enter(node)
end
end
Handler method without register.
bad
class MyListener < Listener def initialize(dispatcher) super() dispatcher.register( self, ) end
def on_string_node_enter(node)
end
end
good
class MyListener < Listener def initialize(dispatcher) super() dispatcher.register( self, :on_string_node_enter, ) end
def on_string_node_enter(node)
end
end
Constant Summary collapse
- MSG_MISSING_HANDLER =
"Registered to `%{listener}` without a handler defined."- MSG_MISSING_LISTENER =
"Created a handler without registering the associated `%{listener}` event."
Instance Method Summary collapse
Instance Method Details
#on_new_investigation ⇒ Object
88 89 90 91 92 93 94 95 96 |
# File 'lib/rubocop/cop/ruby_lsp/use_register_with_handler_method.rb', line 88 def on_new_investigation return if processed_source.blank? listeners = find_all_listeners(processed_source.ast).flat_map { |listener| listener } handlers = find_all_handlers(processed_source.ast).flat_map { |handler| handler } add_offense_to_listeners_without_handler(listeners, handlers) add_offense_handlers_without_listener(listeners, handlers) end |