Plugins now store output in cache. Fixes #13

This commit is contained in:
Felipe Martin 2014-01-07 23:48:29 +01:00
parent 4b2f9b7387
commit c921f97e01
2 changed files with 9 additions and 2 deletions

View File

@ -136,7 +136,7 @@ class Section(Component):
def get_context(self):
if self.backup and self.plugin:
plugin = self.plugin(backup=self.backup)
self.context = plugin.__do__()
self.context = plugin.do()
def render(self, *args, **kwargs):
"""

View File

@ -39,7 +39,14 @@ class BasePlugin(object):
Main function called by plugin library.
"""
if self._backup:
return self.__do__(*args, **kwargs)
cached = self._backup.cache(self.__slug__)
if cached is None:
result = self.__do__(*args, **kwargs)
self._backup.cache(self.__slug__, result)
self._backup.write_data_file()
return result
else:
return cached
else:
raise Exception(
'Plugin {0} need a backup instance to work with'.format(