"vendor everything" still applies
DESCRIPTION
This talk is a quick lesson on some of the conventions I use and as they relate to Bundler and RVM.As a consultant, I jump between a lot of different Ruby projects from day to day. Some are my own; some are owned by others. Some are greenfield; some are legacy. Sometimes, I’m the sole developer; sometimes, I’m working with a team.There’s nothing more frustrating than jumping on an existing project only to fall into dependency hell when your first goal is just a passing test suite. Dependencies can be quite difficult to manage, and fortunately, we have some great tools like Bundler and RVM to help out. The problem, however, is that conventions surrounding these tools aren’t yet settled.TRANSCRIPT
“Vendor Everything”Still Applies
Ryan McGearyhttp://ryan.mcgeary.org
@rmm5t
vendor/g
ems
config.g
em
WHY?
Check in your.rvmrc
rvm ruby-1.9.2
RVM Gemsets Are Overrated
Let Bundler Follow the --path
$ bundle install --path vendor$ echo 'vendor/ruby' >> .gitignore
Package Your Gems in vendor/cache
$ bundle package
Help!
alias b="bundle"alias bi="b install --path vendor"alias bu="b update"alias be="b exec"alias binit="bi && b package && ignore_vendor_ruby"
.!"" .gitignore!"" .rvmrc!"" Gemfile!"" Gemfile.lock#"" vendor !"" cache $ !"" coffee-script-2.2.0.gem $ !"" coffee-script-source-1.1.0.gem $ !"" execjs-0.4.0.gem $ #"" multi_json-1.0.2.gem #"" ruby #"" 1.9.1 !"" bin !"" cache !"" doc !"" gems #"" specifications
.!"" .gitignore!"" .rvmrc!"" Gemfile!"" Gemfile.lock#"" vendor !"" cache $ !"" coffee-script-2.2.0.gem $ !"" coffee-script-source-1.1.0.gem $ !"" execjs-0.4.0.gem $ #"" multi_json-1.0.2.gem #"" ruby #"" 1.9.1 !"" bin !"" cache !"" doc !"" gems #"" specifications
.!"" .gitignore!"" .rvmrc!"" Gemfile!"" Gemfile.lock#"" vendor !"" cache $ !"" coffee-script-2.2.0.gem $ !"" coffee-script-source-1.1.0.gem $ !"" execjs-0.4.0.gem $ #"" multi_json-1.0.2.gem #"" ruby #"" 1.9.1 !"" bin !"" cache !"" doc !"" gems #"" specifications
.!"" .gitignore!"" .rvmrc!"" Gemfile!"" Gemfile.lock#"" vendor !"" cache $ !"" coffee-script-2.2.0.gem $ !"" coffee-script-source-1.1.0.gem $ !"" execjs-0.4.0.gem $ #"" multi_json-1.0.2.gem #"" ruby #"" 1.9.1 !"" bin !"" cache !"" doc !"" gems #"" specifications
bundle ins
tall --pat
h vendor
.!"" .gitignore!"" .rvmrc!"" Gemfile!"" Gemfile.lock#"" vendor !"" cache $ !"" coffee-script-2.2.0.gem $ !"" coffee-script-source-1.1.0.gem $ !"" execjs-0.4.0.gem $ #"" multi_json-1.0.2.gem #"" ruby #"" 1.9.1 !"" bin !"" cache !"" doc !"" gems #"" specifications
bundle pac
kage
Ryan McGearyryan.mcgeary.org @rmm5t [email protected]
McGeary Consulting Group