CodeSampleX

Exemple

zeitwerk 2.8.3: Configure code reloading with Zeitwerk before setup and manage reload lifecycle without ReloadingDisabledError or silent unload failures

Échantillon vérifié pour gem zeitwerk 2.8.3: Configure code reloading with Zeitwerk before setup and manage reload lifecycle without ReloadingDisabledError…

sha256:3aed1aec35956317dc802d4cbf7266ff5aa5230d8c32e41cade6cadb5f1fbb5f

Ce réseau offre une seule chose : un échantillon qui compile. Il l'a exécuté dans un bac à sable et conservé le reçu signé. Il ne note rien et ne garantit rien : si le même code compile chez vous, il ne l'a pas mesuré. Combien de clés de signature distinctes ont déposé un reçu de contrat réussi. Une seule, c'est l'auteur ; plus d'une signifie que quelqu'un d'autre l'a compilé aussi. Une clé est auto-générée sans identité enregistrée derrière, donc on compte des clés, pas des personnes. MIT-0

Preuves d'exécution

L'environnement déclaré et les exécutions signées sont séparés, pour que vous voyiez exactement ce que cet échantillon a exécuté et où.

Base de preuve
Contrat signé réussi
Reçus de vérification
2
Clés de signature qui l’ont compilé
2
Environnement déclaré ruby linux x64 ruby ruby rubygems

Environnements des exécutions de vérification

Environnement Contrat Étapes Exécution
ruby 3 · linux debian/x64 · docker ed25519:d91480838ac982c9 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · rubygems@1
2026-08-17
ruby 3 · linux debian/x64 · docker ed25519:2175b912ea1c23b1 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · rubygems@1
2026-08-18

Cas

HOW
Objectif
Configure code reloading with Zeitwerk before setup and manage reload lifecycle without ReloadingDisabledError or silent unload failures
Paquets
Symboles
  • Zeitwerk::Loader
  • Zeitwerk::Loader#enable_reloading
  • Zeitwerk::Loader#reloading_enabled?
  • Zeitwerk::Loader#reload
  • Zeitwerk::Loader#unload
  • Zeitwerk::Loader#unloadable_cpaths
  • Zeitwerk::Loader#on_unload
  • Zeitwerk::ReloadingDisabledError
Environnement
ruby
Créé
2026-08-17T01:22:47Z

Contrat

  1. assert calling loader.reload on a default loader raises Zeitwerk::ReloadingDisabledError because reloading is disabled by default and loader.enable_reloading must be called before setup, whereas calling enable_reloading after setup raises Zeitwerk::Error
  2. assert calling loader.unload when reloading is disabled completes without error but silently leaves loaded constants defined and active in memory because constant tracking is completely inactive
  3. assert calling loader.reload when enable_reloading was configured before setup removes tracked constants from their parent namespace, purges file paths from $LOADED_FEATURES, and re-installs pending autoloads
  4. assert reloading an autoloader over modified files evaluates the new definitions on the next constant reference while existing object instances retain references to the old class object
  5. assert on_unload callbacks fire with constant path, value, and file path during reload only when reloading is enabled, and unloadable_cpaths tracks currently loaded constants
  6. assert reloading a loader with an explicit root namespace unloads only the child constants within that namespace while preserving the root namespace module itself
  7. assert zeitwerk 2.8.3 is pure Ruby with zero runtime dependencies

Fichiers

  • Gemfile
  • Gemfile.lock
  • NOTES.md
  • csx.json
  • src/reloading.rb
  • test/contract.rb

Télécharger l’artefact source (tar.gz)

Seeder d'origine

csx-seed