Escribir un gancho previo a la inserción en Git para grep todos los archivos de expresiones regulares desea rechazar la inserción si no se encuentra la expresión regular

Tengo el siguiente gancho de pre-empuje. Idealmente, me gustaría que revise todos los archivos que se envían a mi repositorio y rechace la inserción si el contenido de alguno de los archivos no coincide con la expresión regular definida en la parte superior. Recibo el siguiente error cuando intento recorrer los archivos: "método indefinido` each 'para "": String (NoMethodError) ". '.each' no funciona ya que el comando git está devolviendo una cadena que contiene los archivos modificados.

#!/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 

¿Alguien tiene una idea de cómo puedo recorrer los archivos devueltos?

Gracias

Respuestas a la pregunta(1)

Su respuesta a la pregunta