pry не попадает в REPL в точке останова

Pry не бросает меня в свой REPL в точке останова в следующей функции.

def print_lines(data)
  puts "here's the input I got:"

  data.each_with_index do |line, index|
    url_regex = /(?:<a href=")(https?:\/{2}www.\w+[.](com|org|net)((\/\w+)*([.]\w+)?))(?:">)/

    binding.pry

    url = line.scan(url_regex)[0]

    puts "Line #{index}: #{url}"

  end

end

Вместо этого он производит следующий вывод:

From: /Users/hsb/work/hr-solutions/detect-html-links/lib/script.rb @ line 13 Object#print_lines:

4: def print_lines(data)
...
=> 13:     url = line.scan(url_regex)[0]
...
19: end
(END)

Когда я набираю q, pry отображает один и тот же вывод для каждой оставшейся итерации цикла. Любая идея, почему я не получаю доступ к REPL для исследования переменных в области видимости?


person Hayden    schedule 25.11.2017    source источник
comment
Я использовал STDIN для чтения данных. Кажется, есть какая-то проблема с pry и STDIN. Читать здесь остановка при вызове из скрипта ruby, который читается из stdin">stackoverflow.com/questions/32333962/   -  person Hayden    schedule 25.11.2017


Ответы (1)


Похоже, эта проблема со STDIN хорошо задокументирована! У меня сработало это решение: http://rocket-science.ru/hacking/2015/09/02/pry-and-stdin

person Hayden    schedule 25.11.2017
comment
Речь идет не о «проблемах подглядывания», а о том, что подглядывание достаточно умно, чтобы понять, что стандартный ввод теперь не является чем-то, что он может использовать для интерактивной работы. - person Aleksei Matiushkin; 25.11.2017