module RubbyCop::Cop::StringHelp

Classes that include this module just implement functions to determine what is an offense and how to do auto-correction. They get help with adding offenses for the faulty string nodes, and with filtering out nodes.

Public Instance Methods

inside_interpolation?(node) click to toggle source
# File lib/rubbycop/cop/mixin/string_help.rb, line 27
def inside_interpolation?(node)
  # A :begin node inside a :dstr node is an interpolation.
  node.ancestors.drop_while { |a| !a.begin_type? }.any?(&:dstr_type?)
end
on_regexp(node) click to toggle source
# File lib/rubbycop/cop/mixin/string_help.rb, line 23
def on_regexp(node)
  ignore_node(node)
end
on_str(node) click to toggle source
# File lib/rubbycop/cop/mixin/string_help.rb, line 10
def on_str(node)
  # Constants like __FILE__ are handled as strings,
  # but don't respond to begin.
  return unless node.loc.respond_to?(:begin) && node.loc.begin
  return if part_of_ignored_node?(node)

  if offense?(node)
    add_offense(node, :expression) { opposite_style_detected }
  else
    correct_style_detected
  end
end