From 11ef3efcea24d35785d62057da78156b160709d6 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Tue, 12 Feb 2013 16:28:03 -0600 Subject: demonstrate using an alternate constructor --- src/main/scala/cake.scala | 9 ++++++--- src/main/scala/cake/database.scala | 11 +++++------ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/main/scala/cake.scala b/src/main/scala/cake.scala index df4b1b9..0395cad 100644 --- a/src/main/scala/cake.scala +++ b/src/main/scala/cake.scala @@ -7,7 +7,11 @@ trait HasLogger extends cake.services.HasLogger { trait HasDatabase extends cake.services.HasDatabase { type DatabaseType = Database - class Database(dsn: String, username: String, password: String) extends cake.database.DBI(dsn, username, password) with IDatabase + class Database protected (dsn: String, username: String, password: String) extends cake.database.DBI(dsn, username, password) with IDatabase + object Database { + def connect(dsn: String, username: String, password: String) = + new Database(dsn, username, password) + } } trait HasApplication extends cake.services.HasApplication { @@ -24,8 +28,7 @@ class Container ( ) extends HasApplication with HasLogger with HasDatabase { lazy val application = new Application lazy val logger = new Logger(logFileName) - // val database = Database.connect("dbi:mysql:myapp", "doy", "blah") - lazy val database = new Database(dsn, username, password) + lazy val database = Database.connect(dsn, username, password) } object MyApp extends Application { diff --git a/src/main/scala/cake/database.scala b/src/main/scala/cake/database.scala index 6ba4a1c..8c3a234 100644 --- a/src/main/scala/cake/database.scala +++ b/src/main/scala/cake/database.scala @@ -1,14 +1,13 @@ package cake.database -// class DBI private ( -class DBI ( +class DBI protected ( val dsn: String, val username: String, val password: String) { def query (search: String): String = "found " + search } -// object DBI { -// def connect (dsn: String, username: String, password: String) = -// new DBI(dsn, username, password) -// } +object DBI { + def connect (dsn: String, username: String, password: String) = + new DBI(dsn, username, password) +} -- cgit v1.2.3-54-g00ecf