diff --git a/lib/couchrest/core/document.rb b/lib/couchrest/core/document.rb index cd66285..4b79206 100644 --- a/lib/couchrest/core/document.rb +++ b/lib/couchrest/core/document.rb @@ -65,7 +65,7 @@ module CouchRest # Returns the CouchDB uri for the document def uri(append_rev = false) return nil if new? - couch_uri = "http://#{database.root}/#{CGI.escape(id)}" + couch_uri = "#{database.root}/#{CGI.escape(id)}" if append_rev == true couch_uri << "?rev=#{rev}" elsif append_rev.kind_of?(Integer) diff --git a/spec/couchrest/core/document_spec.rb b/spec/couchrest/core/document_spec.rb index 287ee79..2241598 100644 --- a/spec/couchrest/core/document_spec.rb +++ b/spec/couchrest/core/document_spec.rb @@ -83,6 +83,14 @@ describe CouchRest::Document do @doc.id.should == @resp["id"] @doc.rev.should == @resp["rev"] end + it "should generate a correct URI" do + @doc.uri.should == "#{@db.root}/#{@doc.id}" + URI.parse(@doc.uri).to_s.should == @doc.uri + end + it "should generate a correct URI with revision" do + @doc.uri(true).should == "#{@db.root}/#{@doc.id}?rev=#{@doc.rev}" + URI.parse(@doc.uri(true)).to_s.should == @doc.uri(true) + end end describe "bulk saving" do @@ -264,4 +272,4 @@ describe "dealing with attachments" do end end -end \ No newline at end of file +end