# File lib/dbi/dbi.rb, line 561 def connect(db_args, user, auth, params) user = @handle.default_user[0] if user.nil? auth = @handle.default_user[1] if auth.nil? # TODO: what if only one of them is nil? #if user.nil? and auth.nil? then # user, auth = @handle.default_user #end params ||= {} new_params = @handle.default_attributes params.each {|k,v| new_params[k] = v} db = @handle.connect(db_args, user, auth, new_params) dbh = DatabaseHandle.new(db) dbh.trace(@trace_mode, @trace_output) if block_given? begin yield dbh ensure dbh.disconnect if dbh.connected? end else return dbh end end