diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f42f458..03db6e0 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -48,7 +48,9 @@ jobs: - os: { name: Windows, value: windows-2022 } ruby: { name: ruby-3.2, value: 3.2.2 } timeout: 20 - - ruby: { name: truffleruby-23, value: truffleruby-23.1.1 } + - ruby: { name: truffleruby-24, value: truffleruby-24.0.1 } + timeout: 20 + - ruby: { name: ruby-head, value: ruby-head } timeout: 20 # - ruby: { name: jruby-9.4, value: jruby-9.4 } # timeout: 20 diff --git a/Gemfile.lock b/Gemfile.lock index c8f74a8..316b1ed 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,7 +11,10 @@ GEM public_suffix (>= 2.0.2, < 6.0) ast (2.4.2) base64 (0.1.1) - crack (0.4.5) + bigdecimal (3.1.8) + bigdecimal (3.1.8-java) + crack (1.0.0) + bigdecimal rexml hashdiff (1.0.1) json (2.6.3) @@ -28,9 +31,10 @@ GEM racc (1.7.1) racc (1.7.1-java) rainbow (3.1.1) - rake (13.0.6) + rake (13.2.1) regexp_parser (2.8.1) - rexml (3.2.6) + rexml (3.3.1) + strscan rubocop (1.56.3) base64 (~> 0.1.1) json (~> 2.3) @@ -48,6 +52,8 @@ GEM rubocop-rake (0.6.0) rubocop (~> 1.0) ruby-progressbar (1.13.0) + strscan (3.1.0) + strscan (3.1.0-java) test-unit (3.6.1) power_assert unicode-display_width (2.4.2) @@ -74,6 +80,3 @@ DEPENDENCIES test-unit (~> 3.0) vcr (~> 6.2) webmock (~> 3.19) - -BUNDLED WITH - 2.5.12 diff --git a/lib/rubygems/await.rb b/lib/rubygems/await.rb index 9545e81..a8f5575 100644 --- a/lib/rubygems/await.rb +++ b/lib/rubygems/await.rb @@ -132,7 +132,11 @@ def compact_index_client fetcher.gem_remote_fetcher) end.send(:compact_index_client) # ensure that updating info always hits the network - client.instance_variable_set(:@info_checksums_by_name, Hash.new { "" }) + if client.instance_variable_defined?(:@parser) + client.instance_variable_get(:@parser).instance_variable_set(:@info_checksums, Hash.new { "" }) + else + client.instance_variable_set(:@info_checksums_by_name, Hash.new { "" }) + end client end @@ -268,7 +272,9 @@ def process_element(name, tuples) cic.instance_variable_get(:@cache).dependencies(name) end - info.each do |version, platform| + info.each do |args| + args.shift if args.first == name + version, platform, = *args tuple = Gem::NameTuple.new(name, version, platform) log_found(tuple) if tuples.delete?(tuple) end