@@ -25,7 +25,7 @@ class Report
2525
2626 attr_reader :changeset ,
2727 :lcov ,
28- :simplecov_resultset ,
28+ :coverage_adapter ,
2929 :results ,
3030 :code_dir ,
3131 :filter_set ,
@@ -35,15 +35,16 @@ class Report
3535 #
3636 # @param changeset [Undercover::Changeset]
3737 # @param opts [Undercover::Options]
38- def initialize ( changeset , opts )
39- if opts . simplecov_resultset
40- @simplecov_resultset = SimplecovResultAdapter . parse ( File . open ( opts . simplecov_resultset ) , opts )
41- end
42- @lcov = LcovParser . parse ( File . open ( opts . lcov ) , opts ) if opts . lcov
38+ # @param coverage_adapter [Undercover::SimplecovResultAdapter|Undercover::LcovParser] pre-parsed coverage adapter
39+ def initialize ( changeset , opts , coverage_adapter )
40+ @coverage_adapter = coverage_adapter
4341
4442 @code_dir = opts . path
4543 @changeset = changeset
46- @filter_set = FilterSet . new ( opts . glob_allow_filters , opts . glob_reject_filters )
44+
45+ ignored_files = coverage_adapter . ignored_files || [ ]
46+ @filter_set = FilterSet . new ( opts . glob_allow_filters , opts . glob_reject_filters , ignored_files )
47+ changeset . filter_with ( filter_set )
4748 @max_warnings_limit = opts . max_warnings_limit
4849 @loaded_files = { }
4950 @results = { }
@@ -106,29 +107,21 @@ def inspect
106107
107108 attr_reader :loaded_files
108109
109- # rubocop:disable Metrics/MethodLength, Metrics/ AbcSize
110+ # rubocop:disable Metrics/AbcSize
110111 def load_and_parse_file ( filepath )
111112 key = filepath . gsub ( /^\. \/ / , '' )
112113 return if loaded_files [ key ]
113- return unless include_file? ( filepath )
114114
115115 root_ast = Imagen ::Node ::Root . new . build_from_file (
116116 File . join ( code_dir , filepath )
117117 )
118118 return if root_ast . children . empty?
119119
120- # lcov will be deprecated at some point and we'll be able to refactor harder
121- coverage = simplecov_resultset || lcov
122-
123120 loaded_files [ key ] = [ ]
124121 root_ast . find_all ( -> ( node ) { !node . is_a? ( Imagen ::Node ::Root ) } ) . each do |imagen_node |
125- loaded_files [ key ] << Result . new ( imagen_node , coverage , filepath )
122+ loaded_files [ key ] << Result . new ( imagen_node , coverage_adapter , filepath )
126123 end
127124 end
128- # rubocop:enable Metrics/MethodLength, Metrics/AbcSize
129-
130- def include_file? ( filepath )
131- filter_set . include? ( filepath )
132- end
125+ # rubocop:enable Metrics/AbcSize
133126 end
134127end
0 commit comments