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:
parent
788001a9c8
commit
d478c7a734
60 changed files with 2174 additions and 1049 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue