Альтернативой использованию гема ruby-filemagic
является использование команды file
, которая поставляется с большинством Unix-подобных операционных систем.Я считаю, что она использует ту же библиотеку libmagic
под капотом, но вам не нужны файлы разработки, необходимые для компиляции гема ruby-filemagic
.Это полезно, если вы находитесь в среде, где немного работы по установке дополнительных библиотек (например, Heroku).
Согласно man file
, текстовые файлы обычно содержат в своем описании слово text
:
$ file Gemfile
Gemfile: ASCII text
Вы можете запустить команду файла через Ruby, можете захватить вывод:
require "open3"
def text_file?(filename)
file_type, status = Open3.capture2e("file", filename)
status.success? && file_type.include?("text")
end