class RubbyCop::Cop::Layout::SpaceInsidePercentLiteralDelimiters

Checks for unnecessary additional spaces inside the delimiters of %i/%w/%x literals.

@example

@good
%i(foo bar baz)

@bad
%w( foo bar baz )

@bad
%x(  ls -l )

Constants

BEGIN_REGEX
END_REGEX
MSG

Public Instance Methods

autocorrect(node) click to toggle source
# File lib/rubbycop/cop/layout/space_inside_percent_literal_delimiters.rb, line 38
def autocorrect(node)
  lambda do |corrector|
    regex_matches(node) do |match_range|
      corrector.remove(match_range)
    end
  end
end
on_array(node) click to toggle source
# File lib/rubbycop/cop/layout/space_inside_percent_literal_delimiters.rb, line 26
def on_array(node)
  process(node, '%i', '%I', '%w', '%W')
end
on_percent_literal(node) click to toggle source
# File lib/rubbycop/cop/layout/space_inside_percent_literal_delimiters.rb, line 30
def on_percent_literal(node)
  add_offenses_for_unnecessary_spaces(node)
end
on_xstr(node) click to toggle source
# File lib/rubbycop/cop/layout/space_inside_percent_literal_delimiters.rb, line 34
def on_xstr(node)
  add_offenses_for_unnecessary_spaces(node)
end

Private Instance Methods

add_offenses_for_unnecessary_spaces(node) click to toggle source
# File lib/rubbycop/cop/layout/space_inside_percent_literal_delimiters.rb, line 48
def add_offenses_for_unnecessary_spaces(node)
  return unless node.single_line?

  regex_matches(node) do |match_range|
    add_offense(node, match_range, MSG)
  end
end
regex_matches(node, &blk) click to toggle source
# File lib/rubbycop/cop/layout/space_inside_percent_literal_delimiters.rb, line 56
def regex_matches(node, &blk)
  [BEGIN_REGEX, END_REGEX].each do |regex|
    each_match_range(contents_range(node), regex, &blk)
  end
end