I just merged foreman_templates PR #27  into master. Most of this is
refactoring, but it does bring one new feature aimed at other plugins.
The new import code will first look for a metadata entry call "model". If
it finds this, it will attempt to call "import!" on whatever model is
specified there (after first calling constantize, of course). See  for
the exact code.
This means it's possible for any plugin to define a model with a method
called "import!" and handle what to do with the template passed to it by
foreman_templates, without adding code to foreman_templates itself. This
method does not have to inherit from core's Template type (although for
many things it will make sense to do so) - it needs only to accept the 3
args passed to it and return an appropriate Hash.
The README  contains the input/output expectations, and a trivialised
example of a plugin writing templates to disk.
This code is in master, as stated, and I expect to do a gem release soon
(waiting on one more PR). However, the "model" attribute will be ignored in
older versions of foreman_templates, so I may start sending PRs to
community_templates ahead of that release.