在自定义Rake任务示例中:
desc "I am short, but comprehensive description for my cool task"
task task_name: [:prerequisite_task, :another_task_we_depend_on] do
# All your magic here
# Any valid Ruby code is allowed
end
task_name
后的冒号后缀是什么意思?通常,任务名称是一个符号 - 如果您有先决条件,这与此有何不同?
答案 0 :(得分:3)
literal {task_name: [:symbol]}
是{:task_name => [:symbol]}
的简写符号,这个符号是在Ruby 1.9中引入的:
{task_name: [:symbol]}
# => {:task_name=>[:symbol]}
您的示例实际上相当于:
task :task_name => [:prerequisite_task, :another_task_we_depend_on] do
...
如果您没有先决条件,则必须使用通常的符号:
task :task_name do
...
Ruby Style Guide建议更喜欢较新的" JSON样式",表示法。
答案 1 :(得分:0)
语法something: value
表示与:something => value
完全相同。它只是更具可读性。