diff options
author | Christopher Allan Webber <cwebber@dustycloud.org> | 2012-04-08 09:54:32 -0500 |
---|---|---|
committer | Christopher Allan Webber <cwebber@dustycloud.org> | 2012-04-08 09:54:32 -0500 |
commit | 8a0d35e72aa50ca9add0f1e47e40ef7c8c5de039 (patch) | |
tree | 29016fe757eedea2c7c3a77ffe9f0d7de475819e /mediagoblin/app.py | |
parent | 241503101d93be50a10ee438f01f3beac3f2a4ce (diff) | |
download | mediagoblin-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.py | 8 |
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: |