task :blah do
puts ENV['foo']
end
但是,最近看到新的 API 使用中括號的用法 (也不新了,從 0.8.2 開始支援),覺得挺有趣的:
desc "passing 1 parameter to rake task"
task :blah1, [:a] do |t,args|
puts args.inspect
end
執行 rake blah1[9] 會輸出 {:a=>"9"},注意到傳進來的變數值是字串。
desc "passing 2 parameters to rake task"
task :blah2, [:a, :b] do |t,args|
puts args.inspect
end
執行 rake blah2[foo,bar] 會輸出 {:a=>"foo", :b=>"bar"}
如果要有預設值,可以這樣做:
desc "passing parameters with default values to rake task"
task :blah3, [:a, :b] do |t,args|
args.with_defaults(:a => 'foobar', :b => 1)
puts args.inspect
end
此時執行 rake blah3 則是輸出 {:a=>"foobar", :b=>1}