class FormGenerator

Public Class Methods

new(outputDirectoryOpt, testedFunctionsMap, analyzedClasses, numProjectFiles, numTestFiles) click to toggle source
# File lib/FormGenerator.rb, line 8
def initialize (outputDirectoryOpt, testedFunctionsMap, analyzedClasses, numProjectFiles, numTestFiles)
        @analyzedClasses = analyzedClasses
        @testedFunctionsMap = testedFunctionsMap
        @totalLines = 0
        @numClasses = 0
        @numFunc = 0
        @numProjectFiles = numProjectFiles
        @numTestFiles = numTestFiles
        @analysisDirectory = "SwiftCodeCoverage"
        if outputDirectoryOpt != nil
                if outputDirectoryOpt[-1,1] == "/"
                        outputDirectoryOpt = outputDirectoryOpt[0..-2]
                end
                puts outputDirectoryOpt
                @analysisDirectory = "#{outputDirectoryOpt}/#{@analysisDirectory}"
        end

        @filesDir = "AnalysisFiles"
end

Public Instance Methods

analysisDirectory() click to toggle source
# File lib/FormGenerator.rb, line 131
def analysisDirectory
        @analysisDirectory
end
analyzedClasses() click to toggle source
# File lib/FormGenerator.rb, line 111
def analyzedClasses
        @analyzedClasses
end
classesTested() click to toggle source
# File lib/FormGenerator.rb, line 79
def classesTested
        numClasses = 0
        for analyzedClass in @analyzedClasses
                if analyzedClass.testedFunctions.count > 0
                        numClasses += 1
                end
        end
        return numClasses
end
createProjectStats() click to toggle source
# File lib/FormGenerator.rb, line 59
def createProjectStats
        for analyzedClass in @analyzedClasses
                @numClasses += 1
                @numFunc += analyzedClass.functions.count
                @totalLines += analyzedClass.numberOfLines
        end
end
functionsTested() click to toggle source
# File lib/FormGenerator.rb, line 67
def functionsTested
        numLines = 0
        numFunctions = 0
        for analyzedClass in @analyzedClasses
                for function in analyzedClass.testedFunctions
                        numLines += function.numLines
                        numFunctions += 1
                end
        end
        return numLines, numFunctions
end
generateForm() click to toggle source
# File lib/FormGenerator.rb, line 28
def generateForm
        createProjectStats
        printResultsToCommandLine

        # Start creating HTML

        puts 
        puts "Generating form..."
        puts "#{@analysisDirectory}"

        if File.directory?(@analysisDirectory)
                FileUtils.rm_rf(@analysisDirectory)
        end
        Dir.mkdir(@analysisDirectory)

        indexHTML = IndexHTMLFile.new(self)
        indexHTML.beginWriting

        for analyzedClass in @analyzedClasses
              analysisFile = AnalysisHTMLFile.new("#{@analysisDirectory}/#{@filesDir}", analyzedClass)
              analysisFile.writeFile
                indexHTML.addAnalysisItem analyzedClass, analysisFile
end
        
        indexHTML.endWriting

puts "Finished generating form at #{@analysisDirectory}"

# Finish HTML
end
numClasses() click to toggle source
# File lib/FormGenerator.rb, line 123
def numClasses
        @numClasses
end
numFunc() click to toggle source
# File lib/FormGenerator.rb, line 127
def numFunc
        @numFunc
end
numProjectFiles() click to toggle source
# File lib/FormGenerator.rb, line 135
def numProjectFiles
        @numProjectFiles
end
numTestFiles() click to toggle source
# File lib/FormGenerator.rb, line 139
def numTestFiles
        @numTestFiles
end
printResultsToCommandLine() click to toggle source
# File lib/FormGenerator.rb, line 89
def printResultsToCommandLine

        puts

        puts "Total classes: #{@numClasses}"
        puts "Total functions: #{@numFunc}"
        puts "Total lines: #{@totalLines}"

        puts

        numLinesTested, numFunctionsTested = functionsTested

        puts "Total functions Tested: #{numFunctionsTested}"
        puts "Total lines Tested: #{numLinesTested}"

        percFunc = (numFunctionsTested / Float(@numFunc) * 100).round
        percLines = (numLinesTested / Float(@totalLines) * 100).round

        puts "Function coverage: #{percFunc}%"
        puts "Line coverage: #{percLines}%"
end
testedFunctionsMap() click to toggle source
# File lib/FormGenerator.rb, line 115
def testedFunctionsMap
        @testedFunctionsMap                   
end
totalLines() click to toggle source
# File lib/FormGenerator.rb, line 119
def totalLines
        @totalLines
end