以下の URL を見て、人気のある ruby gem が、XML を返す Restful エンドポイントを ruby オブジェクトにマップする方法を確認しています。
https://github.com/tapajos/highrise/blob/master/lib/highrise/base.rb
彼らは ActiveResource::Base を使用しており、魔法のように舞台裏でこれを行っているようです。
したがって、次のような URI からある種の xml が返されます。
<person>
<id type="integer">1</id>
<first-name>John</first-name>
<last-name>Doe</last-name>
<title>Stand-in</title>
<background>A popular guy for random data</background>
<linkedin_url>http://us.linkedin.com/in/john-doe</linkedin_url>
<company-id type="integer">5</company-id>
<company-name>Doe Inc.</company-name>
<created-at type="datetime">2007-02-27T03:11:52Z</created-at>
<updated-at type="datetime">2007-03-10T15:11:52Z</updated-at>
<visible-to>Everyone</visible-to>
..
</person>
ActiveResource を使用して、これを ruby オブジェクトにマップするか、ハッシュを返すだけですか?
返されるオブジェクトの定義はどこにありますか?
タグのリソース コードはこちら: https://github.com/tapajos/highrise/blob/master/lib/highrise/tag.rb
module Highrise
class Tag < Base
def ==(object)
(object.instance_of?(self.class) && object.id == self.id && object.name == self.name)
end
end
end
また、パフォーマンスが大きな懸念事項である場合、引き続きアクティブリソースを使用するか、xml を解析するより高速な方法がありますか?