捆绑打开disqus_api不访问真正的源代码?

时间:2016-11-09 19:43:34

标签: ruby-on-rails bundler ruby-2.3.1

我正在试用宝石https://github.com/toptal/disqus_api以便在this project上使用,但很难让它接受我的身份验证细节。这可能最终成为一个单独的问题,但是现在我想探索源代码并进行一些手动调试。

麻烦的是,当我bundle open disqus_api时,发生了一些奇怪的事情。它似乎正在查找文件,但是当我对它们进行任何更改时(例如,使用调试器中断),它没有被拾取(并且当它引发错误时应该向下移动一行,行号不变) 。

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

(已编辑添加):

具体而言,它是this file

的第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'`

发生了什么事?

1 个答案:

答案 0 :(得分:1)

使用 byebug gem

  1. 在您的项目 Gemfile.rb

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

    bundle open disqus_api
    
  3. 在宝石上lib/disqus_api.rb需要byebug宝石。

    require 'byebug'
    
  4. debugger电话放在您要调试的线路上