class IndexHTMLFile

Public Class Methods

new(directory) click to toggle source
# File lib/IndexHTMLFile.rb, line 5
def initialize(directory)
        @directory = directory
        @totalLines = 0
        @totalValidLines = 0
        @totalInvalidLines = 0
        @indexHTMLString = ""
end

Public Instance Methods

addAnalysisFilesTable() click to toggle source
# File lib/IndexHTMLFile.rb, line 76
def addAnalysisFilesTable
    @indexHTML.puts "<table cellpadding=\"0\" cellspacing=\"10\" class=\"table\" bgcolor=\"#E8E8E8\" col width=\"800\">"
    @indexHTML.puts "<tr>"
    @indexHTML.puts "<th>File</th>"
    @indexHTML.puts "<th>Invalid Statements</th>"
    @indexHTML.puts "<th>Percent Valid</th>"
    @indexHTML.puts "</tr>"
    @indexHTML.puts @indexHTMLString
    @indexHTML.puts "</table>"
end
addAnalysisItem(analysisFile) click to toggle source
# File lib/IndexHTMLFile.rb, line 17
def addAnalysisItem (analysisFile)
        @totalLines += analysisFile.totalLines
        @totalInvalidLines += analysisFile.invalidLines
        @totalValidLines += analysisFile.validLines

        htmlFileName = analysisFile.name
        htmlFileName = htmlFileName.gsub(".swift", "")
        htmlFileName = htmlFileName.gsub("./", "")

        @indexHTMLString += "<tr>"
        @indexHTMLString += "\n<td>"
        @indexHTMLString += "\n<a href=\"#{analysisFile.directory.gsub(@directory + "/", "")}/#{analysisFile.name}.html\">#{htmlFileName}.html</a>"
        @indexHTMLString += "\n</td>"
        @indexHTMLString += "\n<td align=\"center\">"
        @indexHTMLString += "\n#{analysisFile.invalidLines}"
        @indexHTMLString += "\n</td>"

validLinePercentage = ((analysisFile.invalidLines / Float(analysisFile.totalLines) - 1) * -100).round
color = colorForValidLinePercentage validLinePercentage
        @indexHTMLString += "\n<td align=\"center\" bgcolor=\"#{color}\">"
        @indexHTMLString += "\n#{validLinePercentage}%"
        @indexHTMLString += "\n</td>"
        @indexHTMLString += "\n</tr>"
end
addTotalStatsTable() click to toggle source
# File lib/IndexHTMLFile.rb, line 42
def addTotalStatsTable
    @indexHTML.puts "<table cellpadding=\"0\" cellspacing=\"10\" class=\"table\" bgcolor=\"#E8E8E8\" col width=\"800\">"
    @indexHTML.puts "<tr>"
    @indexHTML.puts "<th>Total Lines</th>"
    @indexHTML.puts "<th>Invalid Lines</th>"
    @indexHTML.puts "<th>Valid Lines</th>"
    @indexHTML.puts "<th>Percent Valid</th>"
    @indexHTML.puts "</tr>"
    
    @indexHTML.puts "<tr>"
    
    @indexHTML.puts "<td align=\"center\">"
    @indexHTML.puts "#{@totalLines}"
    @indexHTML.puts "</td>"
    
    @indexHTML.puts "<td align=\"center\">"
    @indexHTML.puts "#{@totalInvalidLines}"
    @indexHTML.puts "</td>"
    
    @indexHTML.puts "<td align=\"center\">"
    @indexHTML.puts "#{@totalValidLines}"
    @indexHTML.puts "</td>"
    
    validLinePercentage = ((@totalInvalidLines / Float(@totalLines) - 1) * -1 * 100).round
    color = colorForValidLinePercentage validLinePercentage
    @indexHTML.puts "<td align=\"center\" bgcolor=\"#{color}\">"
    @indexHTML.puts "#{validLinePercentage}%"
    @indexHTML.puts "</td>"
    
    @indexHTML.puts "</tr>"
    
    @indexHTML.puts "</table>"
end
beginWriting() click to toggle source
# File lib/IndexHTMLFile.rb, line 13
def beginWriting
        @indexHTML = File.new("#{@directory}/index.html", "w+")
end
colorForValidLinePercentage(percentage) click to toggle source
# File lib/IndexHTMLFile.rb, line 87
def colorForValidLinePercentage (percentage)
    if percentage >= 95
        return "#52CC52" # Green
    end

    if percentage >= 90 and percentage < 95
       return "yellow"
    end

    if percentage < 90
       return "#FF0000" # Red
    end
end
endWriting() click to toggle source
# File lib/IndexHTMLFile.rb, line 101
def endWriting
        @indexHTML.puts "<HTML><BODY>"
        addTotalStatsTable
        addAnalysisFilesTable
        @indexHTML.puts "</BODY></HTML>"
        @indexHTML.close()
end