我正在创建一个图形库 gem。
创建 gem 时,确保与其他 gem 或其他代码不发生冲突似乎很重要。
例如,从我的 gem 代码中调用扩展 (monkeypatch) 方法。
class Array
def sum
inject(0.0) { |result, el| result + el }
end
所以,解决方案似乎是一个模块。
如何创建一个模块并保证别人下载使用gem时不与其他代码冲突?
最佳答案
你就这么做吧。创建一个模块并使用它:
module MyLibrary
class MyGraphicsClass
# ...
end
end
这无济于事有助于防止您的猴子补丁踩到其他人的脚趾。没有办法阻止您对数组的修改可能破坏其他人的代码。解决方案是不这样做。修补标准库的基本部分是一种可怕的做法,但却是确保没有人愿意碰你的 gem 的好方法。
关于ruby - 如何为 gem 创建模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13113404/