当前位置: 首页 > 工具软件 > Rake > 使用案例 >

rake 传递参数

慕容铭
2023-12-01

傳統作法是用 rake blah foo=1 這樣的指令,於是就可以透過環境變數拿到:


  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}


 类似资料: