GDBMファイルをアクセスするクラス。キー、データともに文字列でなければな らないという制限と、データがファイルに保存されるという点を除いては Hashクラスと全く同様に扱うことがでます。
dbnameで指定したデータベースをモードを
modeに設定してオープンします。modeの省
略値は0666です。modeとしてnil
を指定
するとデータベースが存在しない時には新たなデータベースを作らず
nil
を返します。
flags には、GDBM::FAST, GDBM::SYNC, GDBM::NOLOCK を の論理和を指定します。デフォルト値は指定なし(つまり0)です。
ブロックを指定した場合、オープンしたGDBMオブジェクトを 引数にブロックを実行します。実行後GDBMオブジェクトをクローズ し、openメソッドはブロックの結果を返します。これはちょうど 以下と同じです。
dbm = GDBM.open(file) begin yield dbm ensure dbm.close end
keyをキーとする値を返します。
keyをキーとして、valueを格納します。
DBMファイルを空にします。
DBMファイルをクローズします。以後の操作は例外を発生させます。
keyをキーとする項目を削除します。
指定したキーが存在しなければnilを返します、このとき ブロックを指定していれば、ブロックを評価します。
ブロックを評価した値が真であれば該当する項目を削除します。
各要素に対するイテレータ。
全てのkeyに対して繰り返すイテレータ。
全てのvalueに対して繰り返すイテレータ。
データベースが空の時、真を返します。
オープンしているGDBMオブジェクトのモードを変更します。下記の定数 GDBM::FAST、GDBM::SYNC を参照してください。
ハッシュと同じ
keyがデータベース中に存在する時、真を返します。
valueを値とする組がデータベース中に存在する時、真を返します。
ハッシュと同じ
各引数の値をキーとする要素を含む配列を返します。
値からキーへのハッシュを返します。
データベース中に存在するキー全てを含む配列を返します。
データベース中の要素の数を返します。(注意:現在の実現では要素数を数 えるためにデータベースを全部検索します)
self.to_hash.reject と同じです。ハッシュを返します。
GDBMでは、要素の削除を行ってもDBファイルのサイズは減少しません(削 除によって空いた領域は次の格納のために取っておかれます、)。このメ ソッドを呼び出すことでDBMファイルを新規に作り直し無駄な領域をなく すことができます。
大量の削除を行ったときに、ディスクスペースの節約のために使用します。
DBMの内容を other の内容で置き換えます。 other は each_pair メソッドを持つオブジェクトで なければなりません。
データベース中の要素を一つ取り出し、データベースから削除します。
self[key]=val と同じです。keyに対してvalを格納します。
要素の変更をファイルに反映します。FASTモード (GDBM#open() の第3引数にGDBM::FAST を指定)のときだけ意味があります。
注) GNU gdbm version 1.8 以降よりFASTモードがデフォルトになりました。
DBMの各要素を格納した配列を返します。返される配列の1つの要素は [key, val] です。(つまり配列の配列を返します)。
DBMの各要素を格納したハッシュを返します。
DBMとotherの内容をマージします。重複するキーに対応する値は otherの内容で上書きされます。
otherは each_pair メソッドを持つオブジェクトでなければなりま せん。
データベース中に存在する値全てを含む配列を返します。
libgdbm のバージョン情報の文字列です。
以下の定数は open の第3引数に指定します。
書き込みの結果が、ディスク上のファイルにすぐに反映しなくなります。 このモードのときに結果を明示的にファイルに反映させるには GDBM#sync メソッドを呼びます。libgdbm version 1.8.0 以降ではこのモードがデフォルト です。
書き込みの結果が、ディスク上のファイルにすぐに反映されます。 libgdbm version 1.8.0 以前のデフォルトモードです。
この定数は libgdbm version 1.8.0 以降より有効です
通常、他のプロセスがDBをオープンしている最中にオープンを行うと Errno::EWOULDBLOCK(またはErrno::EAGAIN)例外が発生します。このフラグを 指定していれば、他のプロセスがオープンしている最中でも同時オープンする ことができます。
この定数は libgdbm version 1.8.0 以降より有効です。