Software Challenge Client

This gem includes everything to build a client for the coding competition Software-Challenge.


Add this line to your application's Gemfile:

gem 'software_challenge_client'

And then execute:

$ bundle

Or install it yourself as:

$ gem install software_challenge_client


See the example client in the example directory.

You can execute the example client by entering

ruby main.rb

in a shell (while being in the example directory). Note that the software_challenge_client gem needs to be installed for this to work and a server waiting for a manual client has to be running.


Code documentation can be generated using YARD in the project root (source code needs to be checked out and bundle has to be executed, see Installation):


After generation, the docs can be found in the doc directory. Start at index.html.

Documentation for the latest source can also be found on

When updating the docs, you may use

yard server --reload

or inside a docker container

yard server --reload --bind

to get a live preview of them at http://localhost:8808.


After checking out the repo, run bin/setup to install dependencies. Then, run rspec 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 develop inside a docker container, make sure you have Docker installed and execute


The gem is tested using RSpec. To run all tests, execute rspec. When developing, you may use Guard to execute tests when files change. To do this, execute guard. Tests will then be automatically run when you change a file.


Linting by rubocop is included in the guard config. It is run when all specs pass.


To release a new version, update the version number in lib/software_challenge_client/version.rb and update

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 You may also use the script which executes bundle exec rake release in a suitable docker container.


Bug reports and pull requests are welcome on GitHub at This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct (from Contributor Covenant).