Guardfile の例から:
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から来ていますか?
Guardfile の例から:
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から来ていますか?
m[1]
正規表現一致の最初のキャプチャ グループになります。そして正規表現から、それはファイルの名前です(拡張子なし)。
これは実際には README で説明されています。
guard :rspec do
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
end
この例では、正規表現キャプチャ グループ (.+) を使用して、lib フォルダー内のファイル変更を spec フォルダー内のテスト ケースに変換します。正規表現の監視パターンは Regexp#match で照合されます。
mは正規表現からの一致です。詳細については、 http://www.ruby-doc.org/core-1.9.3/Regexp.html#method-i-matchを参照 してください。
基本的に、m [1]は、一致したファイルの名前を取得し、対応する仕様を実行するために使用されます。