¿Cómo redefino un método de clase en ruby?Ruby - ¿Cómo redefinir los métodos de clase?
dicen, por ejemplo, quiero redefinir el método File.basename("C:\abc.txt")
¿Cómo lo hago?
Esto no funciona:
class File
alias_method :old_bn, :basename
def basename(*args)
puts "herro wolrd!"
old_bn(*args)
end
end
me sale : undefined method 'basename' for class 'File' (NameError)
por cierto, estoy usando JRuby
¿Qué pasa con solo 'clase << Foo'? –
Preferencia personal. Si echo un parche, tiendo a buscar 'class File' en mi' core_ext' y quiero encontrar todas las modificaciones allí. También es más fácil googlear 'class << self' y averiguar qué significa eso si las personas nuevas comienzan a trabajar en ese código y aún no lo han visto. –