dRubyは専用のプロトコルを使って、リモートアクセス用のクライアントとサーバを構築しますが、NetworkFacadeを使うことで、HTTPを使ってRubyのオブジェクトのやりとりをすることが出来るようになります。
dRubyを使ったことがある人なら、ほとんど同じように使うことができます。簡単なサンプルが、プロジェクトのページに記載されているので、ぜひ参考にしてみてください。
こちらでも簡単なオブジェクトは試しましたが、まだ出たばかりなので、エラー処理などが正しく行われているかに不安が残ります。
同時に既存のXML/RPCやRESTをオブジェクトにバインドすることもできます。
Wikipediaを呼び出すのは下記の様なコードになります。
#!/usr/bin/env ruby
require 'rubygems'
require 'network-facade'
class Wikipedia < NetworkFacade::REST::Client 'http://wikipedia.simpleapi.net/'
mapping :keyword, '/api'
end
wikipedia = Wikipedia.new
wikipedia.keyword(:keyword => 'Ruby on Rails').root.elements.each("*/body") do |e|
puts e
end
ファイアウォールなどの都合で、HTTPを使って外部のRubyサーバと手軽に通信したいときにどうぞ。
