Ruby Starter Kit
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).
App code structure
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
1 - In your machine
- 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
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.
2 - Using Docker
- 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:
Run the guard dev env tool:
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: