Грабли и Тор служат разным целям.
Rake - это общий инструмент для создания сценариев, который зависит от проекта.Другими словами, вы помещаете свой rakefile в папку вашего проекта и в систему управления исходным кодом вашего проекта, и вы можете создавать, создавать и выполнять другие задачи автоматизации, которые характерны для вашего проекта в этом rakefile.Rake требует для запуска rakefile.
Thor - это инструмент создания сценариев командной строки общего назначения, который позволяет очень легко повторно использовать сценарии во многих проектах, а также выполнять настройку проекта и т. Д., Как вы предлагаете.Thor позволяет вам «установить» исполняемый скрипт, который вы можете вызвать из любой точки вашей системы, аналогично вызову команд «ruby
», «gem
» или «rake
».Однако сценарии Thor больше подходят для универсальной автоматизации приложений, поскольку сценарий Thor не зависит от файла, который находится в папке вашего проекта.Скрипт Thor - это весь скрипт, упакованный и установленный для повторного использования в любом месте.
Исходя из ваших заявленных потребностей, вам лучше использовать Thor, потому что вы сможете установить свой скрипт в одном месте и иметь егоработать в любом месте вашей системы.Вы не будете привязаны к тому, где находится файл Rake или что-то в этом роде.
Кстати, Rails 3 использует Thor практически для всего, что не относится к конкретному проекту.У вас все еще есть файл Rake, и вы по-прежнему запускаете такие вещи, как "rake db:migrate
" или "rake test:units
".Thor используется для таких вещей, как "rails new ...
", "rails server
" и "rails generate ...
". Использование Thor и Rake в Rails 3 является прекрасной иллюстрацией того, где лучше всего подходит каждый из этих инструментов.