我正在使用一些遗留的 RoR 代码,它有四个相关的类,每个类都定义在自己的文件中。所有这些类都是解析器类,并且存在于 app/models/parsers 中。每个文件名都以 _parser.rb 结尾。
这是来自文件 adf_parser.rb 的示例类定义行:
class Parsers::AdfParser
我不知道 Parsers:: 的一部分在做什么。
- 在我能找到的任何地方都没有定义名为 Parsers 的显式模块。
- 我没有看到任何有关仅通过将模块规范添加到类名来隐式创建模块的文档。
- 唯一的外部依赖是“需要'csv'”。
- 类 def 中有 include 语句,但我认为它们没有任何可以解释类名的东西。
- 我创建了一个新的 RoR 测试项目并将这些文件的存根放在并行目录中,由于名称错误,它们不会从命令行运行。
- 我没有看到任何以这种方式命名的类的在线示例。
我敢肯定这不是火箭手术,但我早上的大部分时间都在试图弄清楚这一点,如果有人能告诉我这是怎么回事,我会很高兴的。
更新:听起来这只是基于子目录名称的一点 Rails 魔法。我认为我在测试应用程序中出错的原因是我只是通过 ruby 解释器运行文件,而不是以某种方式使用 Rails 调用它们。