From 1440ae9010e6615e83ee44d8d74d9708a568b07b Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Sat, 18 Aug 2018 11:10:33 +0800 Subject: Get rid of unneccessary `HttpDecorator` --- cask/src/cask/endpoints/FormEndpoint.scala | 2 +- cask/src/cask/endpoints/JsonEndpoint.scala | 3 +-- cask/src/cask/endpoints/WebEndpoints.scala | 4 ++-- cask/src/cask/main/Decorators.scala | 11 +++++------ cask/src/cask/main/ErrorMsgs.scala | 3 --- cask/src/cask/main/Main.scala | 12 ++++++++++++ cask/src/cask/package.scala | 1 - 7 files changed, 21 insertions(+), 15 deletions(-) (limited to 'cask') 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 } -- cgit v1.2.3