lib/parse/query.rb in parse-ruby-client-0.1.15 vs lib/parse/query.rb in parse-ruby-client-0.2.0

- old
+ new

@@ -123,10 +123,20 @@ query = { "where" => CGI.escape(where_as_json.to_json) } set_order(query) [:count, :limit, :skip, :include].each {|a| merge_attribute(a, query)} Parse.client.logger.info{"Parse query for #{uri} #{CGI.unescape(query.inspect)}"} response = Parse.client.request uri, :get, nil, query - Parse.parse_json class_name, response + + if response.is_a?(Hash) && response.has_key?(Protocol::KEY_RESULTS) && response[Protocol::KEY_RESULTS].is_a?(Array) + parsed_results = response[Protocol::KEY_RESULTS].map{|o| Parse.parse_json(class_name, o)} + if response.keys.size == 1 + parsed_results + else + response.dup.merge(Protocol::KEY_RESULTS => parsed_results) + end + else + raise ParseError.new("query response not a Hash with #{Protocol::KEY_RESULTS} key: #{response.class} #{response.inspect}") + end end private def set_order(query)