class Xcov::Target
Attributes
file_templates[RW]
files[RW]
name[RW]
Public Class Methods
by_coverage_with_ignored_at_the_end()
click to toggle source
# File lib/xcov/model/target.rb, line 65 def self.by_coverage_with_ignored_at_the_end lambda { |lhs, rhs| if lhs.ignored == rhs.ignored # sort by coverage if files are both ignored # or none of them are ignored (lhs.coverage <=> rhs.coverage) else # ignored files will come at the end (lhs.ignored ? 1:0) <=> (rhs.ignored ? 1:0) end } end
map(dictionary)
click to toggle source
Class methods
# File lib/xcov/model/target.rb, line 56 def self.map(dictionary) name = dictionary["name"] files = dictionary["files"].map { |file| Source.map(file)} files = files.sort &by_coverage_with_ignored_at_the_end non_ignored_files = Target.select_non_ignored_files(files) Target.new(name, non_ignored_files) end
new(name, files)
click to toggle source
# File lib/xcov/model/target.rb, line 10 def initialize(name, files) @name = CGI::escapeHTML(name) @files = files totalCoveredLines = files.reduce(0) { |acc, file| acc + file.coveredLines } totalExecutableLines = files.reduce(0) { |acc, file| acc + file.executableLines } @coverage = files.count == 0 || totalExecutableLines == 0 ? 0.0 : totalCoveredLines.to_f / totalExecutableLines.to_f @displayable_coverage = self.create_displayable_coverage @coverage_color = self.create_coverage_color @id = Target.create_id(name) end
select_non_ignored_files(files)
click to toggle source
# File lib/xcov/model/target.rb, line 78 def self.select_non_ignored_files(files) files.select { |file| !file.ignored } end
Public Instance Methods
html_value()
click to toggle source
# File lib/xcov/model/target.rb, line 28 def html_value @file_templates = "" @files.each do |file| @file_templates << file.html_value end Function.template("target").result(binding) end
json_value()
click to toggle source
# File lib/xcov/model/target.rb, line 46 def json_value { "name" => @name, "coverage" => @coverage, "files" => @files ? @files.map{ |file| file.json_value } : [] } end
markdown_value()
click to toggle source
# File lib/xcov/model/target.rb, line 37 def markdown_value markdown = "## Current coverage for #{@name} is `#{@displayable_coverage}`\n" return markdown << "✅ *No files affecting coverage found*\n\n---\n" if @files.empty? markdown << "Files changed | - | - \n--- | --- | ---\n" markdown << "#{@files.map { |file| file.markdown_value }.join("")}\n---\n" markdown end
print_description()
click to toggle source
# File lib/xcov/model/target.rb, line 21 def print_description puts "\t#{@name} (#{@coverage})" @files.each do |file| file.print_description end end