Edited at

KAKASIとrubyの連携

More than 3 years have passed since last update.

漢字からかな変換が容易にできるKAKASI。インストールから実際にRubyで使用するまでをまとめた。


GemfileからKAKASIのインストールができない

KAKASIとrubyの連携ライブラリである、

https://github.com/knu/kakasi_ffi

を使い、以下のように、単純にGemfileでKAKASIをインストールできるかと思いきや、bundle installでエラーが出てできない。

# A sample Gemfile

source "https://rubygems.org"

# gem "rails"
gem "kakasi"

(※issuesにも上がっているが、エラーメッセージが変更されたのみで、クローズされた笑 https://github.com/knu/kakasi_ffi/issues/2

そこで、まずはソースからインストール(apt-getなどが好ましいが、apt-getだとrubyから呼び出せないようである)。


KAKASI本体のインストール

http://kakasi.namazu.org/index.html.ja

上記のインストールの項に従って、インストール。

gzip -dc kakasi-2.3.5.tar.gz | tar xvf -

cd kakasi-2.3.5
./configure
make
su
make install

※最新版のKAKASIは2.3.6


KAKASIとrubyを連携

続いて任意のディレクトリで https://github.com/eitoball/kakasi-ruby.git のソースをダウンロード。

git clone https://github.com/eitoball/kakasi-ruby.git

cd kakasi-ruby
ruby extconf.rb
make

Ruby2.0以降を使う場合はここでエラーがでるので、ソースを変更する。

mv kakasi.c kakasi.c.org # 元ソースバックアップのため

cat kakasi.c.org | sed "s/RSTRING\(([^)]*)\)->len/RSTRING_LEN\\1/" | sed "s/RSTRING\(([^)]*)\)->ptr/RSTRING_PTR\\1/" > kakasi.c
make

漢字からひらがな変換を確認できるよう、test.rbを修正。


test.rb

require 'kakasi'

puts Kakasi.kakasi('-JK -HK', 'Rubyから案山子を呼び出せます。')

結果は下記コマンドで。Rubyカラカカシヲヨビダセマス。

ruby test.rb