class RuboCop::Cop::InternalAffairs::LocationLineEqualityComparison
Enforces the use of ‘same_line?` instead of location line comparison for equality.
@example
# bad node.loc.line == node.parent.loc.line # bad node.loc.first_line == node.parent.loc.first_line # good same_line?(node, node.parent)
Constants
- MSG
Public Instance Methods
on_send(node)
click to toggle source
# File lib/rubocop/cop/internal_affairs/location_line_equality_comparison.rb, line 36 def on_send(node) return unless location_line_equality_comparison?(node) lhs, _op, rhs = *node lhs_receiver = extract_receiver(lhs) rhs_receiver = extract_receiver(rhs) preferred = "same_line?(#{lhs_receiver}, #{rhs_receiver})" add_offense(node, message: format(MSG, preferred: preferred)) do |corrector| corrector.replace(node, preferred) end end
Private Instance Methods
extract_receiver(node)
click to toggle source
# File lib/rubocop/cop/internal_affairs/location_line_equality_comparison.rb, line 52 def extract_receiver(node) receiver = node.receiver receiver = receiver.receiver if receiver.method?(:loc) || receiver.method?(:source_range) receiver.source end