class RuboCop::Cop::Lint::StringConversionInInterpolation

This cop checks for string conversion in string interpolation, which is redundant.

@example

# bad

"result is #{something.to_s}"

@example

# good

"result is #{something}"

Constants

MSG_DEFAULT
MSG_SELF

Public Instance Methods

on_dstr(node) click to toggle source
# File lib/rubocop/cop/lint/string_conversion_in_interpolation.rb, line 25
def on_dstr(node)
  node.each_child_node(:begin) do |begin_node|
    final_node = begin_node.children.last

    next unless final_node && final_node.send_type? &&
                final_node.method?(:to_s) && !final_node.arguments?

    add_offense(final_node, location: :selector)
  end
end

Private Instance Methods

autocorrect(node) click to toggle source
# File lib/rubocop/cop/lint/string_conversion_in_interpolation.rb, line 42
def autocorrect(node)
  lambda do |corrector|
    receiver, _method_name, *_args = *node
    corrector.replace(
      node.source_range,
      if receiver
        receiver.source
      else
        'self'
      end
    )
  end
end
message(node) click to toggle source
# File lib/rubocop/cop/lint/string_conversion_in_interpolation.rb, line 38
def message(node)
  node.receiver ? MSG_DEFAULT : MSG_SELF
end