From 37a9161470227e630cf0a86b1489db760ed9c362 Mon Sep 17 00:00:00 2001 From: Denis Knauf Date: Sat, 6 Feb 2010 00:41:43 +0100 Subject: [PATCH] Wenn kein Element existiert, wird ein Exception geworfen. Dies ist etwas unschoen, also wird diese abgefangen und nil zurueckgegeben. --- lib/sbdb/db.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/sbdb/db.rb b/lib/sbdb/db.rb index e0ba0ae..157b2d3 100644 --- a/lib/sbdb/db.rb +++ b/lib/sbdb/db.rb @@ -17,9 +17,15 @@ module SBDB def bdb_object() @db end def sync() @db.sync end def close( f = nil) @db.close f || 0 end - def []( k) @db.get nil, k.nil? ? nil : k.to_s, nil, 0 end def cursor( &e) Cursor.new self, &e end + def [] k + @db.get nil, k.nil? ? nil : k.to_s, nil, 0 + rescue Bdb::DbError + return if $!.code == Bdb::DB_KEYEMPTY + raise $! + end + def []= k, v if v.nil? @db.del nil, k.to_s, 0