【发布时间】:2012-10-12 06:55:40
【问题描述】:
以下代码可以正常工作:
class Float
def round
self.format.to_f
end
def format
"%.2f" % self
end
end
但是,对 Float 这样的类进行monkeypatch 似乎是一种不好的做法,因为其他人也在做同样的事情,这会导致问题。
然后我安装了 simplecov,问题就开始了:simplecov monkeypatches 相同的方法。
所以我创建了一个模块并将其混合到 Float 中。
module MyModule
def round
self.format.to_f
end
def format
"%.2f" % self
end
end
我猜这也有效。但问题是 simplecov 似乎覆盖了上面的混入方法。
那么,扩展内置类以使其不与其他人的代码冲突的正确方法是什么?
Ruby 1.9.3
【问题讨论】:
-
IMO,你不应该在
Float课堂上这样做,无论能够做到100.76572324.round感觉多么好。特别是,format是一个演示问题,不应在Float上定义。 See also
标签: ruby monkeypatching ruby-1.9.3