通过覆盖向方法添加功能,但仍调用原始方法

Rob*_*bin 1 ruby

可能重复:
当猴子修补方法时,你可以从新实现调用重写方法吗?

所以我希望通过覆盖它来简单地向方法添加一些条件检查,但是我希望调用原始方法.如何在红宝石中做到这一点?

即.

方法存在

def fakeMethod(cmd)
  puts "#{cmd}"
end
Run Code Online (Sandbox Code Playgroud)

我想补充一下

if (cmd) == "bla"
  puts "caught cmd"
else
  fakeMethod(cmd)
end
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

chr*_*ais 8

alias :old_fake_method :fake_method
def fake_method(cmd)
  if (cmd) == "bla"
    puts "caught cmd"
  else
    old_fake_method(cmd)
  end
end
Run Code Online (Sandbox Code Playgroud)