class RuboCop::Cop::Naming::BinaryOperatorParameterName
def +(other); end
# good
def +(amount); end
# bad
@example
sole parameter named ‘other`.
This cop makes sure that certain binary operator methods have their
def on_def(node)
def on_def(node) op_method_candidate?(node) do |name, arg| add_offense(arg, message: format(MSG, opr: name)) do |corrector| corrector.replace(arg, 'other') node.each_descendant(:lvar, :lvasgn) do |lvar| lvar_location = lvar.loc.name next unless lvar_location.source == arg.source corrector.replace(lvar_location, 'other') end end end end
def op_method?(name)
def op_method?(name) return false if EXCLUDED.include?(name) !/\A[[:word:]]/.match?(name) || OP_LIKE_METHODS.include?(name) end