added a url parser that CouchRest can use throughout (but is not yet using)
This commit is contained in:
parent
de9fe45744
commit
26d50c8ac1
|
@ -41,6 +41,37 @@ module CouchRest
|
|||
Server.new(*opts)
|
||||
end
|
||||
|
||||
def parse url
|
||||
case url
|
||||
when /^http:\/\/(.*)\/(.*)\/(.*)/
|
||||
host = $1
|
||||
db = $2
|
||||
docid = $3
|
||||
when /^http:\/\/(.*)\/(.*)/
|
||||
host = $1
|
||||
db = $2
|
||||
when /^http:\/\/(.*)/
|
||||
host = $1
|
||||
when /(.*)\/(.*)\/(.*)/
|
||||
host = $1
|
||||
db = $2
|
||||
docid = $3
|
||||
when /(.*)\/(.*)/
|
||||
host = $1
|
||||
db = $2
|
||||
else
|
||||
db = url
|
||||
end
|
||||
|
||||
db = nil if db && db.empty?
|
||||
|
||||
{
|
||||
:host => host || "localhost:5984",
|
||||
:database => db,
|
||||
:doc => docid
|
||||
}
|
||||
end
|
||||
|
||||
# ensure that a database exists
|
||||
# creates it if it isn't already there
|
||||
# returns it after it's been created
|
||||
|
|
|
@ -42,6 +42,56 @@ describe CouchRest do
|
|||
end
|
||||
end
|
||||
|
||||
describe "parsing urls" do
|
||||
it "should parse just a dbname" do
|
||||
db = CouchRest.parse "my-db"
|
||||
db[:database].should == "my-db"
|
||||
db[:host].should == "localhost:5984"
|
||||
end
|
||||
it "should parse a host and db" do
|
||||
db = CouchRest.parse "localhost/my-db"
|
||||
db[:database].should == "my-db"
|
||||
db[:host].should == "localhost"
|
||||
end
|
||||
it "should parse a host and db with http" do
|
||||
db = CouchRest.parse "http://localhost/my-db"
|
||||
db[:database].should == "my-db"
|
||||
db[:host].should == "localhost"
|
||||
end
|
||||
it "should parse a host with a port and db" do
|
||||
db = CouchRest.parse "localhost:5555/my-db"
|
||||
db[:database].should == "my-db"
|
||||
db[:host].should == "localhost:5555"
|
||||
end
|
||||
it "should parse a host with a port and db with http" do
|
||||
db = CouchRest.parse "http://localhost:5555/my-db"
|
||||
db[:database].should == "my-db"
|
||||
db[:host].should == "localhost:5555"
|
||||
end
|
||||
it "should parse just a host" do
|
||||
db = CouchRest.parse "http://localhost:5555/"
|
||||
db[:database].should be_nil
|
||||
db[:host].should == "localhost:5555"
|
||||
end
|
||||
it "should parse just a host no slash" do
|
||||
db = CouchRest.parse "http://localhost:5555"
|
||||
db[:host].should == "localhost:5555"
|
||||
db[:database].should be_nil
|
||||
end
|
||||
it "should get docid" do
|
||||
db = CouchRest.parse "localhost:5555/my-db/my-doc"
|
||||
db[:database].should == "my-db"
|
||||
db[:host].should == "localhost:5555"
|
||||
db[:doc].should == "my-doc"
|
||||
end
|
||||
it "should get docid with http" do
|
||||
db = CouchRest.parse "http://localhost:5555/my-db/my-doc"
|
||||
db[:database].should == "my-db"
|
||||
db[:host].should == "localhost:5555"
|
||||
db[:doc].should == "my-doc"
|
||||
end
|
||||
end
|
||||
|
||||
describe "easy initializing a database adapter" do
|
||||
it "should be possible without an explicit CouchRest instantiation" do
|
||||
db = CouchRest.database "http://localhost:5984/couchrest-test"
|
||||
|
|
Loading…
Reference in a new issue