Rework plugin infrastructure to nix side-effects
authorWill Kahn-Greene <willg@bluesock.org>
Wed, 18 Jul 2012 01:02:12 +0000 (21:02 -0400)
committerWill Kahn-Greene <willg@bluesock.org>
Wed, 18 Jul 2012 01:02:12 +0000 (21:02 -0400)
commit05e007c1dbe7b5b8a092f1a99ed361c4e6b71f26
tree36a0d1ba4174baff5a003871a28e08a512b57a84
parent8464bcc3e86e223db0739101c0b5d914eea225af
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.
docs/source/pluginwriter/quickstart.rst
mediagoblin/app.py
mediagoblin/init/plugins/__init__.py
mediagoblin/plugins/flatpagesfile/__init__.py
mediagoblin/plugins/sampleplugin/__init__.py
mediagoblin/plugins/sampleplugin/main.py [deleted file]
mediagoblin/tests/test_pluginapi.py
mediagoblin/tools/pluginapi.py