Parent

Methods

Files

Class/Module Index [+]

Quicksearch

RuboCop::Cop::Style::TrailingBlankLines

This cop looks for trailing blank lines and a final newline in the source code.

Public Instance Methods

investigate(processed_source) click to toggle source
# File lib/rubocop/cop/style/trailing_blank_lines.rb, line 10
def investigate(processed_source)
  sb = processed_source.buffer
  return if sb.source.empty?

  whitespace_at_end = sb.source[/\s*\Z/]
  blank_lines = whitespace_at_end.count("\n") - 1
  wanted_blank_lines = style == :final_newline ? 0 : 1

  return unless blank_lines != wanted_blank_lines

  begin_pos = sb.source.length - whitespace_at_end.length
  autocorrect_range = Parser::Source::Range.new(sb, begin_pos,
                                                sb.source.length)
  begin_pos += "\n".length unless whitespace_at_end.length == 0
  report_range = Parser::Source::Range.new(sb, begin_pos,
                                           sb.source.length)
  add_offense(autocorrect_range, report_range,
              message(wanted_blank_lines, blank_lines))
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.