bundler is the best! badcamp 2014 @dead_arm
TRANSCRIPT
Bundler is the Best!BADCamp 2014
@dead_arm
http://bundler.io/
https://github.com/bundler/bundler
Manage the rubygems you need…
“Bundler makes sure Ruby applications run the same code on every machine”
From https://github.com/bundler/bundler
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/
These are a few of
my favorite things!
http://bplusmovieblog.files.wordpress.com/2013/10/the-sound-of-music-25.png
What can Bundler do for you?
One developer, working on one project
One developer, working on many projects
One of many developers,
working on one projectOne of many developers,
working on many projects
If you are...
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
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!
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
What does it look like?
config.rb
# Require Rubygems and Bundlerrequire 'rubygems'require 'bundler/setup'# Require Sass and Compassrequire 'sass'require 'compass'# Require additional gemsrequire '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 assetsrelative_assets = true# Disable debugging commentsline_comments = false# Indented syntaxpreferred_syntax = :sass# Add cache busterasset_cache_buster :none
Gemfile
# Gemfilesource "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"
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 rubyDEPENDENCIES breakpoint (~> 2.4.0) compass (~> 1.0.0.alpha.13) fontcustom (~> 1.3.3) sass (~> 3.3.0.rc.2)
Thank YouBADCamp 2014
@dead_arm