Klue Langcraft

Domain Specific Language Crafting

Installation

Add this line to your application's Gemfile:

gem 'klue-langcraft'

And then execute:

bundle install

Or install it yourself as:

gem install klue-langcraft

Stories

Main Story

As a DSL designer, I want to testing out Domain Specific Language designs for different usecases, so that I can develop DSLs quickly and effectively

See project plan

Use Cases

DSL Use Cases

Development

Checkout the repo

git clone https://github.com/appydave/klue-langcraft

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests.

You can also run bin/console for an interactive prompt that will allow you to experiment.

bin/console

klue-langcraft is setup with Guard, run guard, this will watch development file changes and run tests automatically, if successful, it will then run rubocop for style quality.

To release a new version, update the version number in version.rb, build the gem and push the .gem file to rubygems.org.

rake publish
rake clean

Git helpers used by this project

Add the follow helpers to your alias file

function kcommit()
{
  echo 'git add .'
  git add .
  echo "git commit -m "$1""
  git commit -m "$1"
  echo 'git pull'
  git pull
  echo 'git push'
  git push
  sleep 3
  run_id="$(gh run list --limit 1 | grep -Eo "[0-9]{9,11}")"
  gh run watch $run_id --exit-status && echo "run completed and successful" && git pull && git tag | sort -V | tail -1
}
function kchore     () { kcommit "chore: $1" }
function kdocs      () { kcommit "docs: $1" }
function kfix       () { kcommit "fix: $1" }
function kfeat      () { kcommit "feat: $1" }
function ktest      () { kcommit "test: $1" }
function krefactor  () { kcommit "refactor: $1" }

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/klueless-io/klue-langcraft. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

License

The gem is available as open source under the terms of the MIT License.

Code of Conduct

Everyone interacting in the Klue Langcraft project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.

Copyright (c) David Cruwys. See MIT License for further details.