Преимущества использования Ruby FileUtils вместо команд Bash? - PullRequest
5 голосов
/ 11 сентября 2010

Каковы преимущества использования методов FileUtils http://ruby -doc.org / core / classes / FileUtils.html перед эквивалентными командами Bash?

Ответы [ 6 ]

7 голосов
/ 11 сентября 2010

Помимо того факта, что вам не нужно беспокоиться о том, чтобы на вашей целевой платформе были установлены конкретные инструменты, которые вы используете, и сверх проблемы правильного цитирования странностей оболочки (особенно проблематично, если вы нацелены как Windows, так и Unix-подобные - независимо от Cygwin, GNUWin32 и т. д.), если вы используете FileUtils в Ruby, у вас небольшие издержки при вызове функции Ruby, в то время как при использовании внешних утилит вы испытываете довольно значительные издержки на запуск внешний процесс каждый "вызов".

6 голосов
/ 11 сентября 2010

Методы FileUtils работают в Windows.

2 голосов
/ 11 сентября 2010

Их проще вызывать из сценариев Ruby, поскольку они принимают объекты Ruby в качестве аргументов.Это означает, что вам не нужно обрабатывать побег и то, что не каждый раз, когда вы звоните им.

1 голос
/ 11 сентября 2010
  • Работает на нескольких платформах
  • Не создает новый процесс для выдачи команды (поэтому он потребляет меньше ресурсов)
1 голос
/ 11 сентября 2010

когда вы отправляете вещи в оболочку, вы добавляете зависимость от этих приложений.FileUtils - чистый ruby, поэтому он работает (и работает одинаково, более или менее) везде, где работает ruby.

0 голосов
/ 11 сентября 2010

Я бы не сказал, что использование FileUtils в Ruby не дает никаких преимуществ, поскольку вы можете использовать их везде, где у вас есть Ruby (особенно, если ваша задача - в веб-разработке).Но это не значит, что вы не можете использовать эти инструменты оболочки и на других платформах.Да, вы можете писать свои скрипты в * nix shell, а также запускать их практически без изменений, скажем, в Windows, используя cygwin или GNU win32 (и другие).С точки зрения преимуществ Ruby FileUtils по сравнению с оболочками, он минимален, поскольку то, что вы можете делать с FileUtils, можно делать и с оболочками.

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