不能用的时候才觉得这个东西真好用,项目比较老,1.8.7 的 define_singleton_method 貌似是 1.9 才有的
理论上可行。不过 Object#define_singleton_method 是 C 的实现,所以你可能需要 ffi。
但,为什么不直接升级到 2.0
对啊,ruby 在这方面做的很好啊,又没有 break change
define_singleton_method 最终也是调用 define_method,找到 singleton class 就 OK 吧。。。
1.8.7 到 1.9,满满的 break changes。
哈哈,没用过 1.8,我是从 1.9.3 开始接触 ruby 的
当年就是 1.8 到 1.9 升级 break 了太多东西以至于后来 Ruby 都不敢随便乱来了,这才有了 1.9 到 2.3 的平滑升级路径。
最大的 break 在于整个字符串系统重新搞了,从 byte[] 转成了 char[],于是所有的对字符串内元素的读写操作全都要重写……
长见识了,哈哈
没用过 1.8,这样可以吗?
class Object def define_singleton_method(name, &block) singleton_class.send(:define_method, name, block) end end