Env#[]: first try
This commit is contained in:
parent
42a5609b07
commit
0540eabcb4
|
@ -32,7 +32,7 @@ module SBDB
|
||||||
def unknown( *p, &e) Unknown.new *p[0...5], self, p[5..-1], &e end
|
def unknown( *p, &e) Unknown.new *p[0...5], self, p[5..-1], &e end
|
||||||
|
|
||||||
def initialize dir = nil, flags = nil, mode = nil
|
def initialize dir = nil, flags = nil, mode = nil
|
||||||
@env = Bdb::Env.new 0
|
@dbs, @env = WeakHash.new, Bdb::Env.new 0
|
||||||
begin @env.open dir || '.', flags || INIT_TRANSACTION | CREATE, mode || 0
|
begin @env.open dir || '.', flags || INIT_TRANSACTION | CREATE, mode || 0
|
||||||
rescue Object
|
rescue Object
|
||||||
close
|
close
|
||||||
|
@ -66,9 +66,10 @@ module SBDB
|
||||||
alias db open
|
alias db open
|
||||||
alias open_db open
|
alias open_db open
|
||||||
|
|
||||||
# Returns the DB like open, but if it's already opened,
|
# Returns the DB like open, but if it's already opened,
|
||||||
# it returns the old instance.
|
# it returns the old instance.
|
||||||
# If you use this, never use close. It's possible somebody else use it.
|
# If you use this, never use close. It's possible somebody else use it too.
|
||||||
|
# The Databases, which are opened, will close, if the Environment will close.
|
||||||
def [] file, name = nil, type = nil, &e
|
def [] file, name = nil, type = nil, &e
|
||||||
@dbs[ [file, name]] ||= (type || SBDB::Unkown).new file, name, nil, nil, self, &e
|
@dbs[ [file, name]] ||= (type || SBDB::Unkown).new file, name, nil, nil, self, &e
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue