lib/xcov/model/report.rb in xcov-0.6 vs lib/xcov/model/report.rb in xcov-0.7

- old
+ new

@@ -15,11 +15,11 @@ @summary = self.create_summary end def average_coverage targets return 0 if targets.count == 0 - + coverage = 0 targets.each do |target| coverage = coverage + target.coverage end coverage / targets.count @@ -42,18 +42,33 @@ end # Class methods def self.map dictionary - targets = dictionary["targets"].select { |target| !target["name"].include?(".xctest") } + targets = Report.filter_targets dictionary["targets"] - # Don't filter test targets if the flag is set - targets = dictionary["targets"] if Xcov.config[:include_test_targets] - # Create target objects targets = targets.map { |target| Target.map(target)} Report.new(targets) + end + + def self.filter_targets targets + filtered_targets = Array.new(targets) + filtered_targets = filtered_targets.select { |target| !target["name"].include?(".xctest") } if !Xcov.config[:include_test_targets] + filtered_targets = filtered_targets.select { |target| !self.excluded_targets.include?(target["name"])} + + filtered_targets + end + + def self.excluded_targets + excluded_targets = Array.new() + + if Xcov.config[:exclude_targets] + excluded_targets = Xcov.config[:exclude_targets].split(/\s*,\s*/) + end + + excluded_targets end end end