IntrohiveTemplatingLanguage

CI

ITL is a template language built on Introhive Expression Language (IEL.) It is a similar style to "handlebars" and other formats that use curly-braces to switch between static and dynamic content.

This solves the problem of having configurable outputs built from a controlled set of inputs that the developer defines. This could be for generating HTML or other things like configuring an API endpoint in a setting. If used appropriately it can help with the goal of "configurability everywhere" in the system.

The template functionality is very simple but powerful as you have the full capabilities of IEL as your disposal. Additionally macros to enhance the readability of the templates are supported to generate the messier IEL expressions dynamically.

https://docs.google.com/document/d/1-ZBD0dzBY3mzj80QNc1lKkwz_eOIhwQ36ViMj8nWsPI/edit#heading=h.rh6ojsfmwtnw

Installation

Add this line to your application's Gemfile:

gem 'introhive_templating_language'

And then execute:

$ bundle

Or install it yourself as:

$ gem install introhive_templating_language

Continuous Integration

This project uses GitHub Actions for continuous integration. The CI workflow runs automatically on:

  • Every push to any branch
  • Every pull request

The workflow executes the test suite using Ruby 2.7.2 with Bundler 2.3.20. You can view the status and logs of CI runs in the Actions tab.

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake test to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.