Rubyでファイルタイプを判定する

入力ファイルが圧縮されているなら解凍して、planeテキストなら何もしないという処理をしたい。

File#ftype では詳細な判定には使えない。

2.3.1 :061 > File.ftype('foo.gz')
 => "file" 

https://github.com/blackwinter/ruby-filemagic

インストール

ruby bindingなので事前にOSにあったライブラリをインストール必要がある。

Debian/Ubuntu:: +libmagic-dev+
Fedora/SuSE::   +file-devel+
Gentoo::        +sys-libs/libmagic+
OS X::          <tt>brew install libmagic</tt>
 $ gem install ruby-filemagic
2.3.1 :063 > FileMagic.new.file('foo.gz', true)
 => "gzip" 

http://stackoverflow.com/questions/51572/determine-file-type-in-ruby