I am writing a program in Ruby which will search for strings in text files within a directory - similar to Grep.
I don\'t want it to attempt to search in binary files bu
libmagic is a library which detects filetypes. For this solution I assume, that all mimetype's which start with text/
represent text files. Eveything else is a binary file. This assumption is not correct for all mime types (eg. application/x-latex, application/json), but libmagic detect's these as text/plain.
require "filemagic"
def binary?(filename)
begin
fm= FileMagic.new(FileMagic::MAGIC_MIME)
!(fm.file(filename)=~ /^text\//)
ensure
fm.close
end
end