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 +4 -4
- data/CHANGELOG.md +3 -1
- data/lib/rubygems/await/version.rb +1 -1
- data/lib/rubygems/await.rb +37 -14
- data/lib/rubygems/commands/await_command.rb +1 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a7aa95f9ae9cf362a45db3e468784c20a34a3d4eb4f4c6defad953d42783ed53
|
4
|
+
data.tar.gz: 56bd242a22cd3a473cd62493605891d0ca978fe740c6f68c41eb8ae6836f07ba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4cbe9b0affd9a4b6bb0e7469616ebf04dd43505c606ae92c2f24ffca74cdb42f9c4d65f5ddeac85d80247e3a20e96228141f294ba5fafc45d1a64f45f56cd7ee
|
7
|
+
data.tar.gz: 792367dc130c7b88f4b038418149d70ff85f6c6f7c26548a8b09a3f2749b44b5b41cbcdf90580f7e5bd9c0db87b7a2821ac7cfb7c5c1a7f16a5a47adb94933ac
|
data/CHANGELOG.md
CHANGED
data/lib/rubygems/await.rb
CHANGED
@@ -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 =
|
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 =
|
123
|
-
|
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::
|
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
|
-
|
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 =
|
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 =
|
346
|
+
contents = gem_remote_fetcher.fetch_path(path)
|
324
347
|
idx = safe_load_marshal(contents)
|
325
348
|
|
326
349
|
idx.each do |found|
|
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
|
+
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:
|
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.
|
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.
|