Pry интерпретирует команду с ведущим .
как системную команду и передает ее оболочке. Однако это не позволяет мне выполнять блоки кода со строками, которые начинаются с .
, что очень часто встречается в моем коде.
В IRB отлично работает что-то вроде ниже:
2.2.3 :001 > begin
2.2.3 :002 > "hello world"
2.2.3 :003?> .split(" ")
2.2.3 :004?> .map(&:upcase)
2.2.3 :005?> end
=> ["HELLO", "WORLD"]
Однако в Прай:
[6] pry(#<MailFetcherService>)> begin
[6] pry(#<MailFetcherService>)* "hello world"
[6] pry(#<MailFetcherService>)* .split(" ")
sh: -c: line 0: syntax error near unexpected token `" "'
sh: -c: line 0: `split(" ")'
Error: there was a problem executing system command: split(" ")
Есть ли способ обойти это? Я согласен с любым из нижеперечисленных:
- Интерпретируйте
.
как системную команду, только если перед ней нет начальных пробелов. - Изменение на какой-то другой неясный разделитель вместо
.
для системной команды - В крайнем случае: системные команды полностью отключены — я нечасто использую эту функцию.