Skip to content

artemv/ruby-starter-kit

Repository files navigation

Ruby Starter Kit

Greenkeeper badge 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).

Travis build status Code Climate Test Coverage semantic-release

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).

Installation

  • Clone the repo: git clone https://github.com/artemv/ruby-starter-kit.git my-app

1 - In your machine

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.

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.

Usage

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