diff options
Diffstat (limited to 'cask/src/cask/model/Response.scala')
-rw-r--r-- | cask/src/cask/model/Response.scala | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/cask/src/cask/model/Response.scala b/cask/src/cask/model/Response.scala index 979c442..9ac5664 100644 --- a/cask/src/cask/model/Response.scala +++ b/cask/src/cask/model/Response.scala @@ -62,7 +62,7 @@ case class Abort(code: Int) extends Response { override def cookies = Nil } -case class Static(path: String) extends Response { +case class StaticFile(path: String) extends Response { val relPath = java.nio.file.Paths.get(path) val (data0, statusCode0) = if (java.nio.file.Files.exists(relPath) && java.nio.file.Files.isRegularFile(relPath)){ @@ -79,6 +79,22 @@ case class Static(path: String) extends Response { override def cookies = Nil } +case class StaticResource(path: String, resourceRoot: ClassLoader) extends Response { + val relPath = java.nio.file.Paths.get(path) + val (data0, statusCode0) = resourceRoot.getResourceAsStream(path) match{ + case null => ("": Response.Data, 404) + case res => (res: Response.Data, 200) + } + + override def data = data0 + + override def statusCode = statusCode0 + + override def headers = Nil + + override def cookies = Nil +} + |