Ruby on Rails

Расстановка директивы encoding: UTF-8 для Ruby 1.9

revised 9 April 2012

В процессе переноса проекта на Ruby 1.9.3, как всегда, возникла проблема кодировки файлов, а именно того, что кодировку UTF-8 (как и любую другую, отличную от ASCII), нужно указывать явно.

В процессе переноса проекта на Ruby 1.9.3, как всегда, возникла проблема кодировки файлов, а именно того, что кодировку UTF-8 (как и любую другую, отличную от ASCII), нужно указывать явно.

Оказалось, это довольно легко сделать автоматически, с помощью консольного кунг-фу:

find . -iname '*.rb' -o -iname '*.rake' | \
  xargs file -I | \
  grep utf-8 | \
  sed -E 's/\:.+$//g' | \
  xargs -I {} sh -c "echo \"# encoding: utf-8\\n\" | cat - {} > /tmp/utf8comment.tmp && mv /tmp/utf8comment.tmp {}"

Вот и все, пять минут и требование выполнено.

Естественно, я не даю никаких гарантий, так что проверь git diff перед коммитом.