我正在尝试对put(puts
,p
)的所有迭代进行回调并发出警告。
例如:
puts "test" -> def callback() -> "test"
我怎样才能做到这一点?
你可以这样做,但一定要想这样做,因为无论何时,它都会应用于整个Ruby运行时。如果你和其他人一起工作,一定要得到他们的支持。
要执行此操作,请将原始方法别名为其他方法名。然后重新定义方法以进行自己的处理,我认为这将以调用原始方法结束。例如,对于puts
:
#!/usr/bin/env ruby
module Kernel
alias original_puts puts
def puts(object)
# Do my own processing here, e.g.
original_puts "This is coming from my overrided puts:"
original_puts(object)
end
end
puts 'hi'
=begin
Outputs:
This is coming from my overrided puts:
hi
=end