Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Bundler is the Best

742 views

Published on

Lock down which project is using which Ruby gems, on which versions, with Bundler! Gem versions can be a pain to manage, especially if you or your team members work on multiple projects simultaneously, or if you work with contractors, temps, etc. Case in point: projects stall, people leave, and hand-offs often don’t include robust documentation.

Using Bundler is a great practice if you aren’t going to be working on a project forever and someone else will have to pick up where you left off, if you are working on one legacy project and one bleeding edge project, or if you frequently come back to projects after not working on them for some amount of time. Additionally, it can be difficult to get the right gems (dependencies on specific versions) if you have multiple versions on your system. Setting up, managing, and updating your ruby gem environment is a tedious task. Bundler can help!

http://bundler.io/

https://github.com/bundler/bundler

Published in: Technology
  • Be the first to comment

Bundler is the Best

  1. 1. Bundle! is th" Best! BADCamp 2014 @dead_arm
  2. 2. http://bundler.io/ https://github.com/bundler/bundler
  3. 3. Manage the rubygems you need… “Bundler makes sure Ruby applications run the same code on every machine” From https://github.com/bundler/bundler
  4. 4. and their dependencies! “and Bundler makes it easy to make sure that your application has the dependencies it needs to start up and run without errors.” From http://bundler.io/
  5. 5. These are a few of my favorite things! http://bplusmovieblog.files.wordpress.com/2013/10/the-sound-of-music-25.png
  6. 6. What can Bundle! do fo! you?
  7. 7. If you are... On" developer, working on on" project On" developer, working on man# projects On! of man" developers, working on on! project On! of man" developers, working on man" projects
  8. 8. Best Practices Create one bundle per theme Add gems to the Gemfile, not the Gemfile.lock Include ALL the gems you are using on the theme in the bundle
  9. 9. Best Practices Specify the version of the gem if you know which one you need, otherwise you can let Bundler handle it Update gems using Bundler, not manually Once you have the bundle set up, use it!
  10. 10. Recommendations State “require/bundler” in config.rb or set up a bash alias so that you don’t have to type “bundle exec…” Use “chruby” to manage your system’s ruby version (https://github.com/postmodern/chruby) Add the ruby version your gems use to your Gemfile
  11. 11. What d$s it loo% lik"?
  12. 12. config.rb # Require Rubygems and Bundler require 'rubygems' require 'bundler/setup' # Require Sass and Compass require 'sass' require 'compass' # Require additional gems require 'breakpoint' require 'fontcustom' # Set this to the root of your project when deployed: http_path = '/' css_dir = 'css' sass_dir = 'sass' fonts_dir = 'fonts' images_dir = 'images' javascripts_dir = 'js' # Enable relative paths to assets relative_assets = true # Disable debugging comments line_comments = false # Indented syntax preferred_syntax = :sass # Add cache buster asset_cache_buster :none
  13. 13. Gemfile # Gemfile source "https://rubygems.org" ruby "2.0.0" gem "sass", "~> 3.3.0.rc.2" gem "compass", "~> 1.0.0.alpha.13" gem "breakpoint", "~> 2.4.0" gem "fontcustom", "~> 1.3.3"
  14. 14. Gemfile.lock GEM remote: https://rubygems.org/ specs: breakpoint (2.4.0) compass (~> 1.0.0.alpha.13) sass (~> 3.3.0.rc.2) sassy-­‐maps (< 1.0.0) chunky_png (1.2.9) compass (1.0.0.alpha.17) chunky_png (~> 1.2) compass-­‐core (~> 1.0.0.alpha.16) compass-­‐import-­‐once (~> 1.0.1) json listen (~> 1.1.0) sass (~> 3.3.0.rc.1) compass-­‐core (1.0.0.alpha.16) multi_json (~> 1.0) sass (>= 3.3.rc.1) compass-­‐import-­‐once (1.0.1) ffi (1.9.3) fontcustom (1.3.3) json (~> 1.4) listen (~> 1.0) thor (~> 0.14) json (1.8.1) listen (1.1.6) rb-­‐fsevent (>= 0.9.3) rb-­‐inotify (>= 0.9) rb-­‐kqueue (>= 0.2) multi_json (1.8.2) rb-­‐fsevent (0.9.3) rb-­‐inotify (0.9.3) ffi (>= 0.5.0) rb-­‐kqueue (0.2.0) ffi (>= 0.5.0) sass (3.3.0.rc.2) listen (~> 1.1.0) sassy-­‐maps (0.3.1) compass (~> 1.0.0.alpha.13) sass (~> 3.3.0.rc.2) thor (0.19.1) PLATFORMS ruby DEPENDENCIES breakpoint (~> 2.4.0) compass (~> 1.0.0.alpha.13) fontcustom (~> 1.3.3) sass (~> 3.3.0.rc.2)
  15. 15. Than# You BADCamp 2014 @dead_arm

×