strelka 0.0.1.pre.216 → 0.0.1.pre.219
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +0 -0
- data/lib/strelka/app/errors.rb +23 -16
- data/lib/strelka/app/templating.rb +2 -2
- data/lib/strelka/mixins.rb +5 -0
- metadata +2 -2
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/strelka/app/errors.rb
CHANGED
@@ -168,27 +168,34 @@ module Strelka::App::Errors
|
|
168
168
|
|
169
169
|
# If the app or any plugins threw a finish, look for a handler for the status code
|
170
170
|
# and call it if one is found.
|
171
|
-
if status_response
|
172
|
-
request.notes[:status_info] = status_response
|
173
|
-
response = request.response
|
174
|
-
status = status_response[:status]
|
175
|
-
self.log.info "[:errors] Handling a status response: %d" % [ status ]
|
176
|
-
|
177
|
-
# If we can't find a custom handler for this status, re-throw
|
178
|
-
# to the default handler instead
|
179
|
-
handler = self.status_handler_for( status ) or
|
180
|
-
throw( :finish, status_response )
|
181
|
-
|
182
|
-
# The handler is an UnboundMethod, so bind it to the app instance
|
183
|
-
# and call it
|
184
|
-
response.status = status
|
185
|
-
response = handler.bind( self ).call( response, status_response )
|
186
|
-
end
|
171
|
+
response = self.handle_status_response( request, status_response ) if status_response
|
187
172
|
|
188
173
|
return response
|
189
174
|
end
|
190
175
|
|
191
176
|
|
177
|
+
### Return a response built out of the +status_info+ for the specified +request+ if there
|
178
|
+
### is a custom handler. If there isn't one, rethrows to the main :finish handler.
|
179
|
+
def handle_status_response( request, status_info )
|
180
|
+
status = status_info[:status]
|
181
|
+
|
182
|
+
# If we can't find a custom handler for this status, re-throw
|
183
|
+
# to the default handler instead
|
184
|
+
handler = self.status_handler_for( status ) or
|
185
|
+
throw( :finish, status_info )
|
186
|
+
self.log.info "Using custom handler %p for status response: %d: %s" % [ handler, status, status_info ]
|
187
|
+
|
188
|
+
# Set up the request's response with the right status code
|
189
|
+
request.notes[:status_info] = status_info
|
190
|
+
response = request.response
|
191
|
+
response.status = status
|
192
|
+
|
193
|
+
# The handler is an UnboundMethod, so bind it to the app instance
|
194
|
+
# and call it
|
195
|
+
return handler.bind( self ).call( response, status_info )
|
196
|
+
end
|
197
|
+
|
198
|
+
|
192
199
|
### Find a status handler for the given +status_code+ and return it as an UnboundMethod.
|
193
200
|
def status_handler_for( status_code )
|
194
201
|
self.log.debug "[:errors] Looking for a status handler for %d responses" % [ status_code ]
|
@@ -149,8 +149,8 @@ module Strelka::App::Templating
|
|
149
149
|
# The map of template names to Inversion::Template instances.
|
150
150
|
attr_reader :template_map
|
151
151
|
|
152
|
-
# The layout template (an Inversion::Template), if one was
|
153
|
-
|
152
|
+
# The layout template (an Inversion::Template), if one was declared
|
153
|
+
attr_accessor :layout
|
154
154
|
|
155
155
|
|
156
156
|
### Return the template keyed by the given +name+.
|
data/lib/strelka/mixins.rb
CHANGED
@@ -374,6 +374,11 @@ module Strelka
|
|
374
374
|
}
|
375
375
|
end
|
376
376
|
|
377
|
+
# Log using the instance logger if possible, else use the global one
|
378
|
+
logger = self.respond_to?( :log ) ? self.log : Strelka.log
|
379
|
+
logmethod = status_info[:status] > 399 ? logger.method(:error) : logger.method(:info)
|
380
|
+
logmethod.call "Finishing with status %d: %s" % [ status_info[:status], status_info[:message] ]
|
381
|
+
|
377
382
|
throw :finish, status_info
|
378
383
|
end
|
379
384
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: strelka
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.1.pre.
|
4
|
+
version: 0.0.1.pre.219
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -36,7 +36,7 @@ cert_chain:
|
|
36
36
|
YUhDS0xaZFNLai9SSHVUT3QrZ2JsUmV4OEZBaDhOZUEKY21saFhlNDZwWk5K
|
37
37
|
Z1dLYnhaYWg4NWpJang5NWhSOHZPSStOQU01aUg5a09xSzEzRHJ4YWNUS1Bo
|
38
38
|
cWo1UGp3RgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
|
39
|
-
date: 2012-05-
|
39
|
+
date: 2012-05-04 00:00:00.000000000 Z
|
40
40
|
dependencies:
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: trollop
|
metadata.gz.sig
CHANGED
Binary file
|