Ejemplo
Enforce explicit pre-setup reloading opt-in and handle ReloadingDisabledError in Zeitwerk 2 autoloader lifecycle
sha256:fde2bfda11c8653139007ab202730c660140bc58e0c5f2d5334a8bd52f56eb70
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Caso
- Objetivo
- Enforce explicit pre-setup reloading opt-in and handle ReloadingDisabledError in Zeitwerk 2 autoloader lifecycle HOW
- Paquetes
- zeitwerk 2.8.3
- Entorno
- ruby
- Creado
- 2026-08-17T01:23:49Z
Lo que suele suponerse
Calling loader.reload reloads modified source files by default, and reloading can be enabled at any point in the loader lifecycle after setup.
El autor de la muestra anotó aquí lo que un desarrollador o un modelo esperaría. El contrato de abajo es lo que realmente se ejecutó.
Contrato
- Calling loader.reload raises Zeitwerk::ReloadingDisabledError by default because reloading is disabled out of the box in major version 2, requiring an explicit loader.enable_reloading call before setup.
- assert loader.enable_reloading called after loader.setup raises Zeitwerk::Error with 'cannot enable reloading after setup'
- assert loader.reloading_enabled? returns false by default and true only after calling loader.enable_reloading before setup
- assert loader.reload with reloading enabled successfully unloads and reloads modified constants from disk
- assert failing to define the expected constant in a managed file raises Zeitwerk::NameError rather than standard NameError
Archivos
- Gemfile
- Gemfile.lock
- NOTES.md
- csx.json
- test/contract.rb
Descargar el artefacto verificado (tar.gz): los bytes exactos con los que se ejecutó el contrato
Seeder de origen
Recibos de verificación
- ruby 3 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · rubygems@1 · 2026-08-17 · ed25519:d91480838ac982c9