From 8f5be06113df66253a6b4ce9ba04a32b074cd000 Mon Sep 17 00:00:00 2001 From: Chao Yang Date: Wed, 28 Feb 2024 02:31:07 -0600 Subject: [PATCH 1/3] Add skip_router? flag to Context --- src/grip/extensions/context.cr | 1 + src/grip/routers/http.cr | 2 +- src/grip/routers/websocket.cr | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/grip/extensions/context.cr b/src/grip/extensions/context.cr index 1b6d9b7..31cf11f 100644 --- a/src/grip/extensions/context.cr +++ b/src/grip/extensions/context.cr @@ -3,6 +3,7 @@ module Grip module Context property exception : Exception? property parameters : Grip::Parsers::ParameterBox? + property? skip_router : Bool = false # Deletes request header. def delete_req_header(key) diff --git a/src/grip/routers/http.cr b/src/grip/routers/http.cr index f15a90a..dbfc25e 100644 --- a/src/grip/routers/http.cr +++ b/src/grip/routers/http.cr @@ -11,7 +11,7 @@ module Grip end def call(context : HTTP::Server::Context) - return context if context.response.closed? + return context if context.skip_router? || context.response.closed? route = find_route(context.request.method.as(String), context.request.path) route = find_route("ALL", context.request.path) unless route.found? diff --git a/src/grip/routers/websocket.cr b/src/grip/routers/websocket.cr index 375f6f1..3c5649d 100644 --- a/src/grip/routers/websocket.cr +++ b/src/grip/routers/websocket.cr @@ -11,6 +11,8 @@ module Grip end def call(context : HTTP::Server::Context) + return context if context.skip_router? || context.response.closed? + route = find_route("", context.request.path) unless route.found? && websocket_upgrade_request?(context) From 5d32b38ee5c58496e38fd850c5f987d9f4eab021 Mon Sep 17 00:00:00 2001 From: Chao Yang Date: Thu, 15 Aug 2024 20:07:46 -0500 Subject: [PATCH 2/3] Context.exec should return itself --- src/grip/extensions/context.cr | 1 + 1 file changed, 1 insertion(+) diff --git a/src/grip/extensions/context.cr b/src/grip/extensions/context.cr index 31cf11f..e08060f 100644 --- a/src/grip/extensions/context.cr +++ b/src/grip/extensions/context.cr @@ -157,6 +157,7 @@ module Grip def exec with self yield + self end end end From f1b8fcbadf5f72279ff66b18641ea7f49574d333 Mon Sep 17 00:00:00 2001 From: Chao Yang Date: Thu, 15 Aug 2024 22:37:37 -0500 Subject: [PATCH 3/3] Format code --- src/grip/application.cr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/grip/application.cr b/src/grip/application.cr index 9ccc04c..72470ea 100644 --- a/src/grip/application.cr +++ b/src/grip/application.cr @@ -15,7 +15,7 @@ module Grip getter scopes : Array(String) = [] of String getter valves : Array(Symbol) = [] of Symbol getter valve : Symbol? - + property router : Array(HTTP::Handler) def initialize(@environment : String = "development")