watch(%r{^app/(.+)\.rb}) { |m| "spec/#{m[1]}_spec.rb" }
watch(%r{^lib/(.+)\.rb}) { |m| "spec/lib/#{m[1]}_spec.rb" }
m
의 값은 무엇을 상징 하는가? 그것은 길이 2의 배열 인 것으로 보이며 완전한 경로와 상대 경로를 저장합니다 ...
m
은 어떻게 생성됩니까? 경비병이나 루비에게서 오는 건가요?
watch(%r{^app/(.+)\.rb}) { |m| "spec/#{m[1]}_spec.rb" }
watch(%r{^lib/(.+)\.rb}) { |m| "spec/lib/#{m[1]}_spec.rb" }
m
의 값은 무엇을 상징 하는가? 그것은 길이 2의 배열 인 것으로 보이며 완전한 경로와 상대 경로를 저장합니다 ...
m
은 어떻게 생성됩니까? 경비병이나 루비에게서 오는 건가요?
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을 참조하십시오.
Basiscally m [1]은 대응 된 spec을 실행하기 위해 일치 된 파일의 이름을 가져 오는 데 사용됩니다.