Merge branch 'master' into python3
authorFredrik Tolf <fredrik@dolda2000.com>
Wed, 18 Jul 2012 00:16:28 +0000 (02:16 +0200)
committerFredrik Tolf <fredrik@dolda2000.com>
Wed, 18 Jul 2012 00:17:59 +0000 (02:17 +0200)
wrw/cookie.py
wrw/session.py
wrw/sp/util.py

index c6ae36c..3a3c916 100644 (file)
@@ -27,9 +27,10 @@ class cookiedict(object):
             return default
         return self.bk[name].value
 
-    def add(self, name, value, path = None):
+    def add(self, name, value, **kw):
         self.codec[name] = value
-        if path is not None: self.codec[name]["path"] = path
+        for key, value in kw.items():
+            self.codec[name][key] = value
 
     def __setitem__(self, name, value):
         self.add(name, value)
@@ -40,5 +41,5 @@ def cookies(req):
 def get(req, name, default = None):
     return cookies(req).get(name, default)
 
-def add(req, name, value, path = None):
-    cookies(req).add(name, value, path)
+def add(req, name, value, **kw):
+    cookies(req).add(name, value, **kw)
index 90d460b..d9907cc 100644 (file)
@@ -164,6 +164,12 @@ class db(object):
                 self.cthread.setDaemon(True)
                 self.cthread.start()
 
+    def mksession(self, req):
+        return session(threading.RLock())
+
+    def mkcookie(self, req, sess):
+        cookie.add(req, self.cookiename, sess.id, path=self.path)
+
     def fetch(self, req):
         now = int(time.time())
         sessid = cookie.get(req, self.cookiename)
@@ -173,13 +179,13 @@ class db(object):
                 raise KeyError()
             sess = self._fetch(sessid)
         except KeyError:
-            sess = session(threading.RLock())
+            sess = self.mksession(req)
             new = True
 
         def ckfreeze(req):
             if sess.dirty():
                 if new:
-                    cookie.add(req, self.cookiename, sess.id, self.path)
+                    self.mkcookie(req, sess)
                     with self.lock:
                         self.live[sess.id] = [sess.lock, sess]
                 try:
index 54f9457..ba75cac 100644 (file)
@@ -142,7 +142,7 @@ class formatter(object):
 
     @classmethod
     def fragment(cls, out, el, *args, **kw):
-        cls(out=out, root=el, *args, **kw).element(el)
+        cls(out=out, root=el, *args, **kw).node(el)
 
     def update(self, **ch):
         ret = type(self).__new__(type(self))