Bundler.setup
modyfikuje LOAD_PATH, więc możesz robić rzeczy takie jak require 'some_gem'
i będą działać. To pozwala wymagać klejnotów "ręcznie". Przed Bundlerem, używając Rubygems, osiągnąłbyś bardzo podobny efekt, robiąc require 'rubygems'
.
Bundler.require(:default)
z drugiej strony faktycznie wymaga wszystkich klejnotów w Gemfile (zakładając, że nie używasz grup, w innym przypadku wymaga tych w określonych grupach, jeśli podajesz argumenty). Jest skrótem dla wielu stwierdzeń require 'some_gem'
.
Zobacz http://gembundler.com/rationale.html. Zauważ, że mówią, że musisz zrobić require 'bundler/setup'
przed wykonaniem Bundler.require
, ale w praktyce zwykle nie jest to konieczne. Prawie nigdy nie używam Bundler.setup
(lub require 'bundler/setup
), ponieważ wymagam wszystkich klejnotów za pośrednictwem Bundler.require
).
Zobacz http://anti-pattern.com/use-bundler-setup-instead-of-bundler-require i http://myronmars.to/ n/dev-blog/2012/12/5-reason-to-avoid-bundler-require z powodu jakiegoś solidnego uzasadnienia, dlaczego powinieneś używać konfiguracji Bundlera (zamiast wymagać), a następnie ręcznie wymagać zależności. –