diff --git a/lib/database.rb b/lib/database.rb index a552e8e..500ed72 100644 --- a/lib/database.rb +++ b/lib/database.rb @@ -70,6 +70,7 @@ class CouchRest private def encode_attachments attachments attachments.each do |k,v| + next if v['stub'] v['data'] = base64(v['data']) end attachments diff --git a/spec/database_spec.rb b/spec/database_spec.rb index b586f3b..b88f3de 100644 --- a/spec/database_spec.rb +++ b/spec/database_spec.rb @@ -207,6 +207,30 @@ describe CouchRest::Database do attachment.should == @attach end end + + describe "PUT document with attachment stub" do + before(:each) do + @attach = "My Doc

Has words.

" + doc = { + '_id' => 'mydocwithattachment', + 'field' => ['some_value'], + '_attachments' => { + 'test.html' => { + 'type' => 'text/html', 'data' => @attach + } + } + } + @db.save(doc) + doc = @db.get('mydocwithattachment') + doc['field'] << 'another value' + @db.save(doc) + end + + it 'should be there' do + attachment = @db.fetch_attachment('mydocwithattachment', 'test.html') + attachment.should == @attach + end + end describe "PUT document with multiple attachments" do before(:each) do