diff pyikriam/lazy/www/work/__init__.py @ 246:60c4b4b78a01

code clean
author "Hisn Yi, Chen <ossug.hychen@gmail.com>"
date Mon, 01 Dec 2008 00:25:07 +0800
parents a4c364888197
children
line wrap: on
line diff
--- a/pyikriam/lazy/www/work/__init__.py	Fri Nov 14 02:05:48 2008 +0800
+++ b/pyikriam/lazy/www/work/__init__.py	Mon Dec 01 00:25:07 2008 +0800
@@ -21,14 +21,15 @@
         return self.working_product.content
      
     def change_worker(self, new_worker):
-        self.serial_number += 1
+        self.serial_number += 1        
+        self.last_work = self
         self.worker = new_worker
         
     def is_fetcher(self, obj):
-        if  obj is not None:    return True
+        if obj.__class__.__name__ == 'Fetcher': return True
     
     def get(self, data = {} ):
-        if not self.is_fetcher(self.worker) :
+        if self.worker.__class__.__name__ != 'FileStorager' and not self.is_fetcher(self.worker) :
             self.change_worker( Fetcher(self.working_product) )
         
         self.working_product.content = self.worker.get(data)
@@ -42,11 +43,31 @@
         return self
     
     def is_finder(self, obj):
-        if obj is not None: return True
+        if obj.__class__.__name__ == 'Finder': return True
+    
+    def findall(self, expresses):
+        if not self.is_finder(self.worker):
+            self.change_worker( Finder(self.working_product) )
+        
+        ret = {}
+        for e in expresses.keys():
+            try:
+                ret[e] = self.worker.find(expresses[e])
+            except:
+                pass
+
+        self.working_product.content = ret
+        
+        return self
     
     def find(self, express):
         #if not self.is_finder(self.worker):
-        self.worker = Finder(self.working_product)
+        self.change_worker( Finder(self.working_product) )
+        self.last_working_product = self.working_product
         self.working_product.content = self.worker.find(express)
         
+        return self
+    
+    def process(self, fn):
+        self.working_product.content = fn(self.working_product.content)
         return self
\ No newline at end of file