diff options
author | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2021-06-14 12:55:54 +0900 |
---|---|---|
committer | nagachika <nagachika@ruby-lang.org> | 2021-07-07 10:03:15 +0900 |
commit | 1e98ec27f6ab893d7c9c1d48214fbe9bb2aa049c (patch) | |
tree | ccec4cac42bde6676ae6914976dff64656dea667 /lib/rubygems | |
parent | f63d3bbb6e27daaac8211c57929d62add4fef1ad (diff) |
Merge RubyGems-3.2.20 and Bundler-2.2.20
Diffstat (limited to 'lib/rubygems')
-rw-r--r-- | lib/rubygems/installer.rb | 4 | ||||
-rw-r--r-- | lib/rubygems/specification_policy.rb | 9 | ||||
-rw-r--r-- | lib/rubygems/test_case.rb | 4 |
3 files changed, 13 insertions, 4 deletions
diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb index 7af51056b7..8c286605e1 100644 --- a/lib/rubygems/installer.rb +++ b/lib/rubygems/installer.rb @@ -728,6 +728,10 @@ class Gem::Installer raise Gem::InstallError, "#{spec} has an invalid extensions" end + if spec.platform.to_s =~ /\R/ + raise Gem::InstallError, "#{spec.platform} is an invalid platform" + end + unless spec.specification_version.to_s =~ /\A\d+\z/ raise Gem::InstallError, "#{spec} has an invalid specification_version" end diff --git a/lib/rubygems/specification_policy.rb b/lib/rubygems/specification_policy.rb index 2b8b05635e..86277a2058 100644 --- a/lib/rubygems/specification_policy.rb +++ b/lib/rubygems/specification_policy.rb @@ -124,25 +124,26 @@ class Gem::SpecificationPolicy end metadata.each do |key, value| + entry = "metadata['#{key}']" if !key.kind_of?(String) error "metadata keys must be a String" end if key.size > 128 - error "metadata key too large (#{key.size} > 128)" + error "metadata key is too large (#{key.size} > 128)" end if !value.kind_of?(String) - error "metadata values must be a String" + error "#{entry} value must be a String" end if value.size > 1024 - error "metadata value too large (#{value.size} > 1024)" + error "#{entry} value is too large (#{value.size} > 1024)" end if METADATA_LINK_KEYS.include? key if value !~ VALID_URI_PATTERN - error "metadata['#{key}'] has invalid link: #{value.inspect}" + error "#{entry} has invalid link: #{value.inspect}" end end end diff --git a/lib/rubygems/test_case.rb b/lib/rubygems/test_case.rb index b3e23360ed..24e8ac853e 100644 --- a/lib/rubygems/test_case.rb +++ b/lib/rubygems/test_case.rb @@ -553,6 +553,10 @@ class Gem::TestCase < Test::Unit::TestCase Gem.pre_uninstall_hooks.clear end + def without_any_upwards_gemfiles + ENV["BUNDLE_GEMFILE"] = File.join(@tempdir, "Gemfile") + end + ## # A git_gem is used with a gem dependencies file. The gem created here # has no files, just a gem specification for the given +name+ and +version+. |