diff options
Diffstat (limited to 'lib/gitlab/tracking/docs/renderer.rb')
-rw-r--r-- | lib/gitlab/tracking/docs/renderer.rb | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/gitlab/tracking/docs/renderer.rb b/lib/gitlab/tracking/docs/renderer.rb new file mode 100644 index 00000000000..184b935c2ba --- /dev/null +++ b/lib/gitlab/tracking/docs/renderer.rb @@ -0,0 +1,32 @@ +# frozen_string_literal: true + +module Gitlab + module Tracking + module Docs + class Renderer + include Gitlab::Tracking::Docs::Helper + DICTIONARY_PATH = Rails.root.join('doc', 'development', 'snowplow') + TEMPLATE_PATH = Rails.root.join('lib', 'gitlab', 'tracking', 'docs', 'templates', 'default.md.haml') + + def initialize(event_definitions) + @layout = Haml::Engine.new(File.read(TEMPLATE_PATH)) + @event_definitions = event_definitions.sort + end + + def contents + # Render and remove an extra trailing new line + @contents ||= @layout.render(self, event_definitions: @event_definitions).sub!(/\n(?=\Z)/, '') + end + + def write + filename = DICTIONARY_PATH.join('dictionary.md').to_s + + FileUtils.mkdir_p(DICTIONARY_PATH) + File.write(filename, contents) + + filename + end + end + end + end +end |