Example repo around the template engine TDD excercise.
Templater.new("Hello, {{who}}!", who: 'world').render
# => "Hello, world!"
template = "You are logged in{{#admin}} and administrator{{/admin}}."
Templater.new(template, admin: true)
# => "You are logged in and administrator."
Templater.new(template, admin: false)
# => "You are logged."
template = "Names: {{#names}}{{name}} {{/names}}"
data = { names: [{ name: 'John' }, { name: 'Graham' }] }
Templates.new(template, data).render
# => "Names: John Graham "
require 'ostruct'
Templater.new("Hello, {{who}}!", OpenStruct.new(who: 'world')).render
# => "Hello, world!"