Intro

Относительно недавно искал способ в одну строчку запустить веб-сервер в текущей директории.

На просторах Stack Overflow нашел примерно такую команду:

ruby -run -e httpd -- -p 9090 [DIR]

Что же это за загадочная опция -run и почему ее нет в мануале?

Опция -run

Разумеется, никакая это не опция. Точнее, опция, но не run. Обратите внимание на то, что перед ней стоит одно тире, а не два.

На самом деле, это опция -r с аргументом un. В свою очередь un - это файлик в стандартной библиотеке, который определяет несколько полезных функций, которые удобно использовать в однострочниках.

Одна из них - httpd которая просто запускает WebBrick, используя параметры из ARGV (в данном случае - порт и директория).

Доступность

Очевидно, это весьма старый файл, т.к. я нашел документацию к нему для версии 1.8.6, которая на данный момент является чем-то вроде питона 2 в мире руби.

Так что можно использовать без боязни.

А что еще есть?

Копирую из документации:

ruby -run -e cp -- [OPTION] SOURCE DEST
ruby -run -e ln -- [OPTION] TARGET LINK_NAME
ruby -run -e mv -- [OPTION] SOURCE DEST
ruby -run -e rm -- [OPTION] FILE
ruby -run -e mkdir -- [OPTION] DIRS
ruby -run -e rmdir -- [OPTION] DIRS
ruby -run -e install -- [OPTION] SOURCE DEST
ruby -run -e chmod -- [OPTION] OCTAL-MODE FILE
ruby -run -e touch -- [OPTION] FILE
ruby -run -e help [COMMAND]

Заключение

Полагаю, что использовать un вне однострочников вида ruby -run -e не имеет смысла, т.к. каждый из методов, определенных там, использует ARGV. Но полезно иметь на заметку, что ruby умеет это. Возможно, в Windows это будет работать точно так же

Кстати, добавил себе в баш такую команду:

alias start-webrick='ruby -run -e httpd -- -p 9090'

Очень удобно.