2012-10-18 44 views
0

Guardfile examplesGuardfile中m [1]的意義是什麼?

watch(%r{^app/(.+)\.rb}) { |m| "spec/#{m[1]}_spec.rb" } 
watch(%r{^lib/(.+)\.rb}) { |m| "spec/lib/#{m[1]}_spec.rb" } 

什麼的m值代表什麼?它似乎是一個長度爲2的數組,存儲完整路徑和相對路徑...

m如何生成?它來自Guard還是Ruby?

回答

2

m[1]將成爲正則表達式匹配中的第一個捕獲組。和從正則表達式,即該文件的名稱

這自述實際上說明(不包括擴展名。):

guard :rspec do 
    watch(%r{^lib/(.+)\.rb$})  { |m| "spec/lib/#{m[1]}_spec.rb" } 
end 

在這個例子中的正則表達式捕獲組(+ )用於將lib文件夾中的文件更改轉換爲spec文件夾中的測試用例。正則表達式手錶模式與Regexp#匹配匹配。