0.0
No release in over 3 years
There's a lot of open issues
Shared prompt template engine with variables, conditionals, loops, and prompt versioning. Replaces ad-hoc templating across LLM gems.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

~> 5.0
~> 13.0
 Project Readme

prompter-ruby

Prompt template engine for Ruby. Render dynamic prompts with variables, conditionals, and loops.

Installation

gem "prompter-ruby"

Usage

require "prompter_ruby"

# Basic variable interpolation
template = PrompterRuby::Template.new("Hello, {{name}}!")
template.render(name: "World")  # => "Hello, World!"

# Conditionals and loops
source = <<~TMPL
  You are a {{role}} assistant.
  {% if context %}Use this context: {{context}}{% endif %}
  {% for item in items %}
  - {{item}}
  {% endfor %}
TMPL
template = PrompterRuby::Template.new(source)
template.render(role: "helpful", items: ["A", "B", "C"])

# Strict mode (raise on undefined variables)
template.render({ name: "World" }, strict: true)

# Validation
template.valid?      # => true/false
template.validate!   # raises ParseError if invalid

Features

  • {{variable}} interpolation with nested key access
  • {% if %} / {% else %} / {% endif %} conditionals
  • {% for x in items %} / {% endfor %} loops
  • Strict mode raises UndefinedVariableError for missing variables
  • ParseError with line numbers for unclosed blocks
  • Template validation (valid?, validate!)
  • Whitespace trimming for tag-only lines

License

MIT