@@ -17,34 +17,33 @@ class ScoverageHtmlWriter(sourceDirectory: File, outputDir: File) {
1717
1818 val index = IOUtils .readStreamAsString(getClass.getResourceAsStream(" /scoverage/index.html" ))
1919 IOUtils .writeToFile(indexFile, index)
20- IOUtils .writeToFile(packageFile, packages (coverage).toString)
20+ IOUtils .writeToFile(packageFile, packageList (coverage).toString)
2121 IOUtils .writeToFile(overviewFile, overview(coverage).toString)
2222
23- coverage.packages.foreach(write )
23+ coverage.packages.foreach(writePackage )
2424 }
2525
2626 private def relativeSource (src : String ): String = src.replace(sourceDirectory.getAbsolutePath + File .separator, " " )
2727
28- private def write (pkg : MeasuredPackage ): Unit = {
29- // package overview files are written out using a directory structure that respects the directory name
28+ private def writePackage (pkg : MeasuredPackage ): Unit = {
29+ // package overview files are written out using a filename that respects the package name
3030 // that means package com.example declared in a class at src/main/scala/mystuff/MyClass.scala will be written
31- // to com/example/package.html
32- // this is because a single class may have multiple packages so we cannot use original/path/package.html as
33- // they might clash
34- val packageFile = new File (pkg.name.replace(" <empty>" , " (empty)" ).replace(" ." , File .separator), " package.html" )
35- val file = new File (outputDir, packageFile.getPath)
31+ // to com.example.html
32+ val file = new File (outputDir, packageOverviewRelativePath(pkg))
3633 file.getParentFile.mkdirs()
3734 IOUtils .writeToFile(file, packageOverview(pkg).toString)
38- pkg.files.foreach(write(_, file.getParentFile) )
35+ pkg.files.foreach(writeFile )
3936 }
4037
41- private def write (mfile : MeasuredFile , dir : File ): Unit = {
38+ private def writeFile (mfile : MeasuredFile ): Unit = {
4239 // each highlighted file is written out using the same structure as the original file.
43- val file = new File (outputDir, relativeSource(mfile.source))
40+ val file = new File (outputDir, relativeSource(mfile.source) + " .html " )
4441 file.getParentFile.mkdirs()
4542 IOUtils .writeToFile(file, filePage(mfile).toString)
4643 }
4744
45+ private def packageOverviewRelativePath (pkg : MeasuredPackage ) = pkg.name.replace(" <empty>" , " (empty)" ) + " .html"
46+
4847 private def filePage (mfile : MeasuredFile ): Node = {
4948 val filename = relativeSource(mfile.source) + " .html"
5049 val css =
@@ -88,7 +87,7 @@ class ScoverageHtmlWriter(sourceDirectory: File, outputDir: File) {
8887
8988 }
9089
91- def head = {
90+ def header = {
9291 val css = """ .meter {
9392 | height: 14px;
9493 | position: relative;
@@ -156,7 +155,7 @@ class ScoverageHtmlWriter(sourceDirectory: File, outputDir: File) {
156155
157156 def packageOverview (pack : MeasuredPackage ): Node = {
158157 <html >
159- {head }<body style =" font-family: monospace;" >
158+ {header }<body style =" font-family: monospace;" >
160159 {classesTable(pack.classes, false )}
161160 </body >
162161 </html >
@@ -278,7 +277,7 @@ class ScoverageHtmlWriter(sourceDirectory: File, outputDir: File) {
278277 </tr >
279278 }
280279
281- def packages (coverage : Coverage ): Node = {
280+ def packageList (coverage : Coverage ): Node = {
282281 <html >
283282 <head >
284283 <meta http-equiv =" Content-Type" content =" text/html; charset=utf-8" />
@@ -303,7 +302,7 @@ class ScoverageHtmlWriter(sourceDirectory: File, outputDir: File) {
303302 </tr >{coverage.packages.map(arg =>
304303 <tr >
305304 <td >
306- <a href ={arg.name.replace( " <empty> " , " (empty) " ).replace( '.' , '/' ) + " /package.html " } target =" mainFrame" >
305+ <a href ={packageOverviewRelativePath(arg) } target =" mainFrame" >
307306 {arg.name}
308307 </a >{arg.statementCoverageFormatted}
309308 %
@@ -405,7 +404,7 @@ class ScoverageHtmlWriter(sourceDirectory: File, outputDir: File) {
405404
406405 def overview (coverage : Coverage ): Node = {
407406 <html >
408- {head }<body style =" font-family: monospace;" >
407+ {header }<body style =" font-family: monospace;" >
409408 <div class =" alert alert-info" >
410409 <b >
411410 SCoverage
0 commit comments