lib/couchrest/core/database.rb in jchris-couchrest-0.9.4 vs lib/couchrest/core/database.rb in jchris-couchrest-0.9.5

- old
+ new

@@ -62,20 +62,26 @@ if doc['_attachments'] doc['_attachments'] = encode_attachments(doc['_attachments']) end if doc['_id'] slug = CGI.escape(doc['_id']) + CouchRest.put "#{@root}/#{slug}", doc else - slug = doc['_id'] = @server.next_uuid + begin + slug = doc['_id'] = @server.next_uuid + CouchRest.put "#{@root}/#{slug}", doc + rescue #old version of couchdb + CouchRest.post @root, doc + end end - CouchRest.put "#{@root}/#{slug}", doc end def bulk_save docs ids, noids = docs.partition{|d|d['_id']} uuid_count = [noids.length, @server.uuid_batch_count].max noids.each do |doc| - doc['_id'] = @server.next_uuid(uuid_count) + nextid = @server.next_uuid(uuid_count) rescue nil + doc['_id'] = nextid if nextid end CouchRest.post "#{@root}/_bulk_docs", {:docs => docs} end def delete doc