Рубиновый эквивалент PHP-метода fopen () - PullRequest
1 голос
/ 14 марта 2010

Я пытаюсь выяснить, есть ли в Ruby эквивалентный метод php fopen (), используемый в настоящее время следующим образом:

$fd = fopen("php://stdin", "r");

это будет использовать переменную ARGV?

В основном я планирую пересылать необработанные сообщения электронной почты с использованием файла .procmailrc, который я уже получил, работая с тестовым файлом php, но в проекте требуется использование Ruby. Поэтому я не уверен на 100%, будет ли работать переменная ARGV или мне нужно каким-то образом перехватить поток электронной почты каким-либо другим способом.

Любая помощь будет принята с благодарностью. Спасибо:)

Ответы [ 2 ]

2 голосов
/ 14 марта 2010

ARGV и (стандартный) входной поток - это две разные вещи. ARGV содержит параметры, переданные в исполняемый файл, например someapp a b c, где a, b и являются параметрами. stdin - это дескриптор файла. Обычно у вас есть три стандартных потока . stdin только для чтения, stdout и stderr только для записи.

В Ruby вы можете использовать предопределенные константы STDIN , STDOUT и STDERR для доступа к потокам по умолчанию. Также есть переменные $ stdin, $ stdout, $ stderr, которые инициализируются теми же значениями, что и STDIN, STDOOUT и STERR, но могут быть переназначены другие значения.

0 голосов
/ 14 марта 2010

Вы, вероятно, имели в виду переменную ARGF, посмотрите:

Лучшие практики с использованием STDIN в Ruby?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...