temp view

This commit is contained in:
Chris Anderson 2008-03-19 18:10:16 -07:00
parent 7f14458694
commit 6995d478c9
2 changed files with 31 additions and 0 deletions

View file

@ -13,6 +13,14 @@ class CouchRest
view "_all_docs"
end
def temp_view func
# CouchRest.post "#{@root}/_temp_view", func
# headers: {"Content-Type": "text/javascript"},
# ripping from CouchRest because leaky abstraction.
# payload = JSON.unparse doc if doc
JSON.parse(RestClient.post("#{@root}/_temp_view", func, {"Content-Type" => "text/javascript"}))
end
def view name
CouchRest.get "#{@root}/#{name}"
end

View file

@ -16,6 +16,20 @@ describe CouchRest::Database do
end
end
describe "query with _temp_view in Javascript" do
before(:each) do
@db.bulk_save([
{"wild" => "and random"},
{"mild" => "yet local"},
{"another" => ["set","of","keys"]}
])
end
it "should return the result of the temporary function" do
rs = @db.temp_view("function(doc){for(var w in doc){ if(!w.match(/^_/))map(w,doc[w])}}")
rs['rows'].select{|r|r['key'] == 'wild' && r['value'] == 'and random'}.length.should == 1
end
end
describe "GET (document by id) when the doc exists" do
before(:each) do
@r = @db.save({'lemons' => 'from texas', 'and' => 'spain'})
@ -120,9 +134,18 @@ describe CouchRest::Database do
before(:each) do
@db.save({'_id' => 'my-doc', 'will-exist' => 'here'})
@doc = @db.get('my-doc')
@docid = "http://example.com/stuff.cgi?things=and%20stuff"
@db.save({'_id' => @docid, 'now' => 'save'})
end
it "should start with the document" do
@doc['will-exist'].should == 'here'
@db.get(@docid)['now'].should == 'save'
end
it "should save with url id" do
doc = @db.get(@docid)
doc['yaml'] = ['json', 'word.']
@db.save doc
@db.get(@docid)['yaml'].should == ['json', 'word.']
end
it "should update the document" do
@doc['them-keys'] = 'huge'