blob: 2be7ed7568a1eef3b2c983a5a248156f6519ea0c (
plain) (
tree)
|
|
package xyz.driver.pdsuicommon.resources
import scala.io.{Codec, Source}
trait ResourcesStorage {
/**
* @param resourcePath Don't forget / at start
*/
def getFirstLine(resourcePath: String): String
}
object RealResourcesStorage extends ResourcesStorage {
def getFirstLine(resourcePath: String): String = {
val resourceUrl = getClass.getResource(resourcePath)
Option(resourceUrl) match {
case Some(url) =>
val source = Source.fromURL(resourceUrl)(Codec.UTF8)
try {
val lines = source.getLines()
if (lines.isEmpty) throw new RuntimeException(s"'$resourcePath' is empty")
else lines.next()
} finally {
source.close()
}
case None =>
throw new RuntimeException(s"Can not find the '$resourcePath'!")
}
}
}
object FakeResourcesStorage extends ResourcesStorage {
def getFirstLine(resourcePath: String): String = ""
}
|