Просто нужно было использовать ".each_line" вместо ".each".

я есть следующий крюк предварительного толчка. В идеале я хотел бы, чтобы он просматривал все файлы, которые отправляются в мой репозиторий, и отклонял бы push, если содержимое какого-либо из файлов не соответствует регулярному выражению, определенному вверху. Я получаю следующую ошибку при попытке перебрать файлы: «неопределенный метод` each 'for »»: String (NoMethodError) ». «.each» не работает, так как команда git возвращает строку, содержащую измененные файлы.

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

У кого-нибудь есть представление о том, как можно перебрать возвращенные файлы?

Спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос