зеркало из https://github.com/github/ruby.git
[rubygems/rubygems] Override initialize in bundle rubygems_ext for NameTuple
https://github.com/rubygems/rubygems/commit/f63ce682d2
This commit is contained in:
Родитель
b673b5b432
Коммит
e186cebe42
|
@ -352,11 +352,16 @@ module Gem
|
|||
require "rubygems/name_tuple"
|
||||
|
||||
class NameTuple
|
||||
def self.new(name, version, platform="ruby")
|
||||
# Versions of RubyGems before about 3.5.0 don't to_s the platform.
|
||||
unless Gem::NameTuple.new("a", Gem::Version.new("1"), Gem::Platform.new("x86_64-linux")).platform.is_a?(String)
|
||||
alias_method :initialize_with_platform, :initialize
|
||||
|
||||
def initialize(name, version, platform=Gem::Platform::RUBY)
|
||||
if Gem::Platform === platform
|
||||
super(name, version, platform.to_s)
|
||||
initialize_with_platform(name, version, platform.to_s)
|
||||
else
|
||||
super
|
||||
initialize_with_platform(name, version, platform)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -63,3 +63,23 @@ RSpec.describe "Gem::SourceIndex#refresh!" do
|
|||
run "Gem::SourceIndex.new([]).refresh!", raise_on_error: false
|
||||
end
|
||||
end
|
||||
|
||||
RSpec.describe "Gem::NameTuple" do
|
||||
describe "#initialize" do
|
||||
it "creates a Gem::NameTuple with equality regardless of platform type" do
|
||||
gem_platform = Gem::NameTuple.new "a", v("1"), pl("x86_64-linux")
|
||||
str_platform = Gem::NameTuple.new "a", v("1"), "x86_64-linux"
|
||||
expect(gem_platform).to eq(str_platform)
|
||||
expect(gem_platform.hash).to eq(str_platform.hash)
|
||||
expect(gem_platform.to_a).to eq(str_platform.to_a)
|
||||
end
|
||||
end
|
||||
|
||||
describe "#lock_name" do
|
||||
it "returns the lock name" do
|
||||
expect(Gem::NameTuple.new("a", v("1.0.0"), pl("x86_64-linux")).lock_name).to eq("a (1.0.0-x86_64-linux)")
|
||||
expect(Gem::NameTuple.new("a", v("1.0.0"), "ruby").lock_name).to eq("a (1.0.0)")
|
||||
expect(Gem::NameTuple.new("a", v("1.0.0")).lock_name).to eq("a (1.0.0)")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Загрузка…
Ссылка в новой задаче