rubygems-await 0.4.1 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f040bdde5711373824dfc778356f15195f961c3e8927e6aeec2b4e30ac25798e
4
- data.tar.gz: f63d4321dfb30d38ef3bf3eea88b883ad5b4cb6214ba32174f36d98d8554fd4c
3
+ metadata.gz: a7aa95f9ae9cf362a45db3e468784c20a34a3d4eb4f4c6defad953d42783ed53
4
+ data.tar.gz: 56bd242a22cd3a473cd62493605891d0ca978fe740c6f68c41eb8ae6836f07ba
5
5
  SHA512:
6
- metadata.gz: 835768f38eaa5ca44fa3b74ccd07ee6b2ef31419ebabd1b6c729ff90d93070bc74defda1d86845468e4e4fdbff3d2f2aead814cb86008344b49e42cdcbca9bc5
7
- data.tar.gz: 1f0a4d3c71f50adc95abec57d4cb410bef2d73c9833d76432cd37b2e9a38f178d6659ab1f2f8d8d76f1bdce5424b50933c053aa5b7ecb61d389961879325cc47
6
+ metadata.gz: 4cbe9b0affd9a4b6bb0e7469616ebf04dd43505c606ae92c2f24ffca74cdb42f9c4d65f5ddeac85d80247e3a20e96228141f294ba5fafc45d1a64f45f56cd7ee
7
+ data.tar.gz: 792367dc130c7b88f4b038418149d70ff85f6c6f7c26548a8b09a3f2749b44b5b41cbcdf90580f7e5bd9c0db87b7a2821ac7cfb7c5c1a7f16a5a47adb94933ac
data/CHANGELOG.md CHANGED
@@ -1,4 +1,6 @@
1
- ## [Unreleased]
1
+ ## [0.5.0] - 2024-01-05
2
+
3
+ - Add support for Ruby 3.3 / Bundler 2.5 / RubyGems 3.5
2
4
 
3
5
  ## [0.1.0] - 2023-10-02
4
6
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Rubygems
4
4
  module Await
5
- VERSION = "0.4.1"
5
+ VERSION = "0.5.1"
6
6
  end
7
7
  end
@@ -1,9 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative "await/version"
4
+ require "bundler/vendored_uri"
5
+ require "rubygems/remote_fetcher"
6
+ require "set"
4
7
 
5
8
  module Rubygems
6
9
  module Await
10
+ URI = defined?(Gem::URI) ? Gem::URI : Bundler::URI
11
+
7
12
  class Error < StandardError; end
8
13
 
9
14
  class Awaiter
@@ -23,7 +28,7 @@ module Rubygems
23
28
  def initialize(gems, source, deadline, name_indent = 10)
24
29
  @gems = gems
25
30
  @source = source
26
- @source_uri = Bundler::URI.parse(source)
31
+ @source_uri = URI.parse(source)
27
32
  @deadline = deadline
28
33
  @name_indent = name_indent
29
34
  end
@@ -54,7 +59,7 @@ module Rubygems
54
59
  log { "#{Bundler.ui.add_color("missing", :yellow)}: #{format_element(missing)}" }
55
60
  process_collection(missing)
56
61
  rescue StandardError => e
57
- log_error(e)
62
+ log_error(e) { e.full_message(highlight: false) }
58
63
  ensure
59
64
  iteration += 1
60
65
  log(level: "debug") { "##{iteration} #{Time.now.-(start).round(2)}s" } if start
@@ -111,25 +116,46 @@ module Rubygems
111
116
  end
112
117
 
113
118
  def downloader
114
- remote = Bundler::Source::Rubygems::Remote.new URI(source)
119
+ remote = Bundler::Source::Rubygems::Remote.new URI.parse(source)
115
120
  fetcher = Bundler::Fetcher.new(remote)
116
121
  fetcher.send(:downloader)
117
122
  end
118
123
 
119
124
  def compact_index_client
120
- remote = Bundler::Source::Rubygems::Remote.new URI(source)
125
+ remote = Bundler::Source::Rubygems::Remote.new URI.parse(source)
121
126
  fetcher = Bundler::Fetcher.new(remote)
122
- client = Bundler::Fetcher::CompactIndex.new(fetcher.send(:downloader), remote,
123
- fetcher.uri).send(:compact_index_client)
127
+ client =
128
+ if Bundler::VERSION < "2.5.0"
129
+ Bundler::Fetcher::CompactIndex.new(fetcher.send(:downloader), remote, fetcher.uri)
130
+ else
131
+ Bundler::Fetcher::CompactIndex.new(fetcher.send(:downloader), remote, fetcher.uri,
132
+ fetcher.gem_remote_fetcher)
133
+ end.send(:compact_index_client)
124
134
  # ensure that updating info always hits the network
125
135
  client.instance_variable_set(:@info_checksums_by_name, Hash.new { "" })
126
136
  client
127
137
  end
128
138
 
139
+ def gem_remote_fetcher
140
+ if Bundler.rubygems.respond_to?(:gem_remote_fetcher)
141
+ Bundler.rubygems.gem_remote_fetcher
142
+ else
143
+ remote = Bundler::Source::Rubygems::Remote.new URI.parse(source)
144
+ fetcher = Bundler::Fetcher.new(remote)
145
+ raise "unsupported bundler version" unless fetcher.respond_to?(:gem_remote_fetcher)
146
+
147
+ fetcher.gem_remote_fetcher
148
+ end
149
+ end
150
+
129
151
  def index_fetcher
130
- remote = Bundler::Source::Rubygems::Remote.new URI(source)
152
+ remote = Bundler::Source::Rubygems::Remote.new URI.parse(source)
131
153
  fetcher = Bundler::Fetcher.new(remote)
132
- Bundler::Fetcher::Index.new(fetcher.send(:downloader), remote, fetcher.uri)
154
+ if Bundler::VERSION < "2.5.0"
155
+ Bundler::Fetcher::Index.new(fetcher.send(:downloader), remote, fetcher.uri)
156
+ else
157
+ Bundler::Fetcher::Index.new(fetcher.send(:downloader), remote, fetcher.uri, fetcher.gem_remote_fetcher)
158
+ end
133
159
  end
134
160
 
135
161
  def self.awaiter_name
@@ -275,9 +301,8 @@ module Rubygems
275
301
 
276
302
  remote_gem_path = source_uri + "gems/#{gem_file_name}"
277
303
 
278
- fetcher = Bundler.rubygems.gem_remote_fetcher
279
304
  Bundler::SharedHelpers.filesystem_access(local_gem_path) do
280
- fetcher.cache_update_path remote_gem_path, local_gem_path
305
+ gem_remote_fetcher.cache_update_path remote_gem_path, local_gem_path
281
306
  end
282
307
  true
283
308
  rescue Gem::RemoteFetcher::FetchError => e
@@ -296,9 +321,8 @@ module Rubygems
296
321
  end
297
322
 
298
323
  def process_collection(missing)
299
- fetcher = Bundler.rubygems.gem_remote_fetcher
300
324
  path = source_uri + "specs.#{Gem.marshal_version}.gz"
301
- contents = fetcher.fetch_path(path)
325
+ contents = gem_remote_fetcher.fetch_path(path)
302
326
  idx = safe_load_marshal(contents)
303
327
 
304
328
  idx.each do |found|
@@ -318,9 +342,8 @@ module Rubygems
318
342
  end
319
343
 
320
344
  def process_collection(missing)
321
- fetcher = Bundler.rubygems.gem_remote_fetcher
322
345
  path = source_uri + "prerelease_specs.#{Gem.marshal_version}.gz"
323
- contents = fetcher.fetch_path(path)
346
+ contents = gem_remote_fetcher.fetch_path(path)
324
347
  idx = safe_load_marshal(contents)
325
348
 
326
349
  idx.each do |found|
@@ -66,6 +66,7 @@ module Gem
66
66
  Bundler::Thor::Shell::Color.const_set(:UNDERLINE,
67
67
  "\e[4m")
68
68
  end
69
+ Bundler.ui.level = "silent" if options[:silent]
69
70
 
70
71
  gems = options[:args].map do |s|
71
72
  if s.end_with?(".gem")
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubygems-await
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Giddins
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-12-14 00:00:00.000000000 Z
11
+ date: 2024-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -68,7 +68,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
68
68
  - !ruby/object:Gem::Version
69
69
  version: '3.2'
70
70
  requirements: []
71
- rubygems_version: 3.4.10
71
+ rubygems_version: 3.5.3
72
72
  signing_key:
73
73
  specification_version: 4
74
74
  summary: A RubyGems plugin with a command to wait until gems are available.