如何在Ruby中获取方法的完全限定名称?

时间:2012-09-04 00:11:56

标签: ruby-on-rails ruby cucumber

假设我在Ruby的工作区中有一个可用的方法。是否有我可以使用的命令将恢复该方法的完全限定名称?

我正在寻找类似于Matlab中的which函数的东西,它为它给出的任何参数返回一个明确的名称。

我问,因为我在Cucumber中编写了一个需要发送特定GET和POST请求的测试。我的工作区中有getpost方法,但我没有自己导入它们,因此我不知道它们来自何处。我想查看这些方法的文档。为了找到文档,我需要知道它们定义的模块。我正在尝试获取完全限定的名称,以便找出它们来自哪个模块。

1 个答案:

答案 0 :(得分:1)

我明白了。安德鲁马歇尔留下了一条评论,指出了我正确的方向。

首先我安装了pry,将其包含在我的gemfile中并运行bundle install

然后我将binding.pry插入到我的测试代码中。当我进行测试时,这让我陷入了撬开的过程。

在pry会话中,我输入了ls command,其中列出了我上下文中的所有变量。我在get下找到了postRack::Test::Methods#methods

Rack::Test::Methods#methods: _current_session_names  authorize  basic_authorize  build_rack_mock_session  build_rack_test_session  clear_cookies  current_session  delete  digest_authorize  follow_redirect!  get  head  header  last_request  last_response  options  post  put  rack_mock_session  rack_test_session  request  set_cookie  with_session

因此,找出工作空间中方法的FQN的一种方法是运行Pry的ls命令,然后检查输出。