官术网_书友最值得收藏!

Defining custom rake tasks

So far, we defined only one task named default. Rake allows you to define your custom tasks with any name. The common form of the custom rake task definition is passing a task name to the task method and a block as a second argument. The block defines some action and usually contains some Ruby code. The rake task might have an optional description, which is defined with the desc method. This method accepts a text for the description of the task. The following code snippet is an example of defining a custom rake task:

desc 'Restart web server'
task :restart do
  touch '~/restart.txt'
end

This is an example of a possible rake task to restart Passenger (this is a module for the Nginx web server, which works with the Rails applications). We name the task restart. To run this task, just pass its name as the second argument to the rake command as shown in the following line of code:

$ rake restart

If you have a lot of tasks, it's handy to enclose them to the named spaces, as shown in the following code snippet:

namespace :server do
  desc 'Restart web server'
  task :restart do
    touch './tmp/restart.txt'
  end
end

You can also run the task in the command line using the following command:

$ rake server:restart

Actually, the task method accepts more arguments. However, they are related to other topics that are explained further along in the book in Chapter 2, Working with Files, and Chapter 3, Working with Rules.

主站蜘蛛池模板: 凌源市| 富阳市| 内江市| 崇义县| 平果县| 台江县| 施甸县| 息烽县| 三门峡市| 洛阳市| 浮山县| 绵阳市| 淳安县| 社旗县| 甘谷县| 翁牛特旗| 崇文区| 万安县| 中江县| 昭通市| 甘谷县| 台北市| 鞍山市| 大余县| 新邵县| 镇远县| 百色市| 浏阳市| 丹棱县| 长沙县| 揭西县| 托里县| 莲花县| 麻城市| 邵阳县| 金堂县| 镇康县| 深水埗区| 论坛| 定结县| 榆树市|