1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Update to RubyGems 1.3.0 r1891

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19547 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
drbrain 2008-09-25 10:13:50 +00:00
parent 788001a9c8
commit d478c7a734
60 changed files with 2174 additions and 1049 deletions

View file

@ -58,15 +58,15 @@ lock it down to the exact version.
end
def complain(message)
if options.strict then
raise message
if options[:strict] then
raise Gem::Exception, message
else
say "# #{message}"
end
end
def execute
say 'require "rubygems"'
say "require 'rubygems'"
locked = {}
@ -77,15 +77,20 @@ lock it down to the exact version.
spec = Gem::SourceIndex.load_specification spec_path(full_name)
if spec.nil? then
complain "Could not find gem #{full_name}, try using the full name"
next
end
say "gem '#{spec.name}', '= #{spec.version}'" unless locked[spec.name]
locked[spec.name] = true
spec.runtime_dependencies.each do |dep|
next if locked[dep.name]
candidates = Gem.source_index.search dep.name, dep.requirement_list
candidates = Gem.source_index.search dep
if candidates.empty? then
complain "Unable to satisfy '#{dep}' from currently installed gems."
complain "Unable to satisfy '#{dep}' from currently installed gems"
else
pending << candidates.last.full_name
end
@ -94,7 +99,11 @@ lock it down to the exact version.
end
def spec_path(gem_full_name)
File.join Gem.path, "specifications", "#{gem_full_name }.gemspec"
gemspecs = Gem.path.map do |path|
File.join path, "specifications", "#{gem_full_name}.gemspec"
end
gemspecs.find { |gemspec| File.exist? gemspec }
end
end