10/23 追記
twitterから流れてくる方がいるようなので、もっとちゃんとしたのを作ってキチンとメンテされてる方がいるので、そちらの方をオススメしておきます。(なんか変な日本語だ。。)
http://github.com/miyucy/handlersocket
http://github.com/winebarrel/ruby-handlersocket
例のHandlerSocket pluginのRubyバインディングを作りました。
軽い気持ちで作り始めたら一日経ってしまった。RubyKaigiだというのに…
APIの仕様はPerlとほぼ同じです。なので使う場合は本家のドキュメントを参考にしてください。
コンストラクタの仕様だけ若干異なるので、一応にサンプルを書いておきます。
require 'handlersocket' hs = HandlerSocket.new('127.0.0.1', 9999) # 引数は以下の通り(括弧内はデフォルト値) # host(localhost), port(9998), timeout(600), listen_backlog(256) hs.open_index(3, 'employees', 'departments', 'PRIMARY', 'dept_no,dept_name'); res = hs.execute_single(3, '>=', ['d004'], 100, 0); # => [0, "d005", "Development", "d006", "Quality Management", "d007", "Sales", "d008", "Research", "d009", "Customer Service"] hs.execute_insert(3, ['d999', 'XYZ']); hs.execute_delete(3, '=', ['d007'], 1, 0); hs.close