Module: Rubocop::Cop::SpaceInside

Includes:
SurroundingSpace
Included in:
Rubocop::Cop::Style::SpaceInsideBrackets, Rubocop::Cop::Style::SpaceInsideParens
Defined in:
lib/rubocop/cop/mixin/space_inside.rb

Overview

Common functionality for checking for spaces inside various kinds of parentheses.

Constant Summary collapse

MSG =
'Space inside %s detected.'

Instance Method Summary collapse

Methods included from SurroundingSpace

#index_of_first_token, #index_of_last_token, #space_between?, #token_table

Instance Method Details

#autocorrect(range) ⇒ Object



30
31
32
# File 'lib/rubocop/cop/mixin/space_inside.rb', line 30

def autocorrect(range)
  @corrections << ->(corrector) { corrector.remove(range) }
end

#investigate(processed_source) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/rubocop/cop/mixin/space_inside.rb', line 11

def investigate(processed_source)
  @processed_source = processed_source
  left, right, kind = specifics
  processed_source.tokens.each_cons(2) do |t1, t2|
    if t1.type == left || t2.type == right
      # If the second token is a comment, that means that a line break
      # follows, and that the rules for space inside don't apply.
      next if t2.type == :tCOMMENT

      if t2.pos.line == t1.pos.line && space_between?(t1, t2)
        range = Parser::Source::Range.new(processed_source.buffer,
                                          t1.pos.end_pos,
                                          t2.pos.begin_pos)
        add_offense(range, range, format(MSG, kind))
      end
    end
  end
end