RubyでContent-Type(MIME TYPE)を調べる方法
色々なgemが用意されてるみたいだけどmacrubyで使用しようと思ったらちょっとはまったので書いておく。
試したgem
上3つはこのサイトで試されてたので試してみました。
最後の奴は上3つじゃmacrubyじゃうまくいかんくて色々探して出会った奴。
mime-types
こいつがメジャーっぽい?
こいつが使えればよかったんだけど、どうやらmacrubyのバグがあるようでrubyでは問題なくてもmacrubyじゃ使えんかった。
shared-mime-info
ruby1.8.7だと動いたけど、ruby1.9.3だと動かんかった。当然macrubyでも動かず。
ramaze
最新のgemにmimeがない!?
mimemagic
救世主。素晴らしい!
ruby1.9.3でもmacrubyでもOK。とりあえずコイツを使うことにする。
使い方は簡単。
require 'mimemagic'
path = "mime.rb"
# 拡張子から判定する
puts MimeMagic.by_extension('html')
# パスから判定する
puts MimeMagic.by_path(path)
# ファイルの中身から判定する
puts MimeMagic.by_magic(File.open(path))