ruby ,rake個人筆記
Rake 是 Ruby 領域的 Make,是個獨立的 Ruby 工具,目的是代替 Unix 中的 make。Rake 根據 Rakefile 和
.rake 檔案構建任務。Rails 使用 Rake 實現常見的管理任務,尤其是較為複雜的任務。
rake about 任務輸出以下資訊:Ruby、RubyGems、Rails 的版本號,Rails 使用的元件,程式所在的資料夾,Rails
當前所處的環境名,程式使用的資料庫介面卡,資料庫模式版本號。如果想向他人需求幫助,檢查安全補丁是否影響程式,或者需要檢視現有 Rails
程式的資訊,可以使用這個任務。
rake assets:precompile 任務會預編譯 app/assets 資料夾中的靜態資原始檔。rake assets:clean
任務會把編譯好的靜態資原始檔刪除。
Rake 名稱空間 db: 中最常用的任務是 migrate 和 create,這兩個任務會嘗試執行所有遷移相關的 Rake
任務(up,down,redo,reset)。rake db:version 在排查問題時很有用,會輸出資料庫的當前版本。
Current version: 20140820034433
db:charset 檢索當前環境下資料庫的字元設定
db:collation 檢索當前環境下資料庫的校對
db:create 用config\database.yml中的定義建立當前 RAILS_ENV 專案環境下的資料庫
db:create:all 用config\database.yml中的定義建立所有資料庫
db:drop 刪除當前 RAILS_ENV專案環境中的資料庫
db:drop:all 刪除所有在 config\database.yml中定義的資料庫
db:reset 從db\schema.rb中為當前環境重建資料庫(先刪後建).
db:rollback 回滾(清華出版社一本SQLSERVER書的名詞[很奇怪為什麼不直接用滾回])資料庫到前一個版本. 指定回滾到哪一步要用
STEP=n 引數
db:version 檢索當前模式下的版本
備份資料庫
rake db:backup:create 根據database.yml的資訊備份資料庫
rake db:backup:destroy 預設刪除一天前的備份資料
rake db:backup:rebuild 預設恢復最新的備份資料
doc: 名稱空間中的任務可以生成程式的文件,Rails API 文件和 Rails
指南。生成的文件可以隨意分割,減少程式的大小,適合在嵌入式平臺使用。
rake doc:app 在 doc/app 資料夾中生成程式的文件;
rake doc:guides 在 doc/guides 資料夾中生成 Rails 指南;
rake doc:rails 在 doc/api 資料夾中生成 Rails API 文件;
rake routes 會列出程式中定義的所有路由,可為解決路由問題提供幫助,還可以讓你對程式中的所有 URL 有個整體瞭解。
rake time:zones:all 列出 Rails 能理解的所有時區
rake stats輸出你應用程式的有用統計,顯示千行程式碼數和測試比例等
以坐火車為例:
分:1.買票2.進站3.乘車
在rakefile檔案中寫這麼一個task
task :action1 do
puts "買票"
end
task :action2 do
puts "進站"
end
task :action3 do
puts "乘車"
end
rake action1
買票
rake action2
進站
rake action3
乘車
自己編寫的rake任務儲存在rails root/lib/tasks中,副檔名:.rake
如果在任務中要和程式的模型互動,例如查詢資料庫等,可用environment任務,載入程式程式碼。
multitask: copy_files => [copy_src, :copy_doc, :copy_bin] do
puts "..............."
end
copy_files是一個普通那個任務,它的動作在所有依賴任務完成後才會執行,但copy_src, copy_doc,
copy_bin這三個任務會並行執行,他們之間並無影響,如果這三個任務還依賴於其他共同的任務copy_all,則當copy_all執行完後才執行這三個任務
如果有release任務需要版本號作引數:rake release[0.8.2]
這樣引數release就會傳遞給release任務,多個引數可以以逗號隔開,列表形式傳遞給任務:rake name[jon,doe]
rake任務及其引數是以單個命令列引數傳遞給rake的,即中間不允許有空格。如果任務名和引數名包含空格則需使用引號:
rake ''name [billy bob,jon]"
rake release[0.8.2]可以寫成rake release RELEASE_VERSION = 0.8.2
必須宣告接收引數的任務才能接收引數
task:name,[:first_name,:last_name]
[:first_name,:last_name]為name任務需要接收的引數
利用task塊的第二個引數可以在動作中訪問傳遞過來的引數
task:name,[:first_name, :last_name] do |t,args|
puts "first name is #{args.first_name}"
end
塊中的t總是繫結為當前任務物件,第二個引數args就是傳遞過來的引數物件
為引數指定預設值
task :name,[:first_name, :last_name] do |t,args|
args.with_defaults(:first_name => ''jon", :last_name => "jan"
end
名稱空間
當rake檔案很多時,當你有很多工的時候,你需要關注它們的命名衝突問題,名稱空間(namespace)就是一個自然的解決方案。你可以為上面的三個任務定義一個叫做home的名稱空間。
namespace :home do
task :action1 do rake
home:action1
puts "買票"
end rake home:action2
task :action2 => :action1 do
puts "進站" rake home:action3
end
task :action3 => :action3 do
puts "乘車"
end
end
desc 可以使用ruby標準註釋#,但如果希使用rake - T來顯示任務的描述,就需要使用desc命令描述任務
相關文章
- 個人筆記筆記
- ruby on rails筆記和理解AI筆記
- 個人筆記-vuex筆記Vue
- 《Effective-Ruby》讀書筆記筆記
- 前端安全——個人筆記前端筆記
- [2017 ICPC Nanning] Rake It InNaN
- [讀書筆記] Ruby 中的 Block 和 Iterator筆記BloC
- 《搭建個人Leanote雲筆記本》筆記
- JavaFx基礎操作【個人筆記】Java筆記
- Ruby 札記 - 淺嘗 Ruby 特性
- Ruby 札記 - 淺談和配置 Ruby
- 計算機網路個人筆記計算機網路筆記
- php反序列化個人筆記PHP筆記
- 中國剩餘定理(個人筆記)筆記
- 《聯邦學習》——個人筆記(二)聯邦學習筆記
- Ruby 札記 - 縱覽優雅的 Ruby
- GOT & PLT 易於理解的個人筆記Go筆記
- 《每個人的戰爭》讀書筆記筆記
- 開通個人學習隨筆記錄筆記
- Electron+GithubAPI打造個人筆記應用GithubAPI筆記
- @Cacheable關於快取的個人筆記快取筆記
- vant upload 圖片壓縮(個人筆記)筆記
- 前端進階-個人筆記-小知識前端筆記
- Vue生命週期函式.個人筆記Vue函式筆記
- 【機器學習】支援向量機(個人筆記)機器學習筆記
- WWDC18 What’s New in LLVM 個人筆記LVM筆記
- 個人React / Koa 專案上線——健身筆記React筆記
- Ruby 札記 - Ruby 集合家族之雜湊(Hash)
- Ruby 札記 - Ruby 集合家族之陣列(Array)陣列
- 《深入理解Java虛擬機器》個人筆記Java虛擬機筆記
- js字串與陣列常用方法速查.個人筆記JS字串陣列筆記
- Ruby 札記 - 閒理字串字串
- 《人類簡史》筆記筆記
- [個人筆記] 關於linux的常見問題合集筆記Linux
- Linux 學習筆記(二):搭建個人Git伺服器Linux筆記Git伺服器
- 微信支付 WEB APP 配置資訊流程(個人筆記)WebAPP筆記
- 個人記錄
- [個人筆記]HCIP-Routing & Switching-IENP/H12-222筆記
- koa2實戰個人筆記(二)——模板渲染引擎ejs筆記JS