Почему 'get' не работает в моем скрипте Ruby, когда я запускаю его из TextMate?

При запуске следующего ruby-скрипта:

puts gets.inspect

На терминале мне предлагается ввести, а затем отображается вывод inspect, но если я запускаю тот же скрипт изнутри TextMate с помощью ярлыка CMD+R, он просто выводит nil, как будто нет метода gets.

Почему это? Из того, что я прочитал, TextMate должен отображать диалоговое окно ввода, когда сценарий запрашивает ввод из STDIN, но в данном случае этого не происходит.


person joshuapoehls    schedule 19.01.2011    source источник
comment
У меня тоже не работает (то есть gets в Textmate). Похоже, что эта функция раньше исчезала из Textmate, а затем появлялась в обновлении. Это может быть просто взломано… вы, вероятно, можете найти его во фрагменте Bundle.   -  person coreyward    schedule 19.01.2011


Ответы (2)


См. эту запись в блоге; предположительно ты на Снежном Барсе?

Судя по комментариям, некоторые пользователи говорят, что этот файл работал у них на Snow Leopard. Согласно ответу @dmarkow, скопируйте этот файл в:
/Applications/TextMate.app/Contents/SharedSupport/Support/lib/
Возможно, вы захотите сохранить копию файла, так как обновления TextMate могут заменить его.

person Phrogz    schedule 19.01.2011
comment
Отличная ссылка! Я подозревал, что это так. Может быть, когда выйдет Textmate 2… мы все еще будем живы. - person coreyward; 19.01.2011
comment
Спасибо! Добавление этого файла к пути, указанному dmarkow, устранило проблему для меня. - person joshuapoehls; 19.01.2011
comment
Есть ли что-нибудь более свежее по этому поводу? Например, в Йосемити? - person Hassan; 17.09.2014

В частности, вам нужно скопировать файл tm_interactive_input.dylib, на который ссылается Phrogz, по следующему пути:

/Applications/TextMate.app/Contents/SharedSupport/Support/lib/tm_interactive_input.dylib

Имейте в виду, что любые обновления TextMate могут перезаписать или удалить этот файл.

person Dylan Markow    schedule 19.01.2011
comment
Спасибо! Я бы не знал, куда поместить этот файл, если бы вы не опубликовали это. - person joshuapoehls; 19.01.2011