Mercurial > eagle-eye
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