aboutsummaryrefslogtreecommitdiff
path: root/libraries/eval/Eval.scala
diff options
context:
space:
mode:
authorJeremy Cloud <jeremycloud@twitter.com>2010-10-15 10:06:59 -0700
committerChristopher Vogt <oss.nsp@cvogt.org>2016-11-07 02:08:37 -0500
commit61d68d953103e5d3cb5047a1cb7d2df515411b46 (patch)
tree6b7bb126e16a2b375356775bcdf849302f3e3e47 /libraries/eval/Eval.scala
parent42d267437746ebcb81145a3010484d0c32bc4266 (diff)
downloadcbt-61d68d953103e5d3cb5047a1cb7d2df515411b46.tar.gz
cbt-61d68d953103e5d3cb5047a1cb7d2df515411b46.tar.bz2
cbt-61d68d953103e5d3cb5047a1cb7d2df515411b46.zip
randomizing evaled class name to avoid conflicts
Diffstat (limited to 'libraries/eval/Eval.scala')
-rw-r--r--libraries/eval/Eval.scala12
1 files changed, 7 insertions, 5 deletions
diff --git a/libraries/eval/Eval.scala b/libraries/eval/Eval.scala
index e606b7c..e181155 100644
--- a/libraries/eval/Eval.scala
+++ b/libraries/eval/Eval.scala
@@ -1,12 +1,13 @@
package com.twitter.util
-import scala.tools.nsc.{Global, Settings}
-import scala.tools.nsc.reporters.ConsoleReporter
-import scala.runtime._
import java.io.{File, FileWriter}
import java.net.{URL, URLClassLoader}
-import scala.io.Source
import java.util.jar._
+import java.util.Random
+import scala.io.Source
+import scala.runtime._
+import scala.tools.nsc.reporters.ConsoleReporter
+import scala.tools.nsc.{Global, Settings}
/**
* Eval is a utility function to evaluate a file and return its results.
@@ -65,12 +66,13 @@ import java.util.jar._
object Eval {
private val compilerPath = jarPathOfClass("scala.tools.nsc.Interpreter")
private val libPath = jarPathOfClass("scala.ScalaObject")
+ private val random = new Random()
/**
* Eval[Int]("1 + 1") // => 2
*/
def apply[T](stringToEval: String): T = {
- val className = "Evaluator"
+ val className = "Evaluator" + random.nextInt().abs
val targetDir = new File(System.getProperty("java.io.tmpdir"))
val wrappedFile = wrapInClass(stringToEval, className, targetDir)
compile(wrappedFile, targetDir)