ruby - 如何为 gem 创建模块?

标签 ruby module rubygems monkeypatching

我正在创建一个图形库 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/

相关文章:

node.js - Node js elementtree 需要 get 找不到模块 'sax'

ruby-on-rails - Prawn 设置字体颜色

rubysdl 与 ruby​​-sdl-ffi

rubygems - 即使安装了 gem,RVM bundle 安装仍缺少 Gem 错误

ruby-on-rails - Rails 和 Mongoid::将字符串转换为数组

ruby-on-rails - Resque 找不到 ffmpeg

powershell - 启动Powershell控制台的方式有何不同?

google-app-engine - App Engine Python 模块和 channel 服务

Ruby:将嵌套哈希转换为对象?

ruby - RubyCocoa 应用程序中的 NULL?