class RuboCop::Cop::Style::VariableInterpolation
“Let’s go to the #{@store}”
/check #{$pattern}/
“His name is #{$name}”
# good
“Let’s go to the #@store”
/check #$pattern/
“His name is #$name”
# bad
@example
This cop checks for variable interpolation (like “#@ivar”).
def autocorrect(node)
def autocorrect(node) lambda do |corrector| corrector.replace(node.source_range, "{#{node.source}}") end end
def check_for_interpolation(node)
def check_for_interpolation(node) var_nodes(node.children).each do |var_node| add_offense(var_node) end end
def message(node)
def message(node) format(MSG, variable: node.source) end
def on_dstr(node)
def on_dstr(node) check_for_interpolation(node) end
def on_regexp(node)
def on_regexp(node) check_for_interpolation(node) end
def on_xstr(node)
def on_xstr(node) check_for_interpolation(node) end
def var_nodes(nodes)
def var_nodes(nodes) nodes.select { |n| n.variable? || n.reference? } end