Class: Xcov::Report

Inherits:
Base
  • Object
show all
Defined in:
lib/xcov/model/report.rb

Instance Attribute Summary collapse

Attributes inherited from Base

#coverage_color, #displayable_coverage, #id, #name

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#create_coverage_color, #create_displayable_coverage, #create_summary, template

Constructor Details

#initialize(targets) ⇒ Report

Returns a new instance of Report.



10
11
12
13
14
15
16
# File 'lib/xcov/model/report.rb', line 10

def initialize (targets)
  @targets = targets
  @coverage = average_coverage(targets)
  @displayable_coverage = self.create_displayable_coverage
  @coverage_color = self.create_coverage_color
  @summary = self.create_summary
end

Instance Attribute Details

#coverageObject

Returns the value of attribute coverage.



5
6
7
# File 'lib/xcov/model/report.rb', line 5

def coverage
  @coverage
end

#summaryObject

Returns the value of attribute summary.



7
8
9
# File 'lib/xcov/model/report.rb', line 7

def summary
  @summary
end

#target_templatesObject

Returns the value of attribute target_templates.



8
9
10
# File 'lib/xcov/model/report.rb', line 8

def target_templates
  @target_templates
end

#targetsObject

Returns the value of attribute targets.



6
7
8
# File 'lib/xcov/model/report.rb', line 6

def targets
  @targets
end

Class Method Details

.map(dictionary) ⇒ Object

Class methods



44
45
46
47
48
49
50
# File 'lib/xcov/model/report.rb', line 44

def self.map dictionary
  targets = dictionary["targets"]
    .select { |target| !target["name"].include?(".xctest") }
    .map { |target| Target.map(target)}

  Report.new(targets)
end

Instance Method Details

#average_coverage(targets) ⇒ Object



18
19
20
21
22
23
24
# File 'lib/xcov/model/report.rb', line 18

def average_coverage targets
  coverage = 0
  targets.each do |target|
    coverage = coverage + target.coverage
  end
  coverage / targets.count
end

#html_valueObject



33
34
35
36
37
38
39
40
# File 'lib/xcov/model/report.rb', line 33

def html_value
  @target_templates = ""
  @targets.each do |target|
    @target_templates << target.html_value
  end

  Function.template("report").result(binding)
end


26
27
28
29
30
31
# File 'lib/xcov/model/report.rb', line 26

def print_description
  puts "Total coverage: (#{@coverage})"
  @targets.each do |target|
    target.print_description
  end
end