Hiroyuki Sato
hiroy****@gmail*****
2015年 5月 14日 (木) 21:09:22 JST
佐藤です。 諸般の事情で、groonga-clientをjrubyで使いたいと思っています。 残念ながら、groonga-comand-parserはjruby未対応のyajl-rubyに依存しています。 代わりにjson-streamをjrubyの時だけ使ったらどうだろうということを考えました。 おそらくjson-streamよりyajl-rubyの方がパースが速いためです だいぶ汚いのですが、yajlをjson-streamに置き換えて動くようにしてみました。 rake testもとおりました。 課題は次の二つです。 ・gemspecで、crubyの時は、yajl-rubyを、jrubyの時はjson-steamを入れるようにしたい。 単純にパースする時は、JSON.parseを利用する。エンコードはto_jsonを使う。 ・crubyの時は、yajlを、jrubyの時はjson-streamを使うようなパーサクラスに変更したい。 gemスペックはRUBY_PLATFORM =~ /java/ とかやれば上手くいくと思ったのですがうまくできませんでした ということを下手な英語で書きました。どなたか良い案がございましたらアドバイスをください。 https://github.com/groonga/groonga-command-parser/issues/1 余談ですが、json-streamで複数のJSONに対応する方法が良くわからなくて著者の方に質問中です。 https://github.com/dgraham/json-stream/issues/3 こう書けばいいよという方法がありましたらお知らせください。 -- Hiroyuki Sato