Иногда я хочу поэкспериментировать с использованием IRB с некоторыми объектами, но, возможно, не так просто воспроизвести нужное мне состояние и контекст. Предположим, вы хотите поиграть с синтаксисом выражения внутри RSPec. Поэтому я хочу реализовать что-то вроде этого:
- внутри кода приложения ruby, которое я сейчас разрабатываю, я вызываю функцию
eval_server
- создает сокет сервера и прослушивает соединения
- Я запускаю какой-то инструмент, похожий на IRB (назовем его
eval_client
- он должен быть реализован)
- создает клиентский сокет и подключается к
eval_server
- Я набираю какое-то рубиновое выражение в
eval_client
eval_client
отправляет его на eval_server
eval_server
оценивает выражение в контексте объекта, к которому оно было вызвано, сериализует результат или исключение (например, с использованием .inspect
) и отправляет его обратно в eval_client
eval_client
отображает результат
...
вопрос : если подобный инструмент уже реализован? Если нет, есть ли какие-нибудь драгоценные камни, которые могут помочь мне реализовать это?
Я знаю, это может выглядеть как отладчик. Но я бы предпочел не запускать сервер rails с отладчиком. Я просто хочу добавить один, как в коде и IRB в контексте этой строки при следующем запросе.
обновление:
так по ответу:
eval_client
= pry-remote
eval_server
= binding.remote_pry
https://github.com/mon-ouie/pry-remote