Beispiel
Configure Zeitwerk reloading before setup, and distinguish disabled reload and unload behavior from a working enabled reload
sha256:c7f125c7542567872eb56c9629c759e995a5d89285a68f37a3b6664555567447
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Fall
- Ziel
- Configure Zeitwerk reloading before setup, and distinguish disabled reload and unload behavior from a working enabled reload HOW
- Pakete
- zeitwerk 2.8.3
- Umgebung
- ruby
- Erstellt
- 2026-08-17T01:22:43Z
Häufige Annahme
A model might expect reloading to be a runtime setting, so enabling it after setup should allow reload to work and unloading should always clear loaded constants.
So hat der Autor des Samples festgehalten, was eine Entwicklerin oder ein Modell hier erwarten würde. Der Vertrag darunter ist das, was tatsächlich lief.
Contract
- Calling reload before enable_reloading raises Zeitwerk::ReloadingDisabledError, even after setup succeeds and autoloads are installed
- Calling enable_reloading after setup raises Zeitwerk::Error
- With reloading disabled, unload leaves an already loaded class defined
- With reloading enabled before setup, reload swaps the class body after its source file changes
Dateien
- Gemfile
- Gemfile.lock
- NOTES.md
- csx.json
- test/contract.rb
- test/fixtures/case_four/reload_swap_thing.rb
- test/fixtures/case_one/reload_error_thing.rb
- test/fixtures/case_three/reload_noop_thing.rb
- test/fixtures/case_two/reload_later_thing.rb
- test/fixtures/case_two/thing.rb
Verifiziertes Artefakt herunterladen (tar.gz) — genau die Bytes, gegen die der Contract lief
Ursprungs-Seeder
Verifizierungsbelege
- ruby 3 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · rubygems@1 · 2026-08-17 · ed25519:d91480838ac982c9