aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/com/drivergrp/core/config.scala
diff options
context:
space:
mode:
authorvlad <vlad@drivergrp.com>2016-07-15 19:41:26 -0400
committervlad <vlad@drivergrp.com>2016-07-15 19:41:26 -0400
commitc0d574dc6134e4f406875ea5a1301ba46602a6ec (patch)
tree606a56d184bd8c4d67f98b5aa3fafa3640a8190f /src/main/scala/com/drivergrp/core/config.scala
downloaddriver-core-c0d574dc6134e4f406875ea5a1301ba46602a6ec.tar.gz
driver-core-c0d574dc6134e4f406875ea5a1301ba46602a6ec.tar.bz2
driver-core-c0d574dc6134e4f406875ea5a1301ba46602a6ec.zip
Initial commit with standard lib, might be used a example of cake
Diffstat (limited to 'src/main/scala/com/drivergrp/core/config.scala')
-rw-r--r--src/main/scala/com/drivergrp/core/config.scala43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/main/scala/com/drivergrp/core/config.scala b/src/main/scala/com/drivergrp/core/config.scala
new file mode 100644
index 0000000..5a89752
--- /dev/null
+++ b/src/main/scala/com/drivergrp/core/config.scala
@@ -0,0 +1,43 @@
+package com.drivergrp.core
+
+import java.io.File
+import com.typesafe.config.{Config, ConfigFactory}
+
+
+object config {
+
+ trait ConfigModule {
+ def config: Config
+ }
+
+ /**
+ * Configuration implementation providing config which is specified as the parameter
+ * which might be used for testing purposes
+ *
+ * @param config fixed config to provide
+ */
+ class DefaultConfigModule(val config: Config) extends ConfigModule
+
+ /**
+ * Configuration implementation reading default typesafe config
+ */
+ trait TypesafeConfigModule extends ConfigModule {
+
+ private val internalConfig: Config = {
+ val configDefaults =
+ ConfigFactory.load(this.getClass.getClassLoader, "application.conf")
+
+ scala.sys.props.get("application.config") match {
+
+ case Some(filename) =>
+ ConfigFactory.parseFile(new File(filename)).withFallback(configDefaults)
+
+ case None => configDefaults
+ }
+ }
+
+ protected val rootConfig = internalConfig
+
+ val config = rootConfig
+ }
+}