HTTPartyリクエストの結果をオブジェクトとして処理できるかどうか疑問に思います。
現在、結果の値にアクセスするために文字列キーを使用しています:result["imageurl"]
またはresult["address"]["street"]
JavaScriptを使用している場合は、次を使用できます。result.imageurl
またはresult.address.street
hashiegemMash
のクラスを使用します。
tweet = Hashie::Mash.new(
HTTParty.get("http://api.twitter.com/1/statuses/public_timeline.json").first
)
tweet.user.screen_name
私は数日前にこのヘルパークラスを書きました:
class ObjectifiedHash
def initialize hash
@data = hash.inject({}) do |data, (key,value)|
value = ObjectifiedHash.new value if value.kind_of? Hash
data[key.to_s] = value
data
end
end
def method_missing key
if @data.key? key.to_s
@data[key.to_s]
else
nil
end
end
end
使用例:
ojson = ObjectifiedHash.new(HTTParty.get('http://api.dribbble.com/players/simplebits'))
ojson.shots_counts # => 150