Новичок, о синтаксисе задачи Rake - PullRequest
3 голосов
/ 01 ноября 2011

In Rake task определение, например:

desc 'SOME description'
  task :some_task => :environment do
    # DO SOMETHING
  end

Что означает :some_task in task :some_task => :environment?

Это имя метода , которое будет вызываться в части DO SOMETHING?

Может ли :some_task быть произвольной строкой, описывающей задачу?

Ответы [ 2 ]

4 голосов
/ 01 ноября 2011

На самом деле, когда вы создаете задачу rake, :some_task - это имя задачи, которую вы вызываете.

Например, в этом случае вы будете вызывать rake some_task

Вы также можете определить пространства имен для своих задач:

namespace :my_tasks do
  desc "My first task"
  task :first_task => :environment do
    # DO SOMETHING
  end
end

И тогда вы будете вызывать rake my_tasks:first_task в своей консоли.

Надеюсь, это поможет вам,

Редактировать:

Как объяснил Хольгер Просто , :environment выполняет задачу "среда" и, если вы находитесь на рельсах, загружает среду.Это может занять много времени, но также поможет вам, если ваши задачи работают с базой данных.

1 голос
/ 01 ноября 2011

В вашем примере вы определяете задачу с именем some_task, которую можно вызвать, вызвав rake some_task в командной строке.

Это будет зависеть от задачи environment, которая будет выполнена перед вашимновый some_task.В rails задача environment устанавливает среду rails (загрузка библиотек, подготовка соединения с базой данных, ...), что довольно дорого и поэтому необязательно.

...