1

我正在尝试从 Ruby 应用程序中提取一些代码到 gem 中以进行代码重用。为了安全地做到这一点,我想通过创建一个虚拟“栅栏”来确保项目中没有对其他代码的引用。“栅栏”内的唯一代码应该是现有的 gem 和我试图 gemify 的代码。

我正在考虑通过一些魔术猴子补丁来实现这一点,该补丁挂钩到方法调用逻辑并随后记录每个方法调用。

这是我要实现的目标的视觉表示:

在此处输入图像描述

一些假设:

  1. 要gemified的代码远小于项目中的总代码
  2. 项目代码可以修改,但仍需要生产质量

我已经使用此处推荐的解决方案进行了调查:

如何在 ruby​​ 中拦截方法调用?

但是,此解决方案会拦截接收方的方法调用,并且还需要在项目中的每个类中扩展代码(好吧,除了要 gemify 的类中)。

理想情况下,我最多想扩展所有要被宝石化的类。

4

0 回答 0