There is an English version of this page: “How to insert the encoding: UTF-8 directive automatically in Ruby 1.9 files”

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

23 сентября 2011, обновлена 09 апреля 2012

В процессе переноса проекта на 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 перед коммитом.



Два комментария. Напиши еще один
  1. Acd41b5fc27242d19c244185ba6732f2 # 28 июня 2012 Иван написал:

    1. 777894ea5153122bfa6b83f5bbf23622 # 28 июня 2012 Леонид Шевцов (автор) написал:

      Но ведь на шелл-скрипте гораздо элегантнее.

(нужна разметка?)

  • **жирный**
  • > цитата

отменить