Пример #1
0
 def call(self, event_name, **kw):
     event = AttributeDict(kw)
     f = getattr(self, event_name, None)
     if f is None:
         return
     event.result = f(event)
     return event
Пример #2
0
    def call(self, event_name, **kw):
        try:
            handlers = self.cached_calls[event_name]
        except KeyError:
            handlers = []
            for script in self.items.values():
                f = getattr(script, event_name, None)
                if not f:
                    continue
                handlers.append(f)
            self.cached_calls[event_name] = handlers

        event = AttributeDict(kw)
        for handler in handlers:
            ret = handler(event)
            if ret is None:
                continue
            event.result = ret
            break
        else:
            event.result = None
        return event