1

我正在尝试查找 Origen 导入命令未加载先前导出的模型的问题。我在导出的 rb 文件中看到有一个模块和一个名为 self.extended 的方法。导入命令正在加载模块,因此我可以手动执行 .extended(dut),但我不必显式运行它。跟踪导入代码,我看不到调用扩展方法的位置。我的问题是:设计。模块导入应该如何工作?应该在哪里调用该扩展方法?

4

1 回答 1

0

是的,应用程序代码不应该直接调用扩展方法。

也许这个问题是由这个 PR 的变化引入的?- https://github.com/Origen-SDK/origen/pull/221

对于您的问题,这是调用扩展的地方 - https://github.com/Origen-SDK/origen/blob/master/lib/origen/model/exporter.rb#L80

但是,它不是直接调用的,extended 是 Ruby 提供的一个钩子,每当对象扩展模块时都会自动调用它 - https://www.sitepoint.com/rubys-important-hook-methods/

于 2018-02-26T09:14:44.673 回答