Introduced the ability to pass in an API object instead of a raw body when making requests.

This commit is contained in:
Bob Aman 2011-08-17 21:42:03 -04:00
parent 9a2217a6bb
commit 5c4323b11c
1 changed files with 12 additions and 0 deletions

View File

@ -13,6 +13,7 @@
# limitations under the License. # limitations under the License.
require 'stringio' require 'stringio'
require 'json'
require 'addressable/uri' require 'addressable/uri'
require 'google/api_client/discovery' require 'google/api_client/discovery'
@ -33,6 +34,17 @@ module Google
self.body = options[:body] self.body = options[:body]
elsif options[:merged_body] elsif options[:merged_body]
self.merged_body = options[:merged_body] self.merged_body = options[:merged_body]
elsif options[:body_object]
if options[:body_object].respond_to?(:to_json)
serialized_body = options[:body_object].to_json
elsif options[:body_object].respond_to?(:to_hash)
serialized_body = JSON.generate(options[:body_object].to_hash)
else
raise TypeError,
'Could not convert body object to JSON.' +
'Must respond to :to_json or :to_hash.'
end
self.merged_body = serialized_body
else else
self.merged_body = '' self.merged_body = ''
end end