Class: Serum::Rails::CodeScanner

Inherits:
Object
  • Object
show all
Defined in:
lib/serum/rails/code_scanner.rb

Constant Summary collapse

DEFAULT_FOLDERS =
%w[app lib config public].freeze
ANYTHING =
/.*/.freeze
DEBUG =
false

Instance Method Summary collapse

Constructor Details

#initialize(root) ⇒ CodeScanner

Returns a new instance of CodeScanner.



9
10
11
# File 'lib/serum/rails/code_scanner.rb', line 9

def initialize(root)
  @root = root
end

Instance Method Details

#count_lines(options = {}) ⇒ Object



13
14
15
16
17
18
19
20
# File 'lib/serum/rails/code_scanner.rb', line 13

def count_lines(options = {})
  pattern = options.fetch(:pattern, ANYTHING)
  folders = Array.wrap(options.fetch(:folders, DEFAULT_FOLDERS))
  type_selection = TypeSelection.new(options[:types])
  paths(folders, type_selection).sort.sum do |path|
    count_occurrences(path, pattern)
  end
end