Vault::Tools
Tools is the English word for ツール. Tooling for the Heroku Vault team to enable faster bootstrapping for Ruby projects.
Installation
Add this line to your application's Gemfile:
gem 'vault-tools'
Usage
Vault.setup
calling Vault.setup
will:
- call
Bundler.require
with the correspondingRACK_ENV
- add
./lib
to the$LOAD_PATH
- set
TZ
to utc as well asSequel
's default timezone - overwrite
Time.to_s
to default to ISO8601 - replace Ruby's default, deprecated
Config
withVault::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 intoVault::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
Releasing
> bundle exec rake release