summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-07-22 00:06:06 +0800
committerLi Haoyi <haoyi.sg@gmail.com>2018-07-22 00:13:03 +0800
commitf08ecab418034f99f6fcf0a469d02f3435345cc2 (patch)
tree0a9fe1520fcc7491fbaecd5ca65b681ced8106ee
parent1cfe997b4d8874738c2ed384dc221420b42f551b (diff)
downloadcask-f08ecab418034f99f6fcf0a469d02f3435345cc2.tar.gz
cask-f08ecab418034f99f6fcf0a469d02f3435345cc2.tar.bz2
cask-f08ecab418034f99f6fcf0a469d02f3435345cc2.zip
renamings
-rw-r--r--cask/src/cask/Endpoints.scala (renamed from cask/src/cask/Annotations.scala)14
-rw-r--r--cask/src/cask/Main.scala6
-rw-r--r--cask/src/cask/Routes.scala20
-rw-r--r--cask/test/src/test/cask/VariableRoutes.scala4
4 files changed, 21 insertions, 23 deletions
diff --git a/cask/src/cask/Annotations.scala b/cask/src/cask/Endpoints.scala
index 17e6b0a..8363104 100644
--- a/cask/src/cask/Annotations.scala
+++ b/cask/src/cask/Endpoints.scala
@@ -4,7 +4,7 @@ import cask.Router.EntryPoint
import io.undertow.server.HttpServerExchange
import collection.JavaConverters._
-trait EndpointAnnotation[R]{
+trait Endpoint[R]{
val path: String
def subpath: Boolean = false
def wrapMethodOutput(t: R): Any
@@ -16,7 +16,7 @@ trait EndpointAnnotation[R]{
routes: Routes,
entryPoint: EntryPoint[Routes, (HttpServerExchange, Seq[String])]): Router.Result[Response]
}
-trait RouteBase extends EndpointAnnotation[Response]{
+trait WebEndpoint extends Endpoint[Response]{
def wrapMethodOutput(t: Response) = t
def handle(exchange: HttpServerExchange,
remaining: Seq[String],
@@ -34,11 +34,11 @@ trait RouteBase extends EndpointAnnotation[Response]{
.asInstanceOf[Router.Result[Response]]
}
}
-class get(val path: String, override val subpath: Boolean = false) extends RouteBase
-class post(val path: String, override val subpath: Boolean = false) extends RouteBase
-class put(val path: String, override val subpath: Boolean = false) extends RouteBase
-class route(val path: String, val methods: Seq[String], override val subpath: Boolean = false) extends RouteBase
-class static(val path: String) extends EndpointAnnotation[String] {
+class get(val path: String, override val subpath: Boolean = false) extends WebEndpoint
+class post(val path: String, override val subpath: Boolean = false) extends WebEndpoint
+class put(val path: String, override val subpath: Boolean = false) extends WebEndpoint
+class route(val path: String, val methods: Seq[String], override val subpath: Boolean = false) extends WebEndpoint
+class static(val path: String) extends Endpoint[String] {
override def subpath = true
def wrapOutput(t: String) = t
diff --git a/cask/src/cask/Main.scala b/cask/src/cask/Main.scala
index 4469a1e..8cdbd4f 100644
--- a/cask/src/cask/Main.scala
+++ b/cask/src/cask/Main.scala
@@ -3,7 +3,7 @@ import cask.Router.EntryPoint
import java.io.OutputStream
import java.nio.ByteBuffer
-import cask.Routes.Metadata
+import cask.Routes.RoutesEndpointsMetadata
import io.undertow.Undertow
import io.undertow.server.handlers.BlockingHandler
import io.undertow.server.{HttpHandler, HttpServerExchange}
@@ -22,10 +22,10 @@ abstract class BaseMain{
lazy val routeList = for{
routes <- allRoutes
- route <- routes.caskMetadata.value.map(x => x: Routes.RouteMetadata[_])
+ route <- routes.caskMetadata.value.map(x => x: Routes.EndpointMetadata[_])
} yield (routes, route)
- lazy val routeTrie = DispatchTrie.construct[(Routes, Routes.RouteMetadata[_])](0,
+ lazy val routeTrie = DispatchTrie.construct[(Routes, Routes.EndpointMetadata[_])](0,
for((route, metadata) <- routeList)
yield (Util.splitPath(metadata.metadata.path): IndexedSeq[String], (route, metadata), metadata.metadata.subpath)
)
diff --git a/cask/src/cask/Routes.scala b/cask/src/cask/Routes.scala
index 0145c91..01783f0 100644
--- a/cask/src/cask/Routes.scala
+++ b/cask/src/cask/Routes.scala
@@ -31,18 +31,18 @@ object Response{
}
object Routes{
- case class RouteMetadata[T](metadata: EndpointAnnotation[_],
- entryPoint: EntryPoint[T, (HttpServerExchange, Seq[String])])
- case class Metadata[T](value: RouteMetadata[T]*)
- object Metadata{
+ case class EndpointMetadata[T](metadata: Endpoint[_],
+ entryPoint: EntryPoint[T, (HttpServerExchange, Seq[String])])
+ case class RoutesEndpointsMetadata[T](value: EndpointMetadata[T]*)
+ object RoutesEndpointsMetadata{
implicit def initialize[T] = macro initializeImpl[T]
- implicit def initializeImpl[T: c.WeakTypeTag](c: Context): c.Expr[Metadata[T]] = {
+ implicit def initializeImpl[T: c.WeakTypeTag](c: Context): c.Expr[RoutesEndpointsMetadata[T]] = {
import c.universe._
val router = new cask.Router[c.type](c)
val routeParts = for{
m <- c.weakTypeOf[T].members
- annot <- m.annotations.filter(_.tree.tpe <:< c.weakTypeOf[EndpointAnnotation[_]])
+ annot <- m.annotations.filter(_.tree.tpe <:< c.weakTypeOf[Endpoint[_]])
} yield {
val annotObject = q"new ${annot.tree.tpe}(..${annot.tree.children.tail})"
val annotObjectSym = c.universe.TermName(c.freshName("annotObject"))
@@ -57,22 +57,22 @@ object Routes{
q"""{
val $annotObjectSym = $annotObject
- cask.Routes.RouteMetadata($annotObjectSym, $route)
+ cask.Routes.EndpointMetadata($annotObjectSym, $route)
}"""
}
- c.Expr[Metadata[T]](q"""cask.Routes.Metadata(..$routeParts)""")
+ c.Expr[RoutesEndpointsMetadata[T]](q"""cask.Routes.RoutesEndpointsMetadata(..$routeParts)""")
}
}
}
trait Routes{
- private[this] var metadata0: Routes.Metadata[this.type] = null
+ private[this] var metadata0: Routes.RoutesEndpointsMetadata[this.type] = null
def caskMetadata =
if (metadata0 != null) metadata0
else throw new Exception("Routes not yet initialize")
- protected[this] def initialize()(implicit routes: Routes.Metadata[this.type]): Unit = {
+ protected[this] def initialize()(implicit routes: Routes.RoutesEndpointsMetadata[this.type]): Unit = {
metadata0 = routes
}
}
diff --git a/cask/test/src/test/cask/VariableRoutes.scala b/cask/test/src/test/cask/VariableRoutes.scala
index 1dda4e6..d1816ab 100644
--- a/cask/test/src/test/cask/VariableRoutes.scala
+++ b/cask/test/src/test/cask/VariableRoutes.scala
@@ -1,7 +1,5 @@
package test.cask
-import cask.Subpath
-
object VariableRoutes extends cask.MainRoutes{
@cask.get("/user/:userName")
def showUserProfile(userName: String) = {
@@ -14,7 +12,7 @@ object VariableRoutes extends cask.MainRoutes{
}
@cask.get("/path", subpath = true)
- def showSubpath(subPath: Subpath) = {
+ def showSubpath(subPath: cask.Subpath) = {
s"Subpath ${subPath.value}"
}