@@ -43,12 +43,18 @@ class CodeStatistics
43
43
HEADERS = { lines : " Lines" , code_lines : " LOC" , classes : "Classes" , methods : "Methods" }
44
44
45
45
class_attribute :directories , default : DIRECTORIES
46
+ class_attribute :test_types , default : TEST_TYPES
46
47
47
48
# Add directories to the output of the `bin/rails stats` command.
48
49
#
49
50
# Rails::CodeStatistics.register_directory("My Directory", "path/to/dir")
50
- def self . register_directory ( label , path )
51
+ #
52
+ # For directories that contain test code, set the `test_directory` argument to true.
53
+ #
54
+ # Rails::CodeStatistics.register_directory("Model specs", "spec/models", test_directory: true)
55
+ def self . register_directory ( label , path , test_directory : false )
51
56
self . directories << [ label , path ]
57
+ self . test_types << label
52
58
end
53
59
54
60
def initialize ( *pairs )
@@ -99,13 +105,13 @@ def calculate_total
99
105
100
106
def calculate_code
101
107
code_loc = 0
102
- @statistics . each { |k , v | code_loc += v . code_lines unless TEST_TYPES . include? k }
108
+ @statistics . each { |k , v | code_loc += v . code_lines unless test_types . include? k }
103
109
code_loc
104
110
end
105
111
106
112
def calculate_tests
107
113
test_loc = 0
108
- @statistics . each { |k , v | test_loc += v . code_lines if TEST_TYPES . include? k }
114
+ @statistics . each { |k , v | test_loc += v . code_lines if test_types . include? k }
109
115
test_loc
110
116
end
111
117
0 commit comments