rubygems-await 0.4.1 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
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.