diff --git a/lib/couchrest/core/database.rb b/lib/couchrest/core/database.rb index 7f4fd41..060c124 100644 --- a/lib/couchrest/core/database.rb +++ b/lib/couchrest/core/database.rb @@ -17,7 +17,7 @@ module CouchRest @name = name @server = server @host = server.uri - @uri = @root = "#{host}/#{name}" + @uri = @root = "#{host}/#{name.gsub('/','%2F')}" @streamer = Streamer.new(self) @bulk_save_cache = [] @bulk_save_cache_limit = 500 # must be smaller than the uuid count diff --git a/spec/couchrest/core/database_spec.rb b/spec/couchrest/core/database_spec.rb index d0a1eb8..f5565b0 100644 --- a/spec/couchrest/core/database_spec.rb +++ b/spec/couchrest/core/database_spec.rb @@ -7,7 +7,15 @@ describe CouchRest::Database do @db.delete! rescue nil @db = @cr.create_db(TESTDB) rescue nil end - + + describe "database name including slash" do + it "should escape the name in the URI" do + db = @cr.database("foo/bar") + db.name.should == "foo/bar" + db.uri.should == "#{COUCHHOST}/foo%2Fbar" + end + end + describe "map query with _temp_view in Javascript" do before(:each) do @db.bulk_save([