Common methods for bootstrapping, pre-commit testing, and Gemfile management? Sign me up!
bin | ||
lib | ||
template/script | ||
.gitignore | ||
Gemfile | ||
penchant.gemspec | ||
Rakefile | ||
README.md |
I have a penchant for setting up all my projects so they work the same.
I like to do these things in all my projects:
- Have all my tests run before committing. I don't like buying ice cream for the team on test failures.
- If I'm developing gems alongside this project, I use a
Gemfile.erb
to get around the "one gem, one source" issue in current versions of Bundler. - If I'm moving to different machines or (heaven forbid!) having other developers work on the project, I want to make getting all those local gems as easy as possible.
This gem makes that easier!
What's it do?
Installs a bunch of scripts into the scripts
directory of your project:
gemfile
which switches betweenGemfile.erb
environmentsinstall-git-hooks
which will do just what it sayshooks/pre-commit
, one of the hooks the prior script installsinitialize-environment
, which bootstraps your locak environment so you can get up and running
Gemfile.erb?!
Yeah, it's a Gemfile
with ERB in it:
<% if env == "local" %>
gem 'guard', :path => '../guard'
<% else %>
gem 'guard', :git => 'git://github.com/johnbintz/guard.git'
<% end %>
Use script/gemfile local
to get at the local ones, and script/gemfile remote
(or anything, really) to get at the remote ones.
It then runs bundle install
.
git hook?!
It runs script/gemfile remote
then runs bundle exec rake
. Make sure your default Rake task for the project runs your
tests and performs any other magic necessary before each commit.
How?!
gem install penchant
cd
to your project directorypenchant install
(can do--dir=WHEREVER
, too)