Escrever um gancho de pré-envio no Git para grep todos os arquivos para regex deseja rejeitar o envio se não for encontrado

Eu tenho o seguinte gancho pré-push. Idealmente, gostaria que ele passasse por todos os arquivos que estão sendo enviados para o meu repositório e rejeite o envio se o conteúdo de qualquer um dos arquivos não corresponder à expressão regular definida na parte superior. Estou recebendo o seguinte erro ao tentar percorrer os arquivos: "método indefinido` each 'for "": String (NoMethodError) ". '.each' não funciona, pois o comando git está retornando uma string contendo os arquivos alterados.

#!/usr/bin/env ruby

regex = "\\s*GO\\s*$"

localRef, remoteRef = ARGV
#puts localRef
#puts remoteRef

input = $stdin.readlines[0]
localSha = input.split(" ")[1]
remoteSha = input.split(" ")[3]
#puts localSha 
#puts remoteSha

range = "#{remoteSha}..#{localSha}"

#folderPath = `git rev-parse --show-toplevel`
#puts folderPath 

`git diff --name-only --diff-filter=ACMR #{range}`.each do |file|
  #puts file
  content = File.read(file)
  unless content.match(regex)
    puts "#{file} must end with 'GO' keyword"
    exit 1
  end
end

exit 0 

Alguém tem uma idéia de como eu posso percorrer os arquivos retornados?

obrigado

questionAnswers(0)

yourAnswerToTheQuestion