Моя рабочая станция:Установка Ruby Pry дает странные результаты?
$ uname -a
Linux dsktop 3.13.0-77-generiC#121-Ubuntu SMP Wed Jan 20 10:50:42 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
$ ruby -v
ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-linux-gnu]
# (also same behavior with ruby 2.3.1)
Я исследовал это, нашел pry-nav work unexpectedly - но Переустановка на этот вопрос не зафиксировали мою проблему.
Проблемы - Я недавно установил рубин 2.2 и 2.3 общесистемных с использованием Brightbox Облако PPA ресурсов, например:
$ sudo apt-add-repository ppa:brightbox/ruby-ng
$ sudo apt-get update
$ sudo apt-get install ruby2.3 ruby2.3-dev
И затем установил камень Pry и соответствующие зависимости:
$ sudo gem install pry pry-nav pry-byebug
в результате в этом:
$ sudo gem list pry
*** LOCAL GEMS ***
pry (0.10.3)
pry-byebug (3.3.0)
pry-nav (0.2.4)
это также необходимо, чтобы открыть доступ к файлам аЬ это:
$ sudo chmod -R 755 /var/lib/gems
$ sudo chmod 755 /usr/local/bin/pry
$ sudo chmod 755 /usr/local/bin/byebug
я ранее имел монтировку работать на старом РВМ вышке с Ruby 1.9 и 2.1, и все прекрасно работало, но я, видимо, «потерял формулу» для установки Поддеть, или что-то не тонко изменено (?). О, и нет Rails, чтобы усложнять ситуацию, просто простые скрипты Ruby.
Когда я запускаю код сценария, который выглядит следующим образом (и которые прекрасно работали с РВМ вышкой и частными установленными камнями):
require 'pry'
binding.pry
args = ARGV.join(' ')
# Check that only numbers 0..9, arithmetical operators +, -, * and /,
# decimal, comma, space and parentheses() are present in args:
Ожидая, конечно, что Прая-Byebug будет остановом на линии после вызова метода binding.pry. Вместо этого отображается следующая точка останова (?):
From: /var/lib/gems/2.2.0/gems/pry-nav-0.2.4/lib/pry-nav/tracer.rb @ line 21 PryNav::Tracer#run:
12: def run(&block)
13: # For performance, disable any tracers while in the console.
14: # Unfortunately doesn't work in 1.9.2 because of
15: # http://redmine.ruby-lang.org/issues/3921. Works fine in 1.8.7 and 1.9.3.
16: stop unless RUBY_VERSION == '1.9.2'
17:
18: return_value = nil
19: command = catch(:breakout_nav) do # Coordinates with PryNav::Commands
20: return_value = yield
=> 21: {} # Nothing thrown == no navigational command
22: end
23:
24: # Adjust tracer based on command
25: if process_command(command)
26: start
27: else
28: stop if RUBY_VERSION == '1.9.2'
29: if @pry_start_options[:pry_remote] && PryNav.current_remote_server
30: PryNav.current_remote_server.teardown
31: end
32: end
33:
34: return_value
35: end
pry>
Итак, что здесь происходит? Почему Pry разбивается на строку 21 в модуле запуска .../pry-nav/tracer.rb?
Как установить Pry и Byebug, чтобы привести в действие набор Gems?
Я обещаю задокументировать этот ответ, чтобы я не потерял его снова в будущем! ТИА.
ADDED - После публикации этого вопроса, я сделал больше копать и наткнулся на это:
https://plus.google.com/114275173749981855325/posts
, который предположил, что только подглядывать и подсматривать-нав должен быть установлен, но не подглядывать-byebug. Итак, я удалил pry-byebug и ta-da! Pry-отладка снова начала работать правильно.
Приносим извинения за задание столь длительного вопроса, чтобы ответить на него самим таким простым решением. Хотелось бы надеяться, что y'all позволит этому сообщению сохраняться как усовершенствование «как установить Pry» на будущее. Существующая «авторитетная» документация по установке pry является неоднозначной и неточной (или, возможно, просто не затрагивает эту потенциальную проблему).
Спасибо, и снова, извините за беспокойство и замешательство.
Вы можете добавить свой ответ и принять его, но, возможно, подвести итог, как кажется, есть много не очень полезный текст включены. – osman
Сообщение @Lorin ссылается на http://thecuriousrubyprogrammer.blogspot.com/2015/08/ruby-interactive-debugging-with-pry.html – Dorian
Возможный дубликат работы [pry-nav неожиданно] (http: // stackoverflow.com/questions/26860140/pry-nav-work-unexpectedly) – Dorian