私は、それぞれが独自のファイルで定義された 4 つの関連クラスを持ついくつかのレガシー RoR コードを使用しています。これらのクラスはすべてパーサー クラスであり、app/models/parsers に存在します。各ファイル名は _parser.rb で終わります。
ファイル adf_parser.rb のクラス定義行の例を次に示します。
class Parsers::AdfParser
Parsers:: の一部が何をしているのかわかりません。
- 私が見つけることができるどこにも定義されたパーサーと呼ばれる明示的なモジュールはありません。
- モジュール仕様をクラス名に追加するだけで暗黙的にモジュールを作成することに関するドキュメントはありません。
- 唯一の外部依存関係は「require 'csv'」です。
- class def 内に include ステートメントがありますが、クラス名を説明するものは何もないと思います。
- 新しい RoR テスト プロジェクトを作成し、これらのファイルのスタブを並列ディレクトリに配置しましたが、名前エラーのためにコマンド ラインから実行できません。
- このように名前が付けられたクラスのオンラインの例はありません。
これはロケット手術ではないと確信していますが、これを理解しようとして朝のほとんどを失ってしまいました。誰かが何が起こっているのか教えていただければ幸いです.
更新: サブディレクトリ名に基づいて、これはちょっとした Rails マジックのように思えます。テスト アプリでエラーが発生した理由は、何らかの方法で Rails でファイルを呼び出すのではなく、Ruby インタープリターを介してファイルを実行したためだと思います。