module Bundler
def bundle_path
def bundle_path @bundle_path ||= begin path = settings[:path] || "#{Gem.user_home}/.bundle/#{Gem.ruby_engine}/#{Gem::ConfigMap[:ruby_version]}" Pathname.new(path).expand_path(root) end end
def cache
def cache bundle_path.join('cache/bundler') end
def configure
def configure @configured ||= begin configure_gem_home_and_path true end end
def configure_gem_home_and_path
def configure_gem_home_and_path if settings[:disable_shared_gems] ENV['GEM_HOME'] = File.expand_path(bundle_path, root) ENV['GEM_PATH'] = '' else gem_home, gem_path = Gem.dir, Gem.path ENV["GEM_PATH"] = [gem_home, gem_path].flatten.compact.join(File::PATH_SEPARATOR) ENV["GEM_HOME"] = bundle_path.to_s end Gem.clear_paths end
def default_gemfile
def default_gemfile SharedHelpers.default_gemfile end
def definition(gemfile = default_gemfile)
def definition(gemfile = default_gemfile) configure root = Pathname.new(gemfile).dirname lockfile = root.join("Gemfile.lock") if lockfile.exist? Definition.from_lock(lockfile) else Definition.from_gemfile(gemfile) end end
def home
def home Pathname.new(bundle_path).join("bundler") end
def install_path
def install_path home.join("gems") end
def load(gemfile = default_gemfile)
def load(gemfile = default_gemfile) root = Pathname.new(gemfile).dirname Runtime.new root, definition(gemfile) end
def require(*groups)
def require(*groups) gemfile = default_gemfile load(gemfile).require(*groups) end
def root
def root default_gemfile.dirname end
def settings
def settings @settings ||= Settings.new(root) end
def setup(*groups)
def setup(*groups) gemfile = default_gemfile load(gemfile).setup(*groups) end
def ui
def ui @ui ||= UI.new end