[trigger] Going back to simplified version

This commit is contained in:
Pierre-Elliott Bécue 2014-07-31 11:50:47 +02:00
parent 8068f057e0
commit 091a2d161e
6 changed files with 287 additions and 292 deletions

View file

@ -10,27 +10,50 @@
# License : GPLv3
# Date : 28/04/2014
import collections
class TriggerFactory(object):
"""Factory containing which function is part of the trigger set
"""
_meths = {}
_services = {}
_parsers = collections.defaultdict(list)
@classmethod
def register(cls, key, value):
cls._meths[key] = value
def register_service(cls, key, value):
cls._services[key] = value
@classmethod
def get(cls, key):
return cls._meths.get(key, None)
def get_service(cls, key):
return cls._services.get(key, None)
@classmethod
def get_services(cls):
return cls._meths.values()
return cls._services.values()
def record(cls):
TriggerFactory.register(cls.__name__.lower(), cls)
@classmethod
def register_parser(cls, keys, parser):
for key in keys:
cls._parsers[key].append(parser)
def trigger(what):
return TriggerFactory.get(what)
@classmethod
def get_parser(cls, keyword):
return cls._parsers[keyword]
def record_service(func):
"""Records in the triggerfactory the function
The function provided are services to regen
"""
TriggerFactory.register_service(func.func_name, func)
def trigger_service(what):
return TriggerFactory.get_service(what)
def record_parser(*args):
def find_parser(func):
TriggerFactory.register_parser(args, func)
return func
return find_parser