diff options
author | hsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-02-27 13:00:45 +0000 |
---|---|---|
committer | hsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-02-27 13:00:45 +0000 |
commit | d9c32d62a06edf6bcfaf357e44173cefd92778ee (patch) | |
tree | ba0a22afc2b02ca4c6eba226ff27c120595968a7 /lib/rubygems/request_set | |
parent | b89e894399016def7979168d16eff9026012a710 (diff) | |
download | ruby-d9c32d62a06edf6bcfaf357e44173cefd92778ee.tar.gz |
* lib/rubygems: Update to RubyGems 2.4.6 and HEAD(800f2e6).
Fixed #1159, #1171, #1173 on rubygems/rubygems
* test/rubygems: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49774 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rubygems/request_set')
-rw-r--r-- | lib/rubygems/request_set/gem_dependency_api.rb | 8 | ||||
-rw-r--r-- | lib/rubygems/request_set/lockfile.rb | 75 |
2 files changed, 37 insertions, 46 deletions
diff --git a/lib/rubygems/request_set/gem_dependency_api.rb b/lib/rubygems/request_set/gem_dependency_api.rb index 9aad5ab5d3..6dd7892b4c 100644 --- a/lib/rubygems/request_set/gem_dependency_api.rb +++ b/lib/rubygems/request_set/gem_dependency_api.rb @@ -367,11 +367,11 @@ class Gem::RequestSet::GemDependencyAPI @dependencies[name] = if requirements.empty? and not source_set then - nil + Gem::Requirement.default elsif source_set then - '!' + Gem::Requirement.source_set else - requirements + Gem::Requirement.create requirements end return unless gem_platforms options @@ -601,7 +601,7 @@ Gem dependencies file #{@path} requires #{name} more than once. add_dependencies groups, [self_dep] add_dependencies groups, spec.runtime_dependencies - @dependencies[spec.name] = '!' + @dependencies[spec.name] = Gem::Requirement.source_set spec.dependencies.each do |dep| @dependencies[dep.name] = dep.requirement diff --git a/lib/rubygems/request_set/lockfile.rb b/lib/rubygems/request_set/lockfile.rb index 2c788fb703..3c54785aad 100644 --- a/lib/rubygems/request_set/lockfile.rb +++ b/lib/rubygems/request_set/lockfile.rb @@ -37,15 +37,40 @@ class Gem::RequestSet::Lockfile end ## - # The platforms for this Lockfile + # Creates a new Lockfile for the given +request_set+ and +gem_deps_file+ + # location. - attr_reader :platforms + def self.build request_set, gem_deps_file, dependencies = nil + request_set.resolve + dependencies ||= requests_to_deps request_set.sorted_requests + new request_set, gem_deps_file, dependencies + end + + def self.requests_to_deps requests # :nodoc: + deps = {} + + requests.each do |request| + spec = request.spec + name = request.name + requirement = request.request.dependency.requirement + + deps[name] = if [Gem::Resolver::VendorSpecification, + Gem::Resolver::GitSpecification].include? spec.class then + Gem::Requirement.source_set + else + requirement + end + end + + deps + end ## - # Creates a new Lockfile for the given +request_set+ and +gem_deps_file+ - # location. + # The platforms for this Lockfile + + attr_reader :platforms - def initialize request_set, gem_deps_file, dependencies = nil + def initialize request_set, gem_deps_file, dependencies @set = request_set @dependencies = dependencies @gem_deps_file = File.expand_path(gem_deps_file) @@ -59,41 +84,9 @@ class Gem::RequestSet::Lockfile def add_DEPENDENCIES out # :nodoc: out << "DEPENDENCIES" - dependencies = - if @dependencies then - @dependencies.sort_by { |name,| name }.map do |name, requirement| - requirement_string = - if '!' == requirement then - requirement - else - Gem::Requirement.new(requirement).for_lockfile - end - - [name, requirement_string] - end - else - requests.sort_by { |r| r.name }.map do |request| - spec = request.spec - name = request.name - requirement = request.request.dependency.requirement - - requirement_string = - if [Gem::Resolver::VendorSpecification, - Gem::Resolver::GitSpecification].include? spec.class then - "!" - else - requirement.for_lockfile - end - - [name, requirement_string] - end - end - - dependencies = dependencies.map do |name, requirement_string| - " #{name}#{requirement_string}" - end - - out.concat dependencies + out.concat @dependencies.sort_by { |name,| name }.map { |name, requirement| + " #{name}#{requirement.for_lockfile}" + } out << nil end @@ -207,8 +200,6 @@ class Gem::RequestSet::Lockfile # The contents of the lock file. def to_s - @set.resolve - out = [] groups = spec_groups |