rails rake 指南

來源:互聯網
上載者:User

 

今天研究了下rake,還有rake在rails中運用,做了點總結,大家可以看看

 

rake的介紹

Rake支援任務建立,任務依賴關係追蹤,以及檔案編譯時間識別。最後一個功能對Ruby程式員應該用不到,但如果你同時還是一個C程式員,那麼你可以嘗試使用Rake來替代Make。

 

rake如何工作

 

1.給個簡單的例子

假設使用Rake來管理這3個任務,那麼我首先需要建立一個Rakefile檔案,添加以下內容

 

# -*- encoding : utf-8 -*-

task :purchaseAlcohol do

  puts "買瓶酒"

end

 

task :mixDrink do

  puts "買點下酒菜"

end

 

task :getSmashed do

  puts "喝醉了"

end

 

2.如何組織任務的依賴關係

有些任務在執行前必須先執行其它任務,就是所說的依賴關係。下面的例子就可以說明rake如何處理依賴關係

 

# -*- encoding : utf-8 -*-

desc "purchasAlcohol"

task :purchaseAlcohol do

  puts "買瓶酒"

end

 

desc "mixDrink"

task :mixDrink => :purchaseAlcohol do

  puts "買點下酒菜"

end

 

desc "getSmashed"

task :getSmashed => :mixDrink do

  puts "喝醉了"

end

 

3.rake的命名空間

用命名空間把你的任務都整合起來,進行分類,看下面的例子

 

# -*- encoding : utf-8 -*-

 

namespace :aaron do

  desc "purchasAlcohol"

  task :purchaseAlcohol do

    puts "買瓶酒"

  end

 

  desc "mixDrink"

  task :mixDrink => :purchaseAlcohol do

    puts "買點下酒菜"

  end

 

  desc "getSmashed"

  task :getSmashed => :mixDrink do

    puts "喝醉了"

  end

end

 

命名空間允許你將你的任務進行分類,你可以在一個Rakefile內建立多個命名空間,現在輸入rake -T你會得到如下輸出

 

rake aaron:getSmashed                  # getSmashed

rake aaron:mixDrink                    # mixDrink

rake aaron:purchaseAlcohol             # purchasAlcohol

 

4.有用的任務

以上舉的例子都及其簡單,通常我們建rake任務是為了完成複雜的功能

下面再給個簡單的例子,但比較實用

此例子來自網上

 

desc "Create blank directories if they don't already exist"
task(:create_directories) do
  # The folders I need to create
  shared_folders = ["icons","images","groups"]
    for folder in shared_folders
    # Check to see if it exists
    if File.exists?(folder)
      puts "#{folder} exists"
    else
      puts "#{folder} doesn't exist so we're creating"
      Dir.mkdir "#{folder}"
    end
  end
end

 

5.rake在rails中使用

在lib/tasks/檔案夾中添加rake檔案,例如aaron.rake,在裡面添加你所需要完成的任務

rake -T 可以查看你的rake任務

當然,rake任務還可以訪問rails model

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.