class Tailor::Rulers::TrailingNewlinesRuler

Public Class Methods

new(config, options) click to toggle source
Calls superclass method Tailor::Ruler::new
# File lib/tailor/rulers/trailing_newlines_ruler.rb, line 7
def initialize(config, options)
  super(config, options)
  add_lexer_observers :file_end
end

Public Instance Methods

file_end_update(trailing_newline_count) click to toggle source

Checks to see if the file's final character is a n. If it is, it just returns the text that was passed in. If it's not, it adds a n, since the current indentation-checking algorithm only checks indent levels when it parses a newline character (without this, indentation problems on the final line won't ever get caught).

@param [Fixnum] trailing_newline_count

# File lib/tailor/rulers/trailing_newlines_ruler.rb, line 36
def file_end_update(trailing_newline_count)
  measure(trailing_newline_count)
end
measure(trailing_newline_count) click to toggle source

Checks to see if the number of newlines at the end of the file is not equal to the value at +@config+.

@param [Fixnum] trailing_newline_count The number of newlines at the end

of the file.
# File lib/tailor/rulers/trailing_newlines_ruler.rb, line 17
def measure(trailing_newline_count)
  if trailing_newline_count != @config
    lineno = '<EOF>'
    column = '<EOF>'
    msg = "File has #{trailing_newline_count} trailing "
    msg << "newlines, but should have #{@config}."

    @problems << Problem.new(problem_type, lineno, column, msg,
      @options[:level])
  end
end