"Vendor Everything" still applies

Preview:

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.

Citation preview

“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 ryan@mcgeary.org

McGeary Consulting Group

Recommended