Add test block module. Making that to work required some fixes.

portnov [2008-06-05 16:13:40]
Add test block module. Making that to work required some fixes.
Filename
modules.py
modules/blocks.py
modules/testblock.py
test.py
diff --git a/modules.py b/modules.py
index ee7afbb..78ee4b8 100644
--- a/modules.py
+++ b/modules.py
@@ -20,16 +20,26 @@ exports = ['export', 'export_as', 'hook', 'intercept','themeable','theme',

 def export(func):
   "Mark this function to export."
+  global exports
   globals()[func.__name__] = func
+  exports.append(func.__name__)
   return func

 def export_as(obj,name):
   "Export some object"
+  global exports
   globals()[name] = obj
+  exports.append(name)
+  print globals().keys()

 @hook
 def module_load(name):
   global modules
+  global exports
+  mod = modules[name]
+  print exports
+  for n in exports:
+    setattr(mod,n,globals()[n])
   modules[name].init()

 def init():
@@ -41,6 +51,6 @@ for dirpath, dirs, files in os.walk(MODS_DIR):
     if file[-3:] == ".py":
       name = os.path.join(dirpath,file[:-3])
       module = __import__(name)
-      for n in exports:
-        setattr(module,n,globals()[n])
+#       for n in exports:
+#         setattr(module,n,globals()[n])
       modules[name] = module
diff --git a/modules/blocks.py b/modules/blocks.py
index 78d7033..95732a6 100644
--- a/modules/blocks.py
+++ b/modules/blocks.py
@@ -21,3 +21,5 @@ def init():
     content = "<empty>"
     def show(self):
       return theme('block', self)
+
+  export_as(Block,'Block')
diff --git a/modules/testblock.py b/modules/testblock.py
new file mode 100644
index 0000000..be49e4f
--- /dev/null
+++ b/modules/testblock.py
@@ -0,0 +1,10 @@
+
+def init():
+
+  @block
+  def testblk():
+    b = Block()
+    b.name = "testblk"
+    b.title = "Test block"
+    b.content = "Content of test block."
+    return b
diff --git a/test.py b/test.py
index 04457b3..8fbf658 100755
--- a/test.py
+++ b/test.py
@@ -5,6 +5,7 @@ import os.path
 import modules
 from hooks import *
 from themes import *
+from generate import generate
 modules.init()

 THEME = "default"
@@ -25,3 +26,6 @@ th.override = override
 th.init()

 print theme('page','/')
+
+for b in generate('block'):
+  print b.show()
ViewGit