cc-os/plugins/os-adr/lib/adr/template.rb

26 lines
561 B
Ruby
Raw Permalink Normal View History

module Adr
# Renders templates/adr.md by substituting {{key}} placeholders.
# Arrays render as YAML flow sequences; missing keys render empty.
class Template
def initialize(path:)
@path = path
end
def render(values)
File.read(@path).gsub(/\{\{(\w+)\}\}/) do
format_value(values[Regexp.last_match(1).to_sym])
end.gsub(/ +$/, "")
end
private
def format_value(value)
case value
when nil then ""
when Array then "[#{value.join(', ')}]"
else value.to_s
end
end
end
end