lib/actions.py
changeset 57 31271426f879
child 58 004a32370ba5
--- /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')