added handling of view params like count etc
This commit is contained in:
parent
ef639040c3
commit
ce5bf9ffe8
|
@ -17,8 +17,16 @@ class CouchRest
|
|||
JSON.parse(RestClient.post("#{@root}/_temp_view", JSON.unparse(funcs), {"Content-Type" => type}))
|
||||
end
|
||||
|
||||
def view name
|
||||
CouchRest.get "#{@root}/_view/#{name}"
|
||||
def view name, params = nil
|
||||
url = "#{@root}/_view/#{name}"
|
||||
if params
|
||||
query = params.collect do |k,v|
|
||||
v = JSON.unparse(v) if %w{key startkey endkey}.include?(k.to_s)
|
||||
"#{k}=#{CGI.escape(v.to_s)}"
|
||||
end.join("&")
|
||||
url = "#{url}?#{query}"
|
||||
end
|
||||
CouchRest.get url
|
||||
end
|
||||
|
||||
def get id
|
||||
|
|
|
@ -67,6 +67,18 @@ describe CouchRest::Database do
|
|||
rs = @db.view('first/test')
|
||||
rs['rows'].select{|r|r['key'] == 'wild' && r['value'] == 'and random'}.length.should == 1
|
||||
end
|
||||
it "should work with a range" do
|
||||
rs = @db.view('first/test',{:startkey => "b", :endkey => "z"})
|
||||
rs['rows'].length.should == 2
|
||||
end
|
||||
it "should work with a key" do
|
||||
rs = @db.view('first/test',{:key => "wild"})
|
||||
rs['rows'].length.should == 1
|
||||
end
|
||||
it "should work with a count" do
|
||||
rs = @db.view('first/test',{:count => 1})
|
||||
rs['rows'].length.should == 1
|
||||
end
|
||||
end
|
||||
|
||||
describe "GET (document by id) when the doc exists" do
|
||||
|
|
Loading…
Reference in a new issue