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

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.

主站蜘蛛池模板: 梁河县| 周口市| 凤庆县| 都江堰市| 乐平市| 西安市| 英吉沙县| 万安县| 含山县| 郧西县| 电白县| 英德市| 廉江市| 咸宁市| 万盛区| 改则县| 水城县| 雷州市| 扎赉特旗| 滦平县| 炉霍县| 喀什市| 泸水县| 义马市| 正镶白旗| 屯昌县| 同仁县| 舒兰市| 囊谦县| 蕉岭县| 台湾省| 霍山县| 灌阳县| 庆安县| 凌云县| 牟定县| 区。| 清水河县| 天全县| 灌云县| 炎陵县|