2012-10-18 1 views
0

:Guardfile에서 m [1]의 의미는 무엇입니까? <a href="https://github.com/guard/guard/wiki/Guardfile-examples" rel="nofollow">Guardfile examples</a>에서

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

m의 값은 무엇을 상징 하는가? 그것은 길이 2의 배열 인 것으로 보이며 완전한 경로와 상대 경로를 저장합니다 ...

m은 어떻게 생성됩니까? 경비병이나 루비에게서 오는 건가요?

답변

2

m[1]은 정규식 일치의 첫 번째 캡처 그룹이됩니다. 그리고 정규 표현식에서, 그 파일의 이름입니다

이 실제로 README에 설명되어 있습니다 (확장자없이.).

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

에게 정규 표현식 캡처 그룹 (+)는 lib 폴더의 파일 변경을 spec 폴더의 테스트 케이스로 변환하는 데 사용됩니다. 정규 표현식 패턴은 Regexp # match와 일치합니다.