summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLi Haoyi <haoyi@dropbox.com>2014-09-05 13:20:48 -0700
committerLi Haoyi <haoyi@dropbox.com>2014-09-05 13:20:48 -0700
commitcf9b1e5dc81d4c3a30a26cb18e38f7db03460ef4 (patch)
tree8df706e2ebcbab222e898d30dea71fdef0b419ca /src
parent020885615083203808a3ea7ab3181cedf9a48331 (diff)
downloadworkbench-cf9b1e5dc81d4c3a30a26cb18e38f7db03460ef4.tar.gz
workbench-cf9b1e5dc81d4c3a30a26cb18e38f7db03460ef4.tar.bz2
workbench-cf9b1e5dc81d4c3a30a26cb18e38f7db03460ef4.zip
Workbench is now pure-scala
Diffstat (limited to 'src')
-rw-r--r--src/main/scala/workbench/Server.scala28
1 files changed, 17 insertions, 11 deletions
diff --git a/src/main/scala/workbench/Server.scala b/src/main/scala/workbench/Server.scala
index 96ac736..bec88b6 100644
--- a/src/main/scala/workbench/Server.scala
+++ b/src/main/scala/workbench/Server.scala
@@ -14,13 +14,13 @@ import scala.concurrent.Future
class Server(url: String, port: Int, bootSnippet: String) extends SimpleRoutingApp{
implicit val system = ActorSystem(
- "SystemLol",
+ "Workbench-System",
config = ConfigFactory.load(ActorSystem.getClass.getClassLoader),
classLoader = ActorSystem.getClass.getClassLoader
)
object Wire extends autowire.Client[Js.Value, upickle.Reader, upickle.Writer]{
def doCall(req: Request): Future[Js.Value] = {
- pubSub ! Js.Arr(Js.Str(req.path.mkString(".")), Js.Obj(req.args.toSeq:_*))
+ pubSub ! Js.Arr(upickle.writeJs(req.path), Js.Obj(req.args.toSeq:_*))
Future.successful(Js.Null)
}
def write[Result: Writer](r: Result) = upickle.writeJs(r)
@@ -63,19 +63,25 @@ class Server(url: String, port: Int, bootSnippet: String) extends SimpleRoutingA
get {
path("workbench.js") {
complete {
- IO.readStream(
- getClass.getClassLoader
- .getResourceAsStream("client-opt.js")
- ) + s"\nMain.main(${upickle.write(bootSnippet)}, ${upickle.write(url)}, ${upickle.write(port)})"
+ val body = IO.readStream(
+ getClass.getClassLoader.getResourceAsStream("client-opt.js")
+ )
+ s"""
+ (function(){
+ $body
+
+ WorkbenchClient().main(${upickle.write(bootSnippet)}, ${upickle.write(url)}, ${upickle.write(port)})
+ }).call(this)
+ """
}
} ~
- getFromDirectory(".")
+ getFromDirectory(".")
} ~
- post {
- path("notifications") { ctx =>
- pubSub ! ctx.responder
- }
+ post {
+ path("notifications") { ctx =>
+ pubSub ! ctx.responder
}
+ }
}
def kill() = {
system.shutdown()