Contain all registry logic in helper methods.

This commit is contained in:
Emil Stenström 2020-02-15 09:37:35 +01:00
parent ecba6e3ed9
commit b2726a6832
4 changed files with 22 additions and 8 deletions

View file

@ -15,7 +15,18 @@ class ComponentRegistry(object):
self._registry[name] = component
def unregister(self, name):
self.get(name)
del self._registry[name]
def get(self, name):
if name not in self._registry:
raise NotRegistered('The component "%s" is not registered' % name)
del self._registry[name]
return self._registry[name]
def all(self):
return self._registry
def clear(self):
self._registry = {}

View file

@ -7,7 +7,7 @@ register = template.Library()
@register.simple_tag(name="component_dependencies")
def component_dependencies_tag():
unique_component_classes = set(registry._registry.values())
unique_component_classes = set(registry.all().values())
out = []
for component_class in unique_component_classes:
@ -18,6 +18,6 @@ def component_dependencies_tag():
@register.simple_tag(name="component")
def component_tag(name, *args, **kwargs):
component_class = registry._registry[name]
component_class = registry.get(name)
component = component_class()
return component.render(*args, **kwargs)