helmet 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/helmet/api.rb +29 -3
- metadata +1 -1
data/lib/helmet/api.rb
CHANGED
@@ -4,8 +4,13 @@ require 'helmet/templates'
|
|
4
4
|
|
5
5
|
module Helmet
|
6
6
|
class API < Goliath::API
|
7
|
-
@@routes = {}
|
8
7
|
|
8
|
+
# Handle application routes
|
9
|
+
@@routes = {}
|
10
|
+
|
11
|
+
# Handle before filters
|
12
|
+
@@before_filters = []
|
13
|
+
|
9
14
|
class << self
|
10
15
|
include Templates
|
11
16
|
|
@@ -24,7 +29,11 @@ module Helmet
|
|
24
29
|
def views_folder
|
25
30
|
@@views_folder
|
26
31
|
end
|
27
|
-
|
32
|
+
|
33
|
+
def before(route, &block)
|
34
|
+
@@before_filters << [route, block]
|
35
|
+
end
|
36
|
+
|
28
37
|
def get(route, &block)
|
29
38
|
register_route('GET', route, &block);
|
30
39
|
register_route('HEAD', route, &block);
|
@@ -66,7 +75,24 @@ module Helmet
|
|
66
75
|
end
|
67
76
|
|
68
77
|
def response(env)
|
69
|
-
|
78
|
+
path = env['REQUEST_PATH']
|
79
|
+
|
80
|
+
# evaluate filters
|
81
|
+
resp = catch(:halt) do
|
82
|
+
@@before_filters.each do |route|
|
83
|
+
case route.first
|
84
|
+
when String
|
85
|
+
route[1].call if route.first == path
|
86
|
+
when Regexp
|
87
|
+
route[1].call if route.first =~ path
|
88
|
+
end
|
89
|
+
end
|
90
|
+
nil
|
91
|
+
end
|
92
|
+
p resp
|
93
|
+
return resp if resp
|
94
|
+
|
95
|
+
sig = API.signature(env['REQUEST_METHOD'], path)
|
70
96
|
block = @@routes[sig]
|
71
97
|
if block
|
72
98
|
block.call env
|