MIMEタイプから、拡張子を作りたい・・・
一般的には、この逆の、拡張子から、MIME-TYPEを取得することはよくやる。HTTPのヘッダとかさ。
でも、その逆がしたいんだ
>> MIME::Types.type_for( "a.xml" )[0].to_s => "application/xml" >> MIME::Types.type_for( "a.xml" )[1].to_s => "text/xml"
この逆に、タイプから拡張子を作りたい。
mime-type にはその、一覧が入っていて手軽に使える
mime-types-2.4.3/data/mime-types.json というファイルがあって、
このJSONをparseして、アレコレして使えば手軽にできそうなんだけど、面倒なのでした。
メソッドを使う。
MIME::Types['text/plain'][0].extensions[0] #=> "txt"
MIME::Types['text/html'][0].extensions[0..3] #=> ["html", "htm", "htmlx", "shtml"]
まぁ、一般的には、先頭を選んでおけばいいだろうけど。
js なんかは一個しかないから楽ですね。
MIME::Types['text/javascript'][0].extensions[0] #=> "js"
xml なんかも殆ど無いですね
MIME::Types['text/xml'][0].extensions[0] # => xml MIME::Types['application/xml'][0].extensions[0] # => xml
参考資料
mine-types : gem パッケージ
https://rubygems.org/gems/mime-types
そのうち、 mine-type.json を取り出したもの