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