2016-11-09 35 views
0

我正在嘗試使用this project上的寶石https://github.com/toptal/disqus_api,但努力讓它接受我的驗證詳細信息。這可能最終會成爲一個單獨的問題,但現在我想探索源代碼並進行一些手動調試。捆綁打開disqus_api不訪問真正的源代碼?

麻煩的是,奇怪的事發生在我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 block in perform_request'`

發生了什麼事?

回答

1

使用byebug寶石

  1. 您的項目Gemfile.rb

    group :development do 
        gem 'byebug' 
    end 
    
  2. 在終端打開disqus_api寶石

    bundle open disqus_api 
    
  3. 在寶石的lib/disqus_api.rb需要byebug寶石。

    require 'byebug' 
    
  4. 將您debugger呼叫要調試

+0

這就是我的意思,試圖調試中斷(編輯OP澄清)行 - 這不是跳閘調試器。 – Arepo

+0

你確定你已經完成了所有步驟,特別是第3步嗎? – rebagliatte

+0

確定。這正是我想要做的第一件事(因爲我之前把require和debugger語句放在了行上,錯誤信息的行號已經改變了)。所以出於某種原因,我猜這不是正在運行的代碼。 – Arepo