lib/rubocop/cop/mixin/space_before_punctuation.rb in rubocop-0.40.0 vs lib/rubocop/cop/mixin/space_before_punctuation.rb in rubocop-0.41.0
- old
+ new
@@ -7,22 +7,35 @@
# punctuation.
module SpaceBeforePunctuation
MSG = 'Space found before %s.'.freeze
def investigate(processed_source)
- processed_source.tokens.each_cons(2) do |t1, t2|
- next unless kind(t2) && t1.pos.line == t2.pos.line &&
- t2.pos.begin_pos > t1.pos.end_pos &&
- !(t1.type == :tLCURLY && space_required_after_lcurly?)
+ each_missing_space(processed_source.tokens) do |token, pos_before|
+ add_offense(pos_before, pos_before, format(MSG, kind(token)))
+ end
+ end
+
+ def each_missing_space(tokens)
+ tokens.each_cons(2) do |t1, t2|
+ next unless kind(t2)
+ next unless space_missing?(t1, t2)
+ next if space_required_after?(t1)
+
buffer = processed_source.buffer
pos_before_punctuation = Parser::Source::Range.new(buffer,
t1.pos.end_pos,
t2.pos.begin_pos)
- add_offense(pos_before_punctuation,
- pos_before_punctuation,
- format(MSG, kind(t2)))
+ yield t2, pos_before_punctuation
end
+ end
+
+ def space_missing?(t1, t2)
+ t1.pos.line == t2.pos.line && t2.pos.begin_pos > t1.pos.end_pos
+ end
+
+ def space_required_after?(token)
+ token.type == :tLCURLY && space_required_after_lcurly?
end
def space_required_after_lcurly?
cfg = config.for_cop('Style/SpaceInsideBlockBraces')
style = cfg['EnforcedStyle'] || 'space'