Ruby
kakasi

KAKASIとrubyの連携

More than 1 year has 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