summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-08-18 11:10:33 +0800
committerLi Haoyi <haoyi.sg@gmail.com>2018-08-18 11:10:33 +0800
commit1440ae9010e6615e83ee44d8d74d9708a568b07b (patch)
tree4b49c72c60f38fefdb020f9ec1d58670624b769e
parent4b0cfdf0eeca46cfccbf9fe42af42f383932c427 (diff)
downloadcask-1440ae9010e6615e83ee44d8d74d9708a568b07b.tar.gz
cask-1440ae9010e6615e83ee44d8d74d9708a568b07b.tar.bz2
cask-1440ae9010e6615e83ee44d8d74d9708a568b07b.zip
Get rid of unneccessary `HttpDecorator`
-rw-r--r--cask/src/cask/endpoints/FormEndpoint.scala2
-rw-r--r--cask/src/cask/endpoints/JsonEndpoint.scala3
-rw-r--r--cask/src/cask/endpoints/WebEndpoints.scala4
-rw-r--r--cask/src/cask/main/Decorators.scala11
-rw-r--r--cask/src/cask/main/ErrorMsgs.scala3
-rw-r--r--cask/src/cask/main/Main.scala12
-rw-r--r--cask/src/cask/package.scala1
7 files changed, 21 insertions, 15 deletions
diff --git a/cask/src/cask/endpoints/FormEndpoint.scala b/cask/src/cask/endpoints/FormEndpoint.scala
index cc74093..471c5e5 100644
--- a/cask/src/cask/endpoints/FormEndpoint.scala
+++ b/cask/src/cask/endpoints/FormEndpoint.scala
@@ -1,7 +1,7 @@
package cask.endpoints
import cask.internal.{Router, Util}
-import cask.main.{Endpoint, HttpDecorator, Routes}
+import cask.main.Endpoint
import cask.model._
import io.undertow.server.handlers.form.FormParserFactory
diff --git a/cask/src/cask/endpoints/JsonEndpoint.scala b/cask/src/cask/endpoints/JsonEndpoint.scala
index 212597c..8afd742 100644
--- a/cask/src/cask/endpoints/JsonEndpoint.scala
+++ b/cask/src/cask/endpoints/JsonEndpoint.scala
@@ -3,8 +3,7 @@ package cask.endpoints
import java.io.ByteArrayOutputStream
import cask.internal.{Router, Util}
-import cask.internal.Router.EntryPoint
-import cask.main.{Endpoint, HttpDecorator, Routes}
+import cask.main.Endpoint
import cask.model.{Request, Response}
diff --git a/cask/src/cask/endpoints/WebEndpoints.scala b/cask/src/cask/endpoints/WebEndpoints.scala
index 02aeec4..9fe28a0 100644
--- a/cask/src/cask/endpoints/WebEndpoints.scala
+++ b/cask/src/cask/endpoints/WebEndpoints.scala
@@ -1,13 +1,13 @@
package cask.endpoints
import cask.internal.Router
-import cask.main.{Endpoint, HttpDecorator}
+import cask.main.Endpoint
import cask.model.{Request, Response}
import collection.JavaConverters._
-trait WebEndpoint extends Endpoint with HttpDecorator{
+trait WebEndpoint extends Endpoint{
type Output = Response
type Input = Seq[String]
type InputParser[T] = QueryParamReader[T]
diff --git a/cask/src/cask/main/Decorators.scala b/cask/src/cask/main/Decorators.scala
index 0515232..7aa361f 100644
--- a/cask/src/cask/main/Decorators.scala
+++ b/cask/src/cask/main/Decorators.scala
@@ -5,7 +5,9 @@ import cask.internal.Router.ArgReader
import cask.model.{Request, Response}
-trait Endpoint extends BaseEndpoint with HttpDecorator
+trait Endpoint extends BaseEndpoint {
+ type Returned = Router.Result[Response]
+}
/**
* Used to annotate a single Cask endpoint function; similar to a [[Decorator]]
* but with additional metadata and capabilities.
@@ -51,9 +53,6 @@ trait BaseDecorator{
def wrapFunction(ctx: Request, delegate: Delegate): Returned
def getParamParser[T](implicit p: InputParser[T]) = p
}
-trait HttpDecorator extends BaseDecorator{
- type Returned = Router.Result[Response]
-}
/**
* A decorator allows you to annotate a function to wrap it, via
@@ -66,8 +65,8 @@ trait HttpDecorator extends BaseDecorator{
* to `wrapFunction`, which takes a `Map` representing any additional argument
* lists (if any).
*/
-trait Decorator extends HttpDecorator {
-
+trait Decorator extends BaseDecorator{
+ type Returned = Router.Result[Response]
type Input = Any
type Output = Response
type InputParser[T] = NoOpParser[Input, T]
diff --git a/cask/src/cask/main/ErrorMsgs.scala b/cask/src/cask/main/ErrorMsgs.scala
index c296504..0d6f8c6 100644
--- a/cask/src/cask/main/ErrorMsgs.scala
+++ b/cask/src/cask/main/ErrorMsgs.scala
@@ -5,9 +5,6 @@ import cask.internal.{Router, Util}
import cask.internal.Util.literalize
object ErrorMsgs {
-
-
-
def getLeftColWidth(items: Seq[Router.ArgSig[_, _, _,_]]) = {
items.map(_.name.length + 2) match{
case Nil => 0
diff --git a/cask/src/cask/main/Main.scala b/cask/src/cask/main/Main.scala
index 46e1a65..5c0b120 100644
--- a/cask/src/cask/main/Main.scala
+++ b/cask/src/cask/main/Main.scala
@@ -9,9 +9,21 @@ import io.undertow.server.{HttpHandler, HttpServerExchange}
import io.undertow.server.handlers.BlockingHandler
import io.undertow.util.HttpString
+/**
+ * A combination of [[cask.Main]] and [[cask.Routes]], ideal for small
+ * one-file web applications.
+ */
class MainRoutes extends BaseMain with Routes{
def allRoutes = Seq(this)
}
+
+/**
+ * Defines the main entrypoint and configuration of the Cask web application.
+ *
+ * You can pass in an arbitrary number of [[cask.Routes]] objects for it to
+ * serve, and override various properties on [[Main]] in order to configure
+ * application-wide properties.
+ */
class Main(servers0: Routes*) extends BaseMain{
def allRoutes = servers0.toSeq
}
diff --git a/cask/src/cask/package.scala b/cask/src/cask/package.scala
index cd1a8e5..405bab7 100644
--- a/cask/src/cask/package.scala
+++ b/cask/src/cask/package.scala
@@ -38,6 +38,5 @@ package object cask {
type Main = main.Main
type Decorator = main.Decorator
type Endpoint = main.Endpoint
- type BaseDecorator = main.HttpDecorator
}