Class | CodeRay::Encoders::LinesOfCode |
In: |
lib/coderay/encoders/lines_of_code.rb
|
Parent: | TokenKindFilter |
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].
NON_EMPTY_LINE | = | /^\s*\S.*$/ |
# File lib/coderay/encoders/lines_of_code.rb, line 38 38: def finish options 39: output @tokens.text.scan(NON_EMPTY_LINE).size 40: end
# File lib/coderay/encoders/lines_of_code.rb, line 25 25: def setup options 26: if scanner 27: kinds_not_loc = scanner.class::KINDS_NOT_LOC 28: else 29: warn "Tokens have no associated scanner, counting all nonempty lines." if $VERBOSE 30: kinds_not_loc = CodeRay::Scanners::Scanner::KINDS_NOT_LOC 31: end 32: 33: options[:exclude] = kinds_not_loc 34: 35: super options 36: end