aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/plugins/flatpagesfile/__init__.py
diff options
context:
space:
mode:
authorWill Kahn-Greene <willg@bluesock.org>2012-07-17 21:02:12 -0400
committerWill Kahn-Greene <willg@bluesock.org>2012-07-17 21:02:12 -0400
commit05e007c1dbe7b5b8a092f1a99ed361c4e6b71f26 (patch)
tree36a0d1ba4174baff5a003871a28e08a512b57a84 /mediagoblin/plugins/flatpagesfile/__init__.py
parent8464bcc3e86e223db0739101c0b5d914eea225af (diff)
downloadmediagoblin-05e007c1dbe7b5b8a092f1a99ed361c4e6b71f26.tar.lz
mediagoblin-05e007c1dbe7b5b8a092f1a99ed361c4e6b71f26.tar.xz
mediagoblin-05e007c1dbe7b5b8a092f1a99ed361c4e6b71f26.zip
Rework plugin infrastructure to nix side-effects
This reworks the plugin infrastructure so as to remove module-loading side-effects which were making things a pain in the ass to test. With the new system, there's no auto-registering meta class. Instead plugins do whatever they want and then specify a hooks dict that maps hook names to callables for the things they're tying into. The most common one (and the only one we've implemented so far) is "setup". This also simplifies the sampleplugin a little by moving the code to __init__.py.
Diffstat (limited to 'mediagoblin/plugins/flatpagesfile/__init__.py')
-rw-r--r--mediagoblin/plugins/flatpagesfile/__init__.py38
1 files changed, 19 insertions, 19 deletions
diff --git a/mediagoblin/plugins/flatpagesfile/__init__.py b/mediagoblin/plugins/flatpagesfile/__init__.py
index 9ed26102..b9b52012 100644
--- a/mediagoblin/plugins/flatpagesfile/__init__.py
+++ b/mediagoblin/plugins/flatpagesfile/__init__.py
@@ -53,27 +53,27 @@ def flatpage_handler_builder(template):
return _flatpage_handler_builder
-class FlatpagesFilePlugin(pluginapi.Plugin):
- """
- This is the flatpages plugin class. See the README for how to use
- flatpages.
- """
- def setup_plugin(self):
- self.config = pluginapi.get_config('mediagoblin.plugins.flatpagesfile')
+def setup_plugin():
+ config = pluginapi.get_config('mediagoblin.plugins.flatpagesfile')
+
+ _log.info('Setting up flatpagesfile....')
+
+ # Register the template path.
+ pluginapi.register_template_path(os.path.join(PLUGIN_DIR, 'templates'))
- _log.info('Setting up flatpagesfile....')
+ pages = config.items()
- # Register the template path.
- pluginapi.register_template_path(os.path.join(PLUGIN_DIR, 'templates'))
+ routes = []
+ for name, (url, template) in pages:
+ name = 'flatpagesfile.%s' % name.strip()
+ controller = flatpage_handler_builder(template)
+ routes.append(
+ Route(name, url, controller=controller))
- pages = self.config.items()
+ pluginapi.register_routes(routes)
+ _log.info('Done setting up flatpagesfile!')
- routes = []
- for name, (url, template) in pages:
- name = 'flatpagesfile.%s' % name.strip()
- controller = flatpage_handler_builder(template)
- routes.append(
- Route(name, url, controller=controller))
- pluginapi.register_routes(routes)
- _log.info('Done setting up flatpagesfile!')
+hooks = {
+ 'setup': setup_plugin
+ }