0

我正在尝试将 gem https://github.com/toptal/disqus_api用于此项目,但很难让它接受我的身份验证详细信息。这可能最终成为一个单独的问题,但现在我想探索源代码并进行一些手动调试。

问题是,当我bundle open disqus_api. 它似乎正在查找文件,但是当我对它们进行任何更改(例如,使用调试器中断)时,它并没有被拾取(并且当它引发错误,因此应该向下移动一行时,行号保持不变) .

也就是说,我可能没有完全走错地方的一个迹象是,当我暂时删除 gem 的整个 lib 目录时,虽然它仍然加载核心 DisqusApi 类,但该类上的 pry 'show-source' 方法现在输出Error: Couldn't locate a definition for DisqusApi!.

(编辑添加):

具体来说,就是这个文件的第 70 行

所以在我编辑它之后,我们有:

def perform_request #line 68
  require 'byebug' #69
  byebug #70
  yield.tap do |response| #71
    raise InvalidApiRequestError.new(response) if response['code'] != 0 #72
  end
end

但它会犯这样的错误: DisqusApi::InvalidApiRequestError: {"code"=>5, "response"=>"Invalid API key"} from /Users/sashacooper/.rvm/gems/ruby-2.3.1/gems/disqus_api-0.0.5/lib/disqus_api/api.rb:70:in在 perform_request 中阻塞'`

这是怎么回事?

4

1 回答 1

1

使用byebug gem

  1. 在你项目的Gemfile.rb

    group :development do
      gem 'byebug'
    end
    
  2. 在终端上打开 disqus_api gem

    bundle open disqus_api
    
  3. 在 gem 的lib/disqus_api.rb 上需要 byebug gem。

    require 'byebug'
    
  4. 将您的debugger呼叫放在您要调试的线路上

于 2016-11-09T20:45:08.820 回答