diff -r 6b31934e5b2e -r 31271426f879 lib/actions.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/actions.py Sat Dec 27 20:23:39 2008 -0500 @@ -0,0 +1,32 @@ +import imp +import sys +import os + + +class ActionsLoader: + def __init__(self): + self._actions = {} + def keys(self): + return self._actions.keys() + def _getmodule(self, name): + modpath = os.path.join(os.path.dirname(__file__), 'actions') + fp, pathname, description = imp.find_module(name, [modpath]) + try: + return imp.load_module(name, fp, pathname, description) + finally: + if fp: + fp.close() + def __getitem__(self, item): + mname, fname = self._actions[item] + return self._getmodule(mname).__dict__[fname] + def __setitem__(self, key, value): + self._actions[key] = value + + +actions = ActionsLoader() +actions['default'] = ('index', 'do_it') +actions['index'] = ('index', 'do_it') +actions['edit'] = ('edit', 'do_it') +actions['import'] = ('imp_xbel', 'do_it') +actions['add'] = ('add', 'do_it') +actions['confirm'] = ('add', 'do_it')