aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/app.py
diff options
context:
space:
mode:
authorChristopher Allan Webber <cwebber@dustycloud.org>2012-04-08 09:54:32 -0500
committerChristopher Allan Webber <cwebber@dustycloud.org>2012-04-08 09:54:32 -0500
commit8a0d35e72aa50ca9add0f1e47e40ef7c8c5de039 (patch)
tree29016fe757eedea2c7c3a77ffe9f0d7de475819e /mediagoblin/app.py
parent241503101d93be50a10ee438f01f3beac3f2a4ce (diff)
downloadmediagoblin-8a0d35e72aa50ca9add0f1e47e40ef7c8c5de039.tar.lz
mediagoblin-8a0d35e72aa50ca9add0f1e47e40ef7c8c5de039.tar.xz
mediagoblin-8a0d35e72aa50ca9add0f1e47e40ef7c8c5de039.zip
Allow users to pass callables in as controllers, not just import paths
Diffstat (limited to 'mediagoblin/app.py')
-rw-r--r--mediagoblin/app.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/mediagoblin/app.py b/mediagoblin/app.py
index b7ca092d..99c7de76 100644
--- a/mediagoblin/app.py
+++ b/mediagoblin/app.py
@@ -167,7 +167,13 @@ class MediaGoblinApp(object):
request.matchdict = {} # in case our template expects it
return render_404(request)(environ, start_response)
- controller = common.import_component(route_match['controller'])
+ # import the controller, or if it's already a callable, call that
+ route_controller = route_match['controller']
+ if isinstance(route_controller, unicode) \
+ or isinstance(route_controller, str):
+ controller = common.import_component(route_match['controller'])
+ else:
+ controller = route_match['controller']
# pass the request through our meddleware classes
for m in self.meddleware: