2013-01-04 17 views
27

के लिए आरईपीएल प्रदान नहीं मैं अपने रेल सर्वर को चलाने के लिए गार्ड-रेल का उपयोग कर रहा हूँ, मेरी समस्या है जब मैं binding.pry जोड़ने मैं सिर्फ मिल रहा आरईपीएल तक नहीं पहुँच सकता हैगार्ड-रेल binding.pry

From: /home/martinr/code/app/controllers/tools_controller.rb @ line 2 ToolsController#index: 

    2: def index 
=> 3: binding.pry 
    4: @end_date = Date.today.to_s 
    5: @start_date = Date.today.months_ago(3).to_s 
    7: end 

[1] pry(#<ToolsController>)> 

कोई आरईपीएल, मैं गार्ड रेल के साथ प्रिये का उपयोग कैसे करूं?

मेरे Gemfile फ़ाइल इस

group :development, :test do 
    gem 'pry-rails' # for better console debugging 
    gem 'pry-debugger' 
    gem 'rb-inotify' 
    gem 'sqlite3' 
end 

मेरे Guardfile की तरह दिखता है:

guard 'rails', :debugger => true do 
    watch('Gemfile.lock') 
    watch(%r{^(config|lib)/.*}) 
end 
+0

आपका क्या मतलब है? आप कुछ भी टाइप नहीं कर सकते हैं या क्या? – kyrylo

+1

मेरा मतलब है कि यह आरईपीएल लोड करना प्रतीत होता है और केवल प्रोग्राम निष्पादन के साथ जारी रहता है। यह आपको आरईपीएल के साथ बातचीत करने का मौका नहीं देता है। – Martinffx

+0

क्या इस पर कोई खबर है? यह काम करना वास्तव में अच्छा होगा। –

उत्तर

3

मैं यह काम करने के लिए नहीं मिल सकता एक समान बात कोशिश कर रहा हूँ, और भी। मुद्दा यह है कि stdin से पढ़ना ब्लॉक नहीं करता है, इसलिए प्राइ ब्लॉक नहीं करता है। एसटीडीआईएन से कोई भी पढ़ा तुरंत लौटता है।

rspec -X console.rb 

फ़ाइल इस प्रकार है:

require 'spec_helper' 

describe 'console' do 
    it 'opens!' do 
    Pry.config.input = STDIN 
    Pry.config.output = STDOUT 
    puts STDIN.closed? # returns false 
    binding.pry # returns right away, does not block 
    gets # returns right way, does not block 
    end 
end 
4

मैं रक्षक और Spork के साथ अपने रेल वातावरण की स्थापना की है और मुझे लगता है कि बाध्यकारी-जिज्ञासा गार्ड के साथ अजीब कार्य करता है। अगर मैं कोड में binding.pry डालता हूं और फिर गार्ड को मेरे परीक्षणों को पुनरारंभ करता है, तो कोई इंटरैक्टिव डिबगिंग नहीं होती है। लेकिन अगर मैं बाहर निकलता हूं और फिर से गार्ड शुरू करता हूं, तो यह काम कर रहा है और इंटरैक्टिव मोड में सही ढंग से टूट जाता है।

हालांकि ... अगर मैं बाध्यकारी.pry लाइन को हटा देता हूं, तो गार्ड परीक्षणों को फिर से चालू कर देगा, जैसा कि माना जाता है, लेकिन जहां बाध्यकारी रेखा होती थी, तब भी टूट जाएगी, भले ही यह अब और नहीं है।

लगता है कि जब भी आप प्रिये बाध्यकारी डालते हैं या हटाते हैं तो आपको गार्ड को पुनरारंभ करना होगा।

परेशान लेकिन अभी भी बेहतर है कि आपके परीक्षणों में प्रिये तक पहुंच न हो।