take advantage of play 2.2 json improvements in wiki module

This commit is contained in:
Thibault Duplessis 2013-04-04 09:19:26 -03:00
parent 761e92a04f
commit 164b252e1b
4 changed files with 14 additions and 10 deletions

View file

@ -2,6 +2,7 @@ package lila.wiki
import lila.db.Types.Coll
import lila.db.api._
import tube._
import play.api.libs.concurrent.Execution.Implicits._
final class Api(implicit coll: Coll) {

View file

@ -2,6 +2,7 @@ package lila.wiki
import lila.db.Types.Coll
import lila.db.api._
import tube._
import java.io.File
import com.google.common.io.Files
@ -24,7 +25,7 @@ private[wiki] final class Fetch(gitUrl: String)(implicit coll: Coll) {
private def filePage(file: File): Option[Page] = {
val name = """^(.+)\.md$""".r.replaceAllIn(file.getName, _ group 1)
(name != "Home") option Pages(name, toHtml(fileContent(file)))
(name != "Home") option Page.make(name, toHtml(fileContent(file)))
}
private def getFiles: Fu[List[File]] = Future {

View file

@ -5,17 +5,22 @@ case class Page(id: String, name: String, title: String, body: String) {
def slug = id
}
object Pages {
object Page {
import java.text.Normalizer
import java.util.regex.Matcher.quoteReplacement
def apply(name: String, body: String): Page = new Page(
def make(name: String, body: String): Page = new Page(
id = dropNumber(slugify(name)),
name = name,
title = dropNumber(name.replace("-", " ")),
body = body)
import lila.db.Tube
import play.api.libs.json._
val tube = Tube(Json.reads[Page], Json.writes[Page])
// does not lowercase
private def slugify(input: String) = {
val nowhitespace = input.replace(" ", "_")

View file

@ -1,12 +1,9 @@
package lila
import lila.db._
import play.api.libs.json._
package object wiki extends PackageObject with WithPlay {
implicit lazy val pageTube = Tube(
Json.reads[Page],
Json.writes[Page]
) inColl Env.current.pageColl
object tube {
implicit lazy val pageTube = Page.tube inColl Env.current.pageColl
}
}