如果以前的方法==?

时间:2013-11-16 23:58:20

标签: ruby

我想检查运行方法时是否从其他方法调用。

EX:

def method1(foo)
  if # foo previous method == method2
    #code
  elsif # foo previous method == method 3
    #code
  end
end

def method2
  method1(foo)
end

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:4)

是的,您可以使用caller中的Kernel caller[0],如http://www.ruby-doc.org/core-2.0.0/Kernel.html#method-i-caller中所述,但您需要从{{1}}返回的字符串中提取方法名称。 / p>

更新:提取方法名称的小正则表达式显示在https://stackoverflow.com/a/5100339/1008891