<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/test/rubygems/test_gem_remote_fetcher.rb, branch v4.0.2</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>Bundle RubyGems 4.0.2 and Bundler 4.0.2</title>
<updated>2025-12-17T03:12:34+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2025-12-17T02:29:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=3b66efda523fc33070aee6097898dbc5b1af6f4b'/>
<id>3b66efda523fc33070aee6097898dbc5b1af6f4b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/rubygems] Write gem files atomically</title>
<updated>2025-12-15T01:15:06+00:00</updated>
<author>
<name>eileencodes</name>
<email>eileencodes@gmail.com</email>
</author>
<published>2025-11-25T19:17:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=58940377e6f27f39d5c3baa0faa15655fa873f2c'/>
<id>58940377e6f27f39d5c3baa0faa15655fa873f2c</id>
<content type='text'>
This change updates `write_binary` to use a new class,
`AtomicFileWriter.open` to write the gem's files. This implementation
is borrowed from Active Support's [`atomic_write`](https://github.com/rails/rails/blob/main/activesupport/lib/active_support/core_ext/file/atomic.rb).

Atomic write will write the files to a temporary file and then once
created, sets permissions and renames the file. If the file is corrupted
- ie on failed download, an error occurs, or for some other reason, the
real file will not be created. The changes made here make `verify_gz`
obsolete, we don't need to verify it if we have successfully created the
file atomically. If it exists, it is not corrupt. If it is corrupt, the
file won't exist on disk.

While writing tests for this functionality I replaced the
`RemoteFetcher` stub with `FakeFetcher` except for where we really do
need to overwrite the `RemoteFetcher`. The new test implementation is much
clearer on what it's trying to accomplish versus the prior test
implementation.

https://github.com/ruby/rubygems/commit/0cd4b54291
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change updates `write_binary` to use a new class,
`AtomicFileWriter.open` to write the gem's files. This implementation
is borrowed from Active Support's [`atomic_write`](https://github.com/rails/rails/blob/main/activesupport/lib/active_support/core_ext/file/atomic.rb).

Atomic write will write the files to a temporary file and then once
created, sets permissions and renames the file. If the file is corrupted
- ie on failed download, an error occurs, or for some other reason, the
real file will not be created. The changes made here make `verify_gz`
obsolete, we don't need to verify it if we have successfully created the
file atomically. If it exists, it is not corrupt. If it is corrupt, the
file won't exist on disk.

While writing tests for this functionality I replaced the
`RemoteFetcher` stub with `FakeFetcher` except for where we really do
need to overwrite the `RemoteFetcher`. The new test implementation is much
clearer on what it's trying to accomplish versus the prior test
implementation.

https://github.com/ruby/rubygems/commit/0cd4b54291
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Use spaces around optional parameter values</title>
<updated>2025-08-18T03:31:51+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2025-08-11T20:02:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=7125f7635d43f67b1664bf85e72a34d868259822'/>
<id>7125f7635d43f67b1664bf85e72a34d868259822</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/b58829a868
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/b58829a868
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Extract tests with local HTTP/HTTPS server from TestGemRemoteFetcher</title>
<updated>2024-07-04T03:33:04+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2024-07-03T03:28:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f6aa774a14a4170ade49101e7bcc213338a61a5f'/>
<id>f6aa774a14a4170ade49101e7bcc213338a61a5f</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/52db9fd501
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/52db9fd501
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Extract tests with S3 resources from TestGemRemoteFetcher</title>
<updated>2024-07-04T03:33:04+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2024-07-03T02:33:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=127221d8736047d0ad79b773cfb2a8f607e3d2fd'/>
<id>127221d8736047d0ad79b773cfb2a8f607e3d2fd</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/d3ee8d2d3b
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/d3ee8d2d3b
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] WEBrick:Utils::TimeoutHandler is always provided after webrick gem</title>
<updated>2024-01-31T13:21:13+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2024-01-30T07:14:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=c70052e5d91ee51f80aebbb777f01c5b0920c073'/>
<id>c70052e5d91ee51f80aebbb777f01c5b0920c073</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/b0502a0c50
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/b0502a0c50
</pre>
</div>
</content>
</entry>
<entry>
<title>Vendor uri gem in RubyGems</title>
<updated>2024-01-29T03:14:21+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2024-01-15T19:51:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=d64d0b54231208c7bec899a7fe8c3b98ec2e9a1b'/>
<id>d64d0b54231208c7bec899a7fe8c3b98ec2e9a1b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Vendor timeout in RubyGems too</title>
<updated>2023-12-13T03:16:55+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2023-06-30T19:22:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=a7c9163b5d87c0420e54cd75668bceb8f39a578a'/>
<id>a7c9163b5d87c0420e54cd75668bceb8f39a578a</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/e2e7440ede
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/e2e7440ede
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Vendor net-http and net-protocol in RubyGems</title>
<updated>2023-12-13T03:16:55+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2023-01-29T20:24:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=ce924ce1fb029f19fd34a43f2012a485f4f62b53'/>
<id>ce924ce1fb029f19fd34a43f2012a485f4f62b53</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/99d91c9ed2
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/99d91c9ed2
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Use modern hashes consistently</title>
<updated>2023-12-07T22:29:33+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2023-12-07T21:10:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=2755cb1b2fbc4a5f08ca56345b5945bd452da74e'/>
<id>2755cb1b2fbc4a5f08ca56345b5945bd452da74e</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/bb66253f2c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/bb66253f2c
</pre>
</div>
</content>
</entry>
</feed>
