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