Ruby bootstrapping for projects for the Heroku Vault team
Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin Remove Honeybadger for Rollbar Aug 20, 2015
lib Support multiple passwords with Basic creds. Apr 5, 2017
test Support multiple passwords with Basic creds. Apr 5, 2017
.gitignore Do not ignore bin/console files Aug 20, 2015
.travis.yml bundler update Aug 24, 2015
.yardopts
Gemfile
Gemfile.lock Update Gemfile.lock Apr 5, 2017
Guardfile Use guard for easier unit test verification. Jan 8, 2014
LICENSE.txt initial commit Dec 7, 2012
README.md readme May 1, 2014
Rakefile Expose all tasks, and pull_schemas to other apps Jan 27, 2014
vault-tools.gemspec Update rollbar version and add scrub fields and headers so we don't l… Feb 9, 2016

README.md

Vault::Tools

Tools is the English word for ツール. Tooling for the Heroku Vault team to enable faster bootstrapping for Ruby projects.

Build Status

Installation

Add this line to your application's Gemfile:

gem 'vault-tools'

Usage

Vault.setup

calling Vault.setup will:

  • call Bundler.require with the corresponding RACK_ENV
  • add ./lib to the $LOAD_PATH
  • set TZ to utc as well as Sequel's default timezone
  • overwrite Time.to_s to default to ISO8601
  • replace Ruby's default, deprecated Config with Vault::Config
  • if the CONFIG_APP environment variable is defined and this is the production environment, it will attempt to use the Heroku API to load the config vars from another app into Vault::Config

Vault::Config

Provides a better way to configure the application than simply pulling strings from ENV.

defaults

Config[:foo]
# => nil

Config.default(:foo, 'bar')
Config[:foo]
# => 'bar'
Config['FOO']
# => 'bar'

type casts

Returns nil when undefined, otherwise casts to indicated type.

Config.int(:max_connections)

Vault::Log

  Log.time(name, t)
  #  => "measure=true at=web-40"

  Log.count('foo')
  #  => "measure=true at=foo"

Vault::Web

Sinatra base class

Includes request logging and health endpoints

  class Web < Vault::Web
    helpers Vault::SinatraHelpers::HtmlSerializer
  end

Setting up a development environment

Install the dependencies:

bundle install --binstubs vendor/bin
rbenv rehash

Run the tests:

vendor/bin/t

Generate the API documentation:

vendor/bin/d

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Releasing

> bundle exec rake release