SlideShare a Scribd company logo
1 of 15
Download to read offline
“Vendor Everything”        Ryan McGeary
                      http://ryan.mcgeary.org
    Still Applies            @rmm5t
e m s                    e m
               / g                    g .   g
         o   r                  f   i
v e   nd                c    on
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
                                                  ven dor
      $   #"" multi_json-1.0.2.gem
                                        --p ath
      #"" ruby
                                 sta ll
          #"" 1.9.1
                          le  in
               !"" binund
                    b
               !"" cache
               !"" doc
               !"" gems
               #"" specifications
.
!""   .gitignore
!""   .rvmrc
!""   Gemfile
!""   Gemfile.lock
#""   vendor                   ack age
      !"" cache         dl e p
                    bun
      $   !"" 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
Ryan McGeary
ryan.mcgeary.org   @rmm5t   ryan@mcgeary.org




McGeary Consulting Group

More Related Content

Viewers also liked

Viewers also liked (6)

One Man Lightning Talks
One Man Lightning TalksOne Man Lightning Talks
One Man Lightning Talks
 
CoffeeScript: The Good Parts
CoffeeScript: The Good PartsCoffeeScript: The Good Parts
CoffeeScript: The Good Parts
 
Coffeescript
CoffeescriptCoffeescript
Coffeescript
 
Why A Wiki?
Why A Wiki?Why A Wiki?
Why A Wiki?
 
Ruby Internals
Ruby InternalsRuby Internals
Ruby Internals
 
CoffeeScript By Example
CoffeeScript By ExampleCoffeeScript By Example
CoffeeScript By Example
 

Similar to "Vendor Everything" still applies

Ruby Sapporo Night Vol3
Ruby Sapporo Night Vol3Ruby Sapporo Night Vol3
Ruby Sapporo Night Vol3
Koji SHIMADA
 

Similar to "Vendor Everything" still applies (20)

Week6
Week6Week6
Week6
 
Build and maintain large ruby applications Ruby Conf Australia 2016
Build and maintain large ruby applications Ruby Conf Australia 2016Build and maintain large ruby applications Ruby Conf Australia 2016
Build and maintain large ruby applications Ruby Conf Australia 2016
 
Device deployment
Device deploymentDevice deployment
Device deployment
 
20091027genentech
20091027genentech20091027genentech
20091027genentech
 
Massive device deployment - EclipseCon 2011
Massive device deployment - EclipseCon 2011Massive device deployment - EclipseCon 2011
Massive device deployment - EclipseCon 2011
 
All about Apache ACE
All about Apache ACEAll about Apache ACE
All about Apache ACE
 
20090622 Velocity
20090622 Velocity20090622 Velocity
20090622 Velocity
 
Ruby gemsパッケージの作り方
Ruby gemsパッケージの作り方Ruby gemsパッケージの作り方
Ruby gemsパッケージの作り方
 
Fixing Growing Pains With Puppet Data Patterns
Fixing Growing Pains With Puppet Data PatternsFixing Growing Pains With Puppet Data Patterns
Fixing Growing Pains With Puppet Data Patterns
 
Ruby Sapporo Night Vol3
Ruby Sapporo Night Vol3Ruby Sapporo Night Vol3
Ruby Sapporo Night Vol3
 
Ecossistema Ruby - versão SCTI UNF 2013
Ecossistema Ruby - versão SCTI UNF 2013Ecossistema Ruby - versão SCTI UNF 2013
Ecossistema Ruby - versão SCTI UNF 2013
 
When Devs Do Ops
When Devs Do OpsWhen Devs Do Ops
When Devs Do Ops
 
20091110startup2startup
20091110startup2startup20091110startup2startup
20091110startup2startup
 
AWS Elastic Beanstalk
AWS Elastic BeanstalkAWS Elastic Beanstalk
AWS Elastic Beanstalk
 
Open Source Saturday - How can I contribute to Ruby on Rails?
Open Source Saturday - How can I contribute to Ruby on Rails?Open Source Saturday - How can I contribute to Ruby on Rails?
Open Source Saturday - How can I contribute to Ruby on Rails?
 
The Puppet Debugging Kit: Building Blocks for Exploration and Problem Solving...
The Puppet Debugging Kit: Building Blocks for Exploration and Problem Solving...The Puppet Debugging Kit: Building Blocks for Exploration and Problem Solving...
The Puppet Debugging Kit: Building Blocks for Exploration and Problem Solving...
 
High Performance Ruby: Evented vs. Threaded
High Performance Ruby: Evented vs. ThreadedHigh Performance Ruby: Evented vs. Threaded
High Performance Ruby: Evented vs. Threaded
 
RSpec. Part 1
RSpec. Part 1RSpec. Part 1
RSpec. Part 1
 
Ruby 2.1
Ruby 2.1Ruby 2.1
Ruby 2.1
 
Crate - ruby based standalone executables
Crate - ruby based standalone executablesCrate - ruby based standalone executables
Crate - ruby based standalone executables
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 

"Vendor Everything" still applies

  • 1. “Vendor Everything” Ryan McGeary http://ryan.mcgeary.org Still Applies @rmm5t
  • 2.
  • 3. e m s e m / g g . g o r f i v e nd c on
  • 5. Check in your .rvmrc rvm ruby-1.9.2
  • 7. Let Bundler Follow the --path $ bundle install --path vendor $ echo 'vendor/ruby' >> .gitignore
  • 8. Package Your Gems in vendor/cache $ bundle package
  • 9. 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"
  • 10. . !"" .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
  • 11. . !"" .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
  • 12. . !"" .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
  • 13. . !"" .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 ven dor $   #"" multi_json-1.0.2.gem --p ath #"" ruby sta ll #"" 1.9.1 le in !"" binund b !"" cache !"" doc !"" gems #"" specifications
  • 14. . !"" .gitignore !"" .rvmrc !"" Gemfile !"" Gemfile.lock #"" vendor ack age !"" cache dl e p bun $   !"" 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
  • 15. Ryan McGeary ryan.mcgeary.org @rmm5t ryan@mcgeary.org McGeary Consulting Group