diff options
author | Hiroshi SHIBATA <[email protected]> | 2022-01-19 13:28:23 +0900 |
---|---|---|
committer | Hiroshi SHIBATA <[email protected]> | 2022-01-19 15:01:44 +0900 |
commit | d22511fd7595ef1819baa42851d598d95b8f4d00 (patch) | |
tree | 83e823c033f5c39c314cf4379f0bac5c43adf3d4 /lib/bundler/endpoint_specification.rb | |
parent | 5646f4b67b75e7e558c994ff8cbd374e4b4bd3b5 (diff) |
Merge rubygems/rubygems HEAD.
Picked at 12aeef6ba9a3be0022be9934c1a3e4c46a03ed3a
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/5462
Diffstat (limited to 'lib/bundler/endpoint_specification.rb')
-rw-r--r-- | lib/bundler/endpoint_specification.rb | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/lib/bundler/endpoint_specification.rb b/lib/bundler/endpoint_specification.rb index 6cf597b943..f3260a38e6 100644 --- a/lib/bundler/endpoint_specification.rb +++ b/lib/bundler/endpoint_specification.rb @@ -5,14 +5,15 @@ module Bundler class EndpointSpecification < Gem::Specification include MatchPlatform - attr_reader :name, :version, :platform, :required_rubygems_version, :required_ruby_version, :checksum + attr_reader :name, :version, :platform, :checksum attr_accessor :source, :remote, :dependencies - def initialize(name, version, platform, dependencies, metadata = nil) + def initialize(name, version, platform, spec_fetcher, dependencies, metadata = nil) super() @name = name @version = Gem::Version.create version @platform = platform + @spec_fetcher = spec_fetcher @dependencies = dependencies.map {|dep, reqs| build_dependency(dep, reqs) } @loaded_from = nil @@ -21,6 +22,14 @@ module Bundler parse_metadata(metadata) end + def required_ruby_version + @required_ruby_version ||= _remote_specification.required_ruby_version + end + + def required_rubygems_version + @required_rubygems_version ||= _remote_specification.required_rubygems_version + end + def fetch_platform @platform end @@ -105,12 +114,21 @@ module Bundler private + def _remote_specification + @_remote_specification ||= @spec_fetcher.fetch_spec([@name, @version, @platform]) + end + def local_specification_path "#{base_dir}/specifications/#{full_name}.gemspec" end def parse_metadata(data) - return unless data + unless data + @required_ruby_version = nil + @required_rubygems_version = nil + return + end + data.each do |k, v| next unless v case k.to_s |