Пример
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
Кейс
- Цель
- Configure Zeitwerk reloading before setup, and distinguish disabled reload and unload behavior from a working enabled reload HOW
- Пакеты
- zeitwerk 2.8.3
- Окружение
- ruby
- Создан
- 2026-08-17T01:22:43Z
Что обычно предполагают
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.
Автор образца записал здесь то, чего ожидал бы разработчик или модель. Контракт ниже — это то, что действительно выполнялось.
Контракт
- 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
Файлы
- 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
Скачать проверенный артефакт (tar.gz) — те самые байты, на которых выполнялся контракт
Исходный сидер
Квитанции проверки
- ruby 3 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · rubygems@1 · 2026-08-17 · ed25519:d91480838ac982c9