diff options
author | hsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-12-22 23:08:05 +0000 |
---|---|---|
committer | hsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-12-22 23:08:05 +0000 |
commit | 7825e8363d4b2ccad8e2d3f5eeba9e26f6656911 (patch) | |
tree | 83cbcf419e0feeb2ab0fd063ed85e0776eb0081b /lib/bundler/endpoint_specification.rb | |
parent | 73bed0312895322e0fd18310e840356c8e6af812 (diff) |
Postponing the Bundler merge.
I faced a big issue about Bundler with ruby core.
I have no time to resolve it issue before 2.5 final release.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61416 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/bundler/endpoint_specification.rb')
-rw-r--r-- | lib/bundler/endpoint_specification.rb | 141 |
1 files changed, 0 insertions, 141 deletions
diff --git a/lib/bundler/endpoint_specification.rb b/lib/bundler/endpoint_specification.rb deleted file mode 100644 index 8668c4ea7f..0000000000 --- a/lib/bundler/endpoint_specification.rb +++ /dev/null @@ -1,141 +0,0 @@ -# frozen_string_literal: true - -module Bundler - # used for Creating Specifications from the Gemcutter Endpoint - class EndpointSpecification < Gem::Specification - ILLFORMED_MESSAGE = 'Ill-formed requirement ["#<YAML::Syck::DefaultKey'.freeze - include MatchPlatform - - attr_reader :name, :version, :platform, :required_rubygems_version, :required_ruby_version, :checksum - attr_accessor :source, :remote, :dependencies - - def initialize(name, version, platform, dependencies, metadata = nil) - super() - @name = name - @version = Gem::Version.create version - @platform = platform - @dependencies = dependencies.map {|dep, reqs| build_dependency(dep, reqs) } - - @loaded_from = nil - @remote_specification = nil - - parse_metadata(metadata) - end - - def fetch_platform - @platform - end - - # needed for standalone, load required_paths from local gemspec - # after the gem is installed - def require_paths - if @remote_specification - @remote_specification.require_paths - elsif _local_specification - _local_specification.require_paths - else - super - end - end - - # needed for inline - def load_paths - # remote specs aren't installed, and can't have load_paths - if _local_specification - _local_specification.load_paths - else - super - end - end - - # needed for binstubs - def executables - if @remote_specification - @remote_specification.executables - elsif _local_specification - _local_specification.executables - else - super - end - end - - # needed for bundle clean - def bindir - if @remote_specification - @remote_specification.bindir - elsif _local_specification - _local_specification.bindir - else - super - end - end - - # needed for post_install_messages during install - def post_install_message - if @remote_specification - @remote_specification.post_install_message - elsif _local_specification - _local_specification.post_install_message - else - super - end - end - - # needed for "with native extensions" during install - def extensions - if @remote_specification - @remote_specification.extensions - elsif _local_specification - _local_specification.extensions - else - super - end - end - - def _local_specification - return unless @loaded_from && File.exist?(local_specification_path) - eval(File.read(local_specification_path)).tap do |spec| - spec.loaded_from = @loaded_from - end - end - - def __swap__(spec) - SharedHelpers.ensure_same_dependencies(self, dependencies, spec.dependencies) - @remote_specification = spec - end - - private - - def local_specification_path - "#{base_dir}/specifications/#{full_name}.gemspec" - end - - def parse_metadata(data) - return unless data - data.each do |k, v| - next unless v - case k.to_s - when "checksum" - @checksum = v.last - when "rubygems" - @required_rubygems_version = Gem::Requirement.new(v) - when "ruby" - @required_ruby_version = Gem::Requirement.new(v) - end - end - rescue => e - raise GemspecError, "There was an error parsing the metadata for the gem #{name} (#{version}): #{e.class}\n#{e}\nThe metadata was #{data.inspect}" - end - - def build_dependency(name, requirements) - Gem::Dependency.new(name, requirements) - rescue ArgumentError => e - raise unless e.message.include?(ILLFORMED_MESSAGE) - puts # we shouldn't print the error message on the "fetching info" status line - raise GemspecError, - "Unfortunately, the gem #{name} (#{version}) has an invalid " \ - "gemspec.\nPlease ask the gem author to yank the bad version to fix " \ - "this issue. For more information, see http://bit.ly/syck-defaultkey." - end - end -end |