Ruby アプリケーションのコードベースでコア ロジックとロギング/デバッグ/端末出力コードを分離する一般的な方法を探しています。理想的には、アプリケーション コア (典型的な Ruby プロジェクトの「lib」ディレクトリ) と並行して、別の「トレーサー」コードベースを持ちたいと考えています。トレーサ コードは、単体テストが test/spec ディレクトリの並列構造にあることが多いのと同じように、特別なディレクトリ (おそらく "trace" と呼ばれる) にあります。トレーサー ファイルは、さまざまなメソッドのラッパーを使用してターゲット クラスを拡張します。これらのラッパーは、ログへの書き込み、ブレークポイントの設定 (たとえばpry 's'をbinding.pry
使用)、またはメソッドが返されるたびにプログレス バーをインクリメントするなどのことを行います。トレーサ コードのロードは、1 つのスイッチで制御できます。
私はいくつかの調査を行い、ほとんど空白になっています。私が求めている機能の一部を見つけました。たとえば、標準ライブラリのTracerクラスとmethod_decorators gem。しかし、テスト用のrspecに似た、より完全なソリューションが世の中にあるのではないかと思っています。そのようなものは存在しますか?または、この問題に対処する他の方法はありますか?