Class: RuboCop::Cop::Legion::HelperMigration::DirectTransport
- Inherits:
-
Base
- Object
- Base
- RuboCop::Cop::Legion::HelperMigration::DirectTransport
- Extended by:
- AutoCorrector
- Defined in:
- lib/rubocop/cop/legion/helper_migration/direct_transport.rb
Overview
Detects direct calls to ‘Legion::Transport::Connection` methods and suggests using the `transport_*` helpers instead.
Constant Summary collapse
- MSG =
'Use `%<helper>s` instead of `%<receiver>s.%<method>s`. ' \ 'Include the transport helper mixin.'
- RESTRICT_ON_SEND =
%i[session_open? channel_open? lite_mode? channel count].freeze
- CONNECTION_MAP =
{ session_open?: 'transport_session_open?', channel_open?: 'transport_channel_open?', lite_mode?: 'transport_lite_mode?', channel: 'transport_channel' }.freeze
- SPOOL_MAP =
{ count: 'transport_spool_count' }.freeze
Instance Method Summary collapse
- #on_send(node) ⇒ Object
- #transport_connection_call?(node) ⇒ Object
- #transport_spool_call?(node) ⇒ Object
Instance Method Details
#on_send(node) ⇒ Object
51 52 53 54 55 56 57 |
# File 'lib/rubocop/cop/legion/helper_migration/direct_transport.rb', line 51 def on_send(node) if transport_connection_call?(node) register_offense(node, 'Legion::Transport::Connection', CONNECTION_MAP) elsif transport_spool_call?(node) register_offense(node, 'Legion::Transport::Spool', SPOOL_MAP) end end |
#transport_connection_call?(node) ⇒ Object
42 43 44 |
# File 'lib/rubocop/cop/legion/helper_migration/direct_transport.rb', line 42 def_node_matcher :transport_connection_call?, <<~PATTERN (send (const (const (const nil? :Legion) :Transport) :Connection) {:session_open? :channel_open? :lite_mode? :channel} ...) PATTERN |
#transport_spool_call?(node) ⇒ Object
47 48 49 |
# File 'lib/rubocop/cop/legion/helper_migration/direct_transport.rb', line 47 def_node_matcher :transport_spool_call?, <<~PATTERN (send (const (const (const nil? :Legion) :Transport) :Spool) :count ...) PATTERN |