class Sloc::Analyzer

Constants

REPORT_KEYS

Public Class Methods

new(options = {}) click to toggle source
# File lib/sloc/analyzer.rb, line 3
def initialize(options = {})
  @options = options
end

Public Instance Methods

analyze(code, extension) click to toggle source
# File lib/sloc/analyzer.rb, line 9
def analyze(code, extension)
  result = {}

  code.scrub!.gsub!(/\r\n|\r/, "\n")

  result[:total]          = code.scan("\n").size
  result[:empty_lines]    = code.scan(/^\s*$/).size

  regexp = single_comment_expression(extension)
  result[:single_comment] = regexp ? code.scan(regexp).size : 0

  result
end
block_comment_expression(extension) click to toggle source
# File lib/sloc/analyzer.rb, line 40
def block_comment_expression(extension)
  case extension
  when '.rb' then [/=begin/, /=end/]
  else [nil, nil]
  end
end
comment_expressions(extension) click to toggle source
# File lib/sloc/analyzer.rb, line 23
def comment_expressions(extension)
  start, stop = block_comment_expression(extension)

  {
    single: single_comment_expression(extension),
    start: start,
    stop: stop,
  }
end
single_comment_expression(extension) click to toggle source
# File lib/sloc/analyzer.rb, line 33
def single_comment_expression(extension)
  case extension
  when '.rb' then /#/
  when '.vim' then /"/
  end
end