class CodeRay::Encoders::LinesOfCode

Counts the LoC (Lines of Code). Returns an Integer >= 0.

Alias: loc

Everything that is not comment, markup, doctype/shebang, or an empty line, is considered to be code.

For example,

A Scanner class should define the token kinds that are not code in the KINDS_NOT_LOC constant, which defaults to [:comment, :doctype].

Constants

NON_EMPTY_LINE

Protected Instance Methods

finish(options) click to toggle source
# File lib/coderay/encoders/lines_of_code.rb, line 38
def finish options
  output @tokens.text.scan(NON_EMPTY_LINE).size
end
setup(options) click to toggle source
# File lib/coderay/encoders/lines_of_code.rb, line 25
def setup options
  if scanner
    kinds_not_loc = scanner.class::KINDS_NOT_LOC
  else
    warn "Tokens have no associated scanner, counting all nonempty lines." if $VERBOSE
    kinds_not_loc = CodeRay::Scanners::Scanner::KINDS_NOT_LOC
  end
  
  options[:exclude] = kinds_not_loc
  
  super options
end