如何重新定义ruby中的类方法?Ruby - 如何重新定义类方法?
举例说,我想重新定义方法File.basename("C:\abc.txt")
我该怎么做?
这不起作用:
class File
alias_method :old_bn, :basename
def basename(*args)
puts "herro wolrd!"
old_bn(*args)
end
end
我得到: undefined method 'basename' for class 'File' (NameError)
顺便说一句,我使用JRuby
只是'class << Foo'有什么问题? – 2011-03-22 11:03:34
个人喜好。如果我使用monkey-patch,我倾向于在我的'core_ext'中搜索'class File',并希望找到所有修改。同样,如果新手开始编写代码并且还没有看到这个习语,那么google'class << self'会更容易。 – 2011-03-22 12:33:49