Skip to content

Instantly share code, notes, and snippets.

Avatar

Alexander Daniel AlexanderDaniel

  • Austria
View GitHub Profile
View NaiveCachingRepo.scala
class NaiveCachingRepo(repo: Repo) extends Repo {
def plotd: Future[String] =
Cache.getOrElse(CacheKey.plotd) {
repo.plotd
}
}
View CachingRepo.scala
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
}
}
You can’t perform that action at this time.