如何在Ruby中获取方法的完全限定名称?
假设我在Ruby的工作区中有一个可用的方法。 是否有我可以使用的命令将恢复该方法的完全限定名称?
我正在寻找类似于Matlab中哪个函数的东西,它为它给出的任何参数返回一个明确的名称。
我问,因为我在Cucumber中编写了一个需要发送特定GET和POST请求的测试。 我在我的工作区中都有get
和post
方法,但我没有自己导入它们,所以我不知道它们来自哪里。 我想查看这些方法的文档。 为了找到文档,我需要知道它们所定义的模块。我正在尝试获取完全限定的名称,以便找出它们来自哪个模块。
我想到了。 安德鲁马歇尔留下了一条评论,指出了我正确的方向。
首先我安装了pry,将它包含在我的gemfile中并运行bundle install
。
然后我将binding.pry
插入到我的测试代码中。 当我运行我的测试时,这让我陷入了撬开的困境。
在pry会话中,我输入了ls
命令 ,它列出了我上下文中的所有变量。 我在Rack::Test::Methods#methods
下找到了get
和post
。
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
命令,然后检查输出。