2013-01-04 14 views
27

Używam balustrady uruchomić mój serwer szynach, mój problem jest, że nie może uzyskać dostępu do rEPL kiedy dodać binding.pry ja po prostubalustrady nie zapewniając rEPL dla 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>)> 

Nie REPL, jak korzystać z podnośnika z szynami ochronnymi?

Mój plik Gemfile wygląda to

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

My Guardfile:

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

Co masz na myśli? Nie możesz nic wpisać ani co? – kyrylo

+1

Mam na myśli, że wydaje się załadować REPL i po prostu kontynuować wykonywanie programów. To nie daje ci szansy na interakcję z REPL. – Martinffx

+0

Czy są jakieś wieści na ten temat? Byłoby miło, gdyby to działało. –

Odpowiedz

3

Próbuję coś podobnego, a także nie może zmusić go do pracy. Wydaje się, że odczyt ze stdin nie blokuje, więc Pry nie blokuje. Każdy odczyt ze STDIN wraca od razu.

rspec -X console.rb 

pliku następuje:

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

mam skonfigurować środowisko szynach z Guard i Spork i uważam, że wiązanie-pry działa dziwnie ze straży. Jeśli wstawię binding.pry do kodu, a następnie strażnik zrestartuje moje testy, nie będzie interaktywnego debugowania. Ale jeśli wyjdę i znów zacznę się strzec, to działa i prawidłowo przechodzi w tryb interaktywny.

Jednak ... jeśli następnie usunę linię binding.pry, strażnik ponownie uruchomi testy zgodnie z oczekiwaniami, ale złamie w miejscu, w którym znajdowała się linia wiążąca, mimo że już jej tam nie ma.

Wygląda na to, że musisz ponownie uruchomić straż przy każdym wstawianiu lub usuwaniu wiązania podważającego.

Drażniące, ale wciąż lepsze niż brak dostępu do podważenia podczas testów.