[trigger] Going back to simplified version
This commit is contained in:
parent
8068f057e0
commit
091a2d161e
6 changed files with 287 additions and 292 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue