Skip to content

Instantly share code, notes, and snippets.

View AlexanderDaniel's full-sized avatar

Alexander Daniel AlexanderDaniel

View GitHub Profile
class NaiveCachingRepo(repo: Repo) extends Repo {
def plotd: Future[String] =
Cache.getOrElse(CacheKey.plotd) {
repo.plotd
}
}
class CachingRepo(repo: Repo) extends Repo {
def plotd: Future[String] = Cache.getAs[Future[String]](CacheKey.plotd) match {
case Some(value) => value
case None => repo.plotd map { valueFromRepo =>
Cache.set(CacheKey.plotd, Future(valueFromRepo))
valueFromRepo
}
}