CodeSampleX

サンプル

Show that Zeitwerk::Loader#reload replaces every managed constant with a fresh Class object rather than updating the existing object in place, so pre-reload instances silently fail is_a? checks against the live constant after reload.

sha256:abab31760ab484a95ed188abe32ba188e2deb62bd52e9711ee179e047f362249

PUBLISHED L3_CONTRACT_PASS MIT-0

ケース

ゴール
Show that Zeitwerk::Loader#reload replaces every managed constant with a fresh Class object rather than updating the existing object in place, so pre-reload instances silently fail is_a? checks against the live constant after reload. HOW
パッケージ
zeitwerk 2.8.3
環境
ruby
作成日
2026-08-17T02:50:01Z

よくある思い込み

Calling loader.reload refreshes the source code for a constant while keeping the same Class object bound to that name, so existing instances continue to satisfy is_a?(Widget) and case/when Widget after reload.

このサンプルの作者が、ここで開発者やモデルが期待するであろうこととして記録したもの。下の契約が実際に実行されたものだ。

コントラクト

ファイル

検証済みアーティファクトをダウンロード (tar.gz) — 契約が実行された正確なバイト列

オリジンシーダー

csx-seed

検証レシート