mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/rubygems.rb: Search for gem deps file up the directory tree.
* test/rubygems/test_gem.rb: Test for above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38097 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
18a3774438
commit
5db8f99943
3 changed files with 61 additions and 2 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
Sat Dec 1 09:42:13 2012 Eric Hodel <drbrain@segment7.net>
|
||||||
|
|
||||||
|
* lib/rubygems.rb: Search for gem deps file up the directory tree.
|
||||||
|
* test/rubygems/test_gem.rb: Test for above.
|
||||||
|
|
||||||
Sat Dec 1 09:33:32 2012 Eric Hodel <drbrain@segment7.net>
|
Sat Dec 1 09:33:32 2012 Eric Hodel <drbrain@segment7.net>
|
||||||
|
|
||||||
* test/runner.rb: Set GEM_HOME, GEM_PATH and GEM_SKIP to empty set.
|
* test/runner.rb: Set GEM_HOME, GEM_PATH and GEM_SKIP to empty set.
|
||||||
|
|
|
@ -187,9 +187,28 @@ module Gem
|
||||||
path = path.dup.untaint
|
path = path.dup.untaint
|
||||||
|
|
||||||
if path == "-"
|
if path == "-"
|
||||||
|
here = Dir.pwd
|
||||||
|
start = here
|
||||||
|
|
||||||
|
begin
|
||||||
|
while true
|
||||||
path = GEM_DEP_FILES.find { |f| File.exists?(f) }
|
path = GEM_DEP_FILES.find { |f| File.exists?(f) }
|
||||||
|
|
||||||
return unless path
|
if path
|
||||||
|
path = File.join here, path
|
||||||
|
break
|
||||||
|
end
|
||||||
|
|
||||||
|
Dir.chdir ".."
|
||||||
|
|
||||||
|
# If we're at a toplevel, stop.
|
||||||
|
return if Dir.pwd == here
|
||||||
|
|
||||||
|
here = Dir.pwd
|
||||||
|
end
|
||||||
|
ensure
|
||||||
|
Dir.chdir start
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
return unless File.exists? path
|
return unless File.exists? path
|
||||||
|
|
|
@ -1402,6 +1402,41 @@ class TestGem < Gem::TestCase
|
||||||
assert_equal '["a-1", "b-1", "c-1"]', out.strip
|
assert_equal '["a-1", "b-1", "c-1"]', out.strip
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_looks_for_gemdeps_files_automatically_on_start_in_parent_dir
|
||||||
|
util_clear_gems
|
||||||
|
|
||||||
|
a = new_spec "a", "1", nil, "lib/a.rb"
|
||||||
|
b = new_spec "b", "1", nil, "lib/b.rb"
|
||||||
|
c = new_spec "c", "1", nil, "lib/c.rb"
|
||||||
|
|
||||||
|
install_specs a, b, c
|
||||||
|
|
||||||
|
path = File.join @tempdir, "gem.deps.rb"
|
||||||
|
|
||||||
|
File.open path, "w" do |f|
|
||||||
|
f.puts "gem 'a'"
|
||||||
|
f.puts "gem 'b'"
|
||||||
|
f.puts "gem 'c'"
|
||||||
|
end
|
||||||
|
|
||||||
|
path = File.join(@tempdir, "gd-tmp")
|
||||||
|
install_gem a, :install_dir => path
|
||||||
|
install_gem b, :install_dir => path
|
||||||
|
install_gem c, :install_dir => path
|
||||||
|
|
||||||
|
ENV['GEM_PATH'] = path
|
||||||
|
ENV['RUBYGEMS_GEMDEPS'] = "-"
|
||||||
|
|
||||||
|
Dir.mkdir "sub1"
|
||||||
|
out = Dir.chdir "sub1" do
|
||||||
|
`#{Gem.ruby.untaint} -I #{LIB_PATH.untaint} -rubygems -e "p Gem.loaded_specs.values.map(&:full_name).sort"`
|
||||||
|
end
|
||||||
|
|
||||||
|
Dir.rmdir "sub1"
|
||||||
|
|
||||||
|
assert_equal '["a-1", "b-1", "c-1"]', out.strip
|
||||||
|
end
|
||||||
|
|
||||||
def with_plugin(path)
|
def with_plugin(path)
|
||||||
test_plugin_path = File.expand_path("test/rubygems/plugin/#{path}",
|
test_plugin_path = File.expand_path("test/rubygems/plugin/#{path}",
|
||||||
@@project_dir)
|
@@project_dir)
|
||||||
|
|
Loading…
Reference in a new issue