Introduced the ability to pass in an API object instead of a raw body when making...
authorBob Aman <bobaman@google.com>
Thu, 18 Aug 2011 01:42:03 +0000 (21:42 -0400)
committerBob Aman <bobaman@google.com>
Thu, 18 Aug 2011 01:42:24 +0000 (21:42 -0400)
lib/google/api_client/reference.rb

index 97d68670918f050e9ae21a221f8c67775b60b181..5085e0b00cb741d9ea79d988bee45bc8eecdd193 100644 (file)
@@ -13,6 +13,7 @@
 # limitations under the License.
 
 require 'stringio'
+require 'json'
 require 'addressable/uri'
 require 'google/api_client/discovery'
 
@@ -33,6 +34,17 @@ module Google
           self.body = options[:body]
         elsif 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
           self.merged_body = ''
         end