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 +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.
|