IntrohiveExpressionLanguage

CI

IEL is a programming language built primarily for embedding into ruby software. It is designed to be a safe language for end users to use. It is in the functional style of languages like lisp which makes it very appropriate for expression evaluation. It also makes more complex logic easy to implement as users can define their own functions and call them. Its standard library contains functions to manipulate data and control execution flow.

https://docs.google.com/document/d/1m1lz-jr3tgKTLjGsPPIxEsCIWHXEsmP-iZ7ogNaegZY/edit#heading=h.bq98xgbgvoii

Installation

Add this line to your application's Gemfile:

gem 'introhive_expression_language'

And then execute:

$ bundle

Or install it yourself as:

$ gem install introhive_expression_language

Development

After checking out the repo, run bin/setup to install dependencies. Then, run bundle exec 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. See the Versioning section for instructions on releasing a new version.

Versioning

Every change to this gem — including bug fixes, new features, and dependency updates — requires a version bump in lib/introhive_expression_language/version.rb before merging.

This project follows Semantic Versioning:

Version segment When to increment
x (major) Breaking changes to the public API (e.g. removing or renaming functions in Evaluator, EvaluationContext, or StdLib)
y (minor) New backwards-compatible functionality (e.g. new stdlib functions, new evaluator features, new public Ruby API)
z (patch) Backwards-compatible fixes, dependency updates, Ruby version bumps, tooling changes

Steps to release

  1. Bump the version in lib/introhive_expression_language/version.rb
  2. Run bundle install to update Gemfile.lock
  3. Commit both files and merge the PR
  4. Run bundle exec rake release to tag, push, and publish the .gem

After the new version is published, update the introhive_expression_language reference in any downstream projects to point to the new version.

Continuous Integration

This project uses GitHub Actions for continuous integration. The CI workflow runs on every push and pull request to the master branch. You can view the status of builds and tests in the Actions tab.