This is a Ruby app boilerplate with conventional code structure and basic dev env to start some console mode utility app with (Bundler, Guard, ActiveSupport Logger, Rubocop, RSpec, WebMock, Travis, CodeClimate).
Place your app-specific code in app/ dir, and utility code that you'd like to extract to gems later to lib/ dir. Files in both of them are autoloaded from app.rb (via lib/environment.rb).
- Clone the repo:
git clone https://github.com/artemv/ruby-starter-kit.git my-app
- Install Ruby 2.6.3 from https://www.ruby-lang.org/en/downloads/ or via RVM (https://rvm.io/)
- Install Bundler and dependencies:
cd my-app
gem install bundler
bundle install
If bundle install
fails trying to install ffi
and you're on MacOS Mojave, try this and repeat:
LDFLAGS="-L/usr/local/opt/libffi/lib" PKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig" gem install ffi -v '1.11.1' --source 'https://rubygems.org/'
Alternatively if you are using Yeoman you can install it using its generator as described here.
- Build the Docker Compose:
docker-compose up -d --build
If it complains like "ERROR: The Docker Engine version is less than the minimum required by Compose. Your current project requires a Docker Engine of version 1.13.0 or greater."
that means you have too old version of docker server. Check it with command:
docker version
. Then you can upgrade it with docker-machine upgrade default
.
- Go inside the docker container:
docker exec -it ruby-starter-kit /bin/bash
Now you can change the source files locally, and the changes will be seen inside docker container transparently - so it's rather straightforward way to set up a working dev env.
Run the app entry point script:
repo=octokit.rb bin/app.rb
Run the guard dev env tool:
guard
It will run rubocop on start, will run rubocop inspections on changed files and will re-run all RSpecs and rubocop inspections if you hit Enter in guard window.
Run the tests:
rspec