Skip to content

Commit

Permalink
Merge pull request #5 from ricemery/leap
Browse files Browse the repository at this point in the history
Fix issue finding exercises - broken in 0.1.4.
  • Loading branch information
ricemery authored Aug 16, 2019
2 parents d57cb2e + 28b4d7b commit 3190bc4
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 9 deletions.
2 changes: 1 addition & 1 deletion build.sbt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name := "scala-analyzer"
version := "0.1.4"
version := "0.1.5"

scalaVersion := "2.12.8"

Expand Down
7 changes: 5 additions & 2 deletions src/main/scala/io/exercism/analyzer/Analyzer.scala
Original file line number Diff line number Diff line change
Expand Up @@ -35,19 +35,22 @@ object Analyzer {

val optimalSolutionSrcs = getSources(optimalSolutions)

val filePath = new File(exerciseDir, "Twofer.scala").getAbsolutePath
val filePath = getPathToSolution(exerciseDir, "Twofer.scala")
analyze(filePath, optimalSolutionSrcs,
(source: Source) => new TwoferAnalyzer().analyze(source, optimalSolutionSrcs))
}

private def analyzeLeap(exerciseDir: String): Analysis = {
val optimalSolutionSrcs = Nil

val filePath = new File(exerciseDir, "Leap.scala").getAbsolutePath
val filePath = getPathToSolution(exerciseDir, "Leap.scala")
analyze(filePath, optimalSolutionSrcs,
(source: Source) => new LeapAnalyzer().analyze(source, optimalSolutionSrcs))
}

private def getPathToSolution(exerciseDir: String, fileName: String): String =
new File(new File(exerciseDir, "src/main/scala"), fileName).getAbsolutePath

private def analyze(filePath: String,
optimalSolutionSrcs: List[Source],
analyzer: Source => Analysis): Analysis = {
Expand Down
5 changes: 1 addition & 4 deletions src/main/scala/io/exercism/analyzer/ExerciseParser.scala
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package io.exercism.analyzer

import java.io.File
import java.nio.file.{InvalidPathException, NoSuchFileException}

import cats.effect.SyncIO
Expand Down Expand Up @@ -30,14 +29,12 @@ object ExerciseParser {
case Left(t) => t match {
case _@(_: InvalidPathException | _: NoSuchFileException) =>
Left(Analysis(AnalysisStatuses.ReferToMentor, List(Comment("scala.general.file_not_found",
Map("solutionFile" -> getExerciseFilename(filePath))))))
Map("solutionFile" -> filePath)))))
case _: Throwable => Left(Analysis(AnalysisStatuses.ReferToMentor, List(Comment("scala.general.unexpected_exception"))))
}
}
}

syncIo.unsafeRunSync()
}

private def getExerciseFilename(filePath: String) = new File(filePath).getName
}
4 changes: 2 additions & 2 deletions src/test/scala/io/exercism/analyzer/ExerciseParserTest.scala
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ class ExerciseParserTest extends FunSuite with Matchers {
test("bad filename") {
val either = ExerciseParser.parse("./src/test/resources/io/exercism/analyzer/exercises/two-fer/Twofer.scala")
either should be (Left(Analysis(AnalysisStatuses.ReferToMentor, List(Comment("scala.general.file_not_found",
Map("solutionFile" -> "Twofer.scala"))))))
Map("solutionFile" -> "./src/test/resources/io/exercism/analyzer/exercises/two-fer/Twofer.scala"))))))
}

test("bad path") {
val either = ExerciseParser.parse("./src/test/resources/io/exercism/analyzer/exercises/bogus/Twofer.scala")
either should be (Left(Analysis(AnalysisStatuses.ReferToMentor, List(Comment("scala.general.file_not_found",
Map("solutionFile" -> "Twofer.scala"))))))
Map("solutionFile" -> "./src/test/resources/io/exercism/analyzer/exercises/bogus/Twofer.scala"))))))
}
}

0 comments on commit 3190bc4

Please sign in to comment.