We’re doing this because we might write tests that deal with other versions of bundler and we are unsure how to handle this better.
# File lib/bundler.rb, line 166
166: def app_cache
167: root.join("vendor/cache")
168: end
# File lib/bundler.rb, line 160
160: def app_config_path
161: ENV['BUNDLE_APP_CONFIG'] ?
162: Pathname.new(ENV['BUNDLE_APP_CONFIG']).expand_path(root) :
163: root.join('.bundle')
164: end
# File lib/bundler.rb, line 86
86: def bin_path
87: @bin_path ||= begin
88: path = settings[:bin] || "bin"
89: path = Pathname.new(path).expand_path(root)
90: FileUtils.mkdir_p(path)
91: Pathname.new(path).expand_path
92: end
93: end
# File lib/bundler.rb, line 81
81: def bundle_path
82: # STDERR.puts settings.path
83: @bundle_path ||= Pathname.new(settings.path).expand_path(root)
84: end
# File lib/bundler.rb, line 152
152: def cache
153: bundle_path.join("cache/bundler")
154: end
# File lib/bundler.rb, line 70
70: def configure
71: @configured ||= begin
72: configure_gem_home_and_path
73: true
74: end
75: end
# File lib/bundler.rb, line 186
186: def default_gemfile
187: SharedHelpers.default_gemfile
188: end
# File lib/bundler.rb, line 190
190: def default_lockfile
191: SharedHelpers.default_lockfile
192: end
# File lib/bundler.rb, line 123
123: def definition(unlock = nil)
124: @definition = nil if unlock
125: @definition ||= begin
126: configure
127: upgrade_lockfile
128: Definition.build(default_gemfile, default_lockfile, unlock)
129: end
130: end
# File lib/bundler.rb, line 119
119: def environment
120: Bundler::Environment.new(root, definition)
121: end
# File lib/bundler.rb, line 140
140: def home
141: bundle_path.join("bundler")
142: end
# File lib/bundler.rb, line 144
144: def install_path
145: home.join("gems")
146: end
# File lib/bundler.rb, line 115
115: def load
116: @load ||= Runtime.new(root, definition)
117: end
# File lib/bundler.rb, line 221
221: def load_gemspec(file)
222: path = Pathname.new(file)
223: # Eval the gemspec from its parent directory
224: Dir.chdir(path.dirname) do
225: begin
226: Gem::Specification.from_yaml(path.basename)
227: # Raises ArgumentError if the file is not valid YAML
228: rescue ArgumentError, SyntaxError, Gem::EndOfYAMLException, Gem::Exception
229: begin
230: eval(File.read(path.basename), TOPLEVEL_BINDING, path.expand_path.to_s)
231: rescue LoadError => e
232: original_line = e.backtrace.find { |line| line.include?(path.to_s) }
233: msg = "There was a LoadError while evaluating #{path.basename}:\n #{e.message}"
234: msg << " from\n #{original_line}" if original_line
235: msg << "\n"
236:
237: if RUBY_VERSION >= "1.9.0"
238: msg << "\nDoes it try to require a relative path? That doesn't work in Ruby 1.9."
239: end
240:
241: raise GemspecError, msg
242: end
243: end
244: end
245: end
# File lib/bundler.rb, line 205
205: def mkdir_p(path)
206: if requires_sudo?
207: sudo "mkdir -p '#{path}'" unless File.exist?(path)
208: else
209: FileUtils.mkdir_p(path)
210: end
211: end
# File lib/bundler.rb, line 217
217: def read_file(file)
218: File.open(file, "rb") { |f| f.read }
219: end
# File lib/bundler.rb, line 111
111: def require(*groups)
112: setup(*groups).require(*groups)
113: end
# File lib/bundler.rb, line 194
194: def requires_sudo?
195: return @requires_sudo if @checked_for_sudo
196:
197: path = bundle_path
198: path = path.parent until path.exist?
199: sudo_present = !(`which sudo` rescue '').empty?
200:
201: @checked_for_sudo = true
202: @requires_sudo = settings.allow_sudo? && !File.writable?(path) && sudo_present
203: end
# File lib/bundler.rb, line 156
156: def root
157: default_gemfile.dirname.expand_path
158: end
# File lib/bundler.rb, line 132
132: def ruby_scope
133: "#{Gem.ruby_engine}/#{Gem::ConfigMap[:ruby_version]}"
134: end
# File lib/bundler.rb, line 174
174: def settings
175: @settings ||= Settings.new(app_config_path)
176: end
# File lib/bundler.rb, line 95
95: def setup(*groups)
96: return @setup if defined?(@setup) && @setup
97:
98: if groups.empty?
99: # Load all groups, but only once
100: @setup = load.setup
101: else
102: # Figure out which groups haven't been loaded yet
103: unloaded = groups - (@completed_groups || [])
104: # Record groups that are now loaded
105: @completed_groups = groups | (@completed_groups || [])
106: # Load any groups that are not yet loaded
107: unloaded.any? ? load.setup(*unloaded) : load
108: end
109: end
# File lib/bundler.rb, line 148
148: def specs_path
149: bundle_path.join("specifications")
150: end
# File lib/bundler.rb, line 213
213: def sudo(str)
214: `sudo -p 'Enter your password to install the bundled RubyGems to your system: ' #{str}`
215: end
# File lib/bundler.rb, line 170
170: def tmp
171: user_bundle_path.join("tmp", Process.pid.to_s)
172: end
# File lib/bundler.rb, line 249
249: def configure_gem_home_and_path
250: if settings[:disable_shared_gems]
251: ENV['GEM_PATH'] = ''
252: ENV['GEM_HOME'] = File.expand_path(bundle_path, root)
253: elsif Gem.dir != bundle_path.to_s
254: paths = [Gem.dir, Gem.path].flatten.compact.uniq.reject{|p| p.empty? }
255: ENV["GEM_PATH"] = paths.join(File::PATH_SEPARATOR)
256: ENV["GEM_HOME"] = bundle_path.to_s
257: end
258:
259: FileUtils.mkdir_p bundle_path.to_s
260: Gem.clear_paths
261: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.