class RuboCop::Cop::Lint::LiteralInInterpolation
“result is #{10}”
@example
This cop checks for interpolated literals.
def autocorrect(node)
def autocorrect(node) expr = node.parent.loc.expression value = autocorrected_value(node) ->(corrector) { corrector.replace(expr, value) } end
def autocorrected_value(node)
def autocorrected_value(node) node.str_type? ? node.children.last : node.loc.expression.source end
def on_dstr(node)
def on_dstr(node) node.children.select { |n| n.type == :begin }.each do |begin_node| final_node = begin_node.children.last next unless final_node next if special_keyword?(final_node) next unless LITERALS.include?(final_node.type) add_offense(final_node, :expression) end end
def special_keyword?(node)
def special_keyword?(node) # handle strings like __FILE__ (node.type == :str && !node.loc.respond_to?(:begin)) || node.loc.expression.is?('__LINE__') end