diff --git a/project/BuildSettings.scala b/project/BuildSettings.scala index a2a3213..68ba642 100644 --- a/project/BuildSettings.scala +++ b/project/BuildSettings.scala @@ -27,6 +27,8 @@ import com.typesafe.sbt.site.SiteScaladocPlugin.autoImport.SiteScaladoc object BuildSettings { lazy val publishSettings = Seq[Setting[_]]( + publishTo := Some("Artifactory Realm" at s"https://boomtrain.jfrog.io/artifactory/sbt"), + credentials += Credentials("Artifactory Realm", "liveintent.jfrog.io", "user", "password"), publishArtifact := true, Test / publishArtifact := false, pomIncludeRepository := { _ => false }, diff --git a/src/main/scala/com/snowplowanalytics/refererparser/Parser.scala b/src/main/scala/com/snowplowanalytics/refererparser/Parser.scala index 8230fa4..f971507 100644 --- a/src/main/scala/com/snowplowanalytics/refererparser/Parser.scala +++ b/src/main/scala/com/snowplowanalytics/refererparser/Parser.scala @@ -27,6 +27,8 @@ import scala.collection.compat.immutable.LazyList trait CreateParser[F[_]] { def create(filePath: String): F[Either[Exception, Parser]] + + def createFromConfig(jsonContent: String): F[Either[Exception, Parser]] } object CreateParser { @@ -38,6 +40,11 @@ object CreateParser { Sync[F] .delay(Source.fromFile(filePath).mkString) .map(rawJson => ParseReferers.loadJsonFromString(rawJson).map(referers => new Parser(referers))) + + def createFromConfig(jsonContent: String): F[Either[Exception, Parser]] = + Sync[F] + .pure(jsonContent) + .map(rawJson => ParseReferers.loadJsonFromString(rawJson).map(referers => new Parser(referers))) } implicit def evalCreateParser: CreateParser[Eval] = @@ -46,6 +53,11 @@ object CreateParser { Eval .later(Source.fromFile(filePath).mkString) .map(rawJson => ParseReferers.loadJsonFromString(rawJson).map(referers => new Parser(referers))) + + def createFromConfig(jsonContent: String): Eval[Either[Exception, Parser]] = + Eval + .now(jsonContent) + .map(rawJson => ParseReferers.loadJsonFromString(rawJson).map(referers => new Parser(referers))) } implicit def idCreateParser: CreateParser[Id] = @@ -54,6 +66,9 @@ object CreateParser { val rawJson = Source.fromFile(filePath).mkString ParseReferers.loadJsonFromString(rawJson).map(referers => new Parser(referers)) } + + def createFromConfig(jsonContent: String): Id[Either[Exception, Parser]] = + ParseReferers.loadJsonFromString(jsonContent).map(referers => new Parser(referers)) } }