summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2013-02-12 14:31:53 -0600
committerJesse Luehrs <doy@tozt.net>2013-02-12 14:31:53 -0600
commit5e9bb2f3ad7c11826c81d9f7c5782de82bd22354 (patch)
tree2b45e95e5033a537886df884c5f724c154488e46
parent31037aa59eac67d98aefc2d25f7d30764e319b67 (diff)
downloadscala-di-test-5e9bb2f3ad7c11826c81d9f7c5782de82bd22354.tar.gz
scala-di-test-5e9bb2f3ad7c11826c81d9f7c5782de82bd22354.zip
make the container parameterizable
-rw-r--r--src/main/scala/cake.scala32
1 files changed, 29 insertions, 3 deletions
diff --git a/src/main/scala/cake.scala b/src/main/scala/cake.scala
index e0d3eb2..e7a83ac 100644
--- a/src/main/scala/cake.scala
+++ b/src/main/scala/cake.scala
@@ -16,9 +16,35 @@ trait HasApplication extends cake.services.HasApplication {
class Application extends cake.application.Application(logger, database) with IApplication
}
-object Container extends HasApplication with HasLogger with HasDatabase {
- val logger = new Logger("out.log")
+class Container (
+ logFileName: String = "out.log",
+ dsn: String = "dbi:mysql:myapp",
+ username: String = "doy",
+ password: String = "blah"
+ ) extends HasApplication with HasLogger with HasDatabase {
+ val logger = new Logger(logFileName)
// val database = Database.connect("dbi:mysql:myapp", "doy", "blah")
- val database = new Database("dbi:mysql:myapp", "doy", "blah")
+ val database = new Database(dsn, username, password)
val application = new Application
}
+
+object MyApp extends Application {
+ val container1 = new Container
+ println("running container 1")
+ container1.application.run
+ println("done with container 1")
+
+ val container2 = new Container(logFileName = "other.log")
+ println("running container 2")
+ container2.application.run
+ println("done with container 2")
+
+ val container3 = new Container(
+ dsn = "dbi:SQLite::memory:",
+ username = "",
+ password = ""
+ )
+ println("running container 3")
+ container3.application.run
+ println("done with container 3")
+}