Меня недавно приняли на учебный курс по кодированию, и вместе с этим я приступил к некоторым предварительным работам (работа, которую вы выполняете перед тем, как прийти в первый день), которые были мне поручены. Большая часть этой предварительной работы основана на Ruby. У Ruby есть собственная встроенная интерактивная оболочка, называемая IRB (Interactive Ruby Shell) (тогда почему бы не IRS? ... полагаю, слишком много негативного отношения к налогам).

С IRB вы можете перейти в среду терминала, поддерживающую Ruby, и протестировать код. BASH не работает в IRB и наоборот. Совершенно разные вещи. Для базового устранения неполадок или тестирования это нормально. Заходи, делай свое дело, снова выскакивай. Ничего страшного.

Все хорошо, если вам не нужно ничего особенного. Что делать, если у вас есть метод, который не работает должным образом, и вы хотите видеть, что происходит, пока он работает. Вы думаете, что знаете, что это за переменные внутри этого метода, но знаете ли вы? Ты действительно?

Здесь может помочь Pry. Pry - это альтернатива IRB, которая также может дать вам возможность взглянуть на ваш код, открыв его и увидев, что происходит во время его выполнения.

Чтобы начать использовать Pry, вам понадобятся три вещи. 1. Установите монтировку. 2. Добавьте строку «require‘ pry ’» в начало вашего файла Ruby. 3. Добавьте строку «binding.pry» в то место в скрипте, где вы хотите, чтобы она остановилась, и откройте ее в Pry.

Вот пример запуска и взлома базового метода.

Что, если у вас есть более сложный метод? Может быть, что-то с петлей или .each вызовом? Это была проблема, с которой я столкнулся во время подготовки к работе, и сначала не знал, как ее обойти. Проблема заключалась в том, что pry останавливал цикл во время его первой итерации, но мне нужно было исследовать, что происходило на последней итерации. Как это сделать? К счастью, у Pry есть хороший файл справки, в котором я нашел команду «продолжить».

Давайте посмотрим на это в действии. Вот новый метод, выполняющий итерацию по массиву.

Если у меня возникла проблема с использованием put для этого первого элемента в массиве, то все готово. Я вижу, в чем проблема, исправляю и двигаюсь дальше. Но что, если я хочу увидеть проблему со следующим или последним элементом? Мне нужно пройти через каждый цикл. Это можно сделать с помощью Ctrl-D.

Как видите, для переменной «word» теперь установлено значение «what», которое является вторым элементом в массиве. Вы можете продолжать использовать команду «Ctrl-D» для прохождения каждого шага массива. Когда больше нет итераций, Pry просто выйдет из цикла и вернется в окно терминала. Если вы хотите выйти из Pry раньше, вы можете использовать команду «!!!».