guess4r (仮)

guess4r は、libguess を Ruby から扱うことを目的にしたライブラリ(のつもり)です。

ビルド・インストール

ruby >= 1.9.X と libguess が必要です。

$ ruby extconf.rb
$ make
$ sudo make install

基本手順はこうなります。各自の環境にあわせて変更してください。

使い方

confused_string.encoding                    # => #<Encoding:ASCII-8BIT>
confused_string.guess_encoding              # => #<Encoding:Windows-31J>
confused_string.guess.encoding              # => #<Encoding:Windows-31J>
confused_string.guess!                      # => "\x{8356}\x{8374}\x{8367}JIS\x{95B6}\x{8E9A}\x{97F1}"
confused_string.encoding                    # => #<Encoding:Windows-31J>
guess_open("unknown") {|f| f.read.encoding} # => #<Encoding:EUC-JP>

guess_open は判別のために open -> close -> 再度 open という処理を行いますので注意してください。

ライセンス

COPYING, COPYING.ja, BSDL, BSDL.ja, ZLIBL, ZLIBL.ja のいずれかのファイルに従ってください。 前半の 3 ファイルは ruby のものをそのまま拝借しただけです。 要約すると、2-clause BSD ライセンスか zlib/libpng ライセンスか Ruby の独自ライセンス部分 またはそれぞれの和訳、のいずれかお好きなものをお選びください、ということです。 なお和訳については、 OSI承認オープンソースライセンス 日本語参考訳 を参考にさせていただきました。

その他

開発動機

libguess の ruby バインディングとしては libguess-ruby がすでにありますが、

  • ライセンスに "Ruby's" とあり、最終更新日の 2007-04-19 時点のものか最新のものでもよいのかわからない。 最終更新日時点と解釈すると、BSDL ではなく GPL と Ruby の独自条項のデュアルライセンスとなり、個人的にちょっと嫌。
  • Ruby 1.9 以降は M17N が入ったのだから、せっかくならそれを使いたい。

という私のわがままにより、guess4r をでっち上げることにしました。