Class: Coverband::Utils::DeadMethods
- Inherits:
-
Object
- Object
- Coverband::Utils::DeadMethods
- Defined in:
- lib/coverband/utils/dead_methods.rb
Class Method Summary collapse
Class Method Details
.output_all ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/coverband/utils/dead_methods.rb', line 54 def self.output_all rows = scan_all.each_with_object( [%w[file class method line_number]] ) { |dead_method, rows| rows << [ dead_method.file_path, dead_method.class_name, dead_method.name, dead_method.first_line_number ] } rows.to_table end |
.scan(file_path:, coverage:) ⇒ Object
33 34 35 36 37 |
# File 'lib/coverband/utils/dead_methods.rb', line 33 def self.scan(file_path:, coverage:) MethodDefinitionScanner.scan(file_path).reject do |method_definition| method_definition.body.coverage?(coverage) end end |
.scan_all ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/coverband/utils/dead_methods.rb', line 39 def self.scan_all # If the file was loaded during eager loading and then its code is never executed # during runtime, then it will not have any runtime coverage. When reporting # dead methods, we need to look at all the files discovered during the eager loading # and runtime phases. coverage = Coverband.configuration.store.get_coverage_report[Coverband::MERGED_TYPE] coverage.flat_map do |file_path, coverage| next [] unless File.exist?(file_path) scan(file_path: file_path, coverage: coverage["data"]) rescue Errno::ENOENT [] end end |