ruby - Ruby1.9的调用方式

标签 ruby ruby-1.9

类似于__callee__,是否有返回调用方法的东西?我意识到有一个 caller 我可以从中删除调用者方法的名称,但我很好奇是否有一种标准方法可以返回调用方法的名称而没有任何其他信息.

最佳答案

MRI 中没有这样的特征。但也有一些替代方案。

如果你碰巧使用 Rubinius,你可以这样做而不是解析 caller:

Rubinius::VM.backtrace(1, false).first.name
#=> :calling_method_name

您也可以use a gem to parse caller 的结果。它应该适用于任何 Ruby > 1.9。

The answer to this SO question介绍如何自己进行一些简单的解析。

最后,似乎是 work in progress在 Ruby 2.0 中加入这样的功能,尽管相关票证已经有一段时间没有更新了。

关于ruby - Ruby1.9的调用方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9755902/

相关文章:

ruby - 如何查看对象类中的所有方法/属性

ruby - 无法通过 gems 安装 ruby​​ 串口

mysql - 在为 RoR 应用程序在 MySQL 和 Amazon 的 SimpleDB 之间做出决定时,您需要考虑什么?

ruby - Capistrano:使用参数调用任务(内部)

ruby - 检测编码

ruby - 为什么 Ruby 1.9 允许覆盖! !=!〜?

ruby - Enumerable::each_with_index 现在可以选择在 Ruby 1.9 中接受一个参数。它的意义和/或用例是什么?

ruby-on-rails - Rails 4 + Devise - 更新用户帐户时不允许的参数

ruby - 如何将方法动态定义为私有(private)?

ruby-on-rails - Rails ActiveRecord::StatementInvalid: PG::Error: ERROR: 缺少表的 FROM 子句条目