# DBM

  NDBMファイルをアクセスするクラス．キー，データともに文字列でなければな らないという制限と，データがファイルに保存されるという点を除いては Hashクラスと全く同様に扱うことがでます．

## スーパークラス:

  `Object`

## インクルードしているモジュール:

  `Enumerable`

## クラスメソッド:

  `open(dbname[, mode])`

    dbnameで指定したデータベースをモードを modeに設定してオープンします．modeの省 略値は0666です．modeとして`nil`を指定 するとデータベースが存在しない時には新たなデータベースを作らず `nil`を返します．

## メソッド:

  `self[key]`

    keyをキーとする値を返します．

  `self[key] = value`

    keyをキーとして，valueを格納します． valueとして`nil`を指定すると，keyに対 する項目を削除します．

  `clear`

    DBMファイルを空にします．

  `close`

    DBMファイルをクローズします．以後の操作は例外を発生させます．

  `delete(key)`

    keyをキーとする項目を削除します．

  `delete_if { |key, value| ... }`

    ブロックを評価した値が真であれば該当する項目を削除します．

  `each {|key, value| ... }`
  `each_pair {|key, value| ... }`

    各要素に対するイテレータ．

  `each_key {|key| ... }`

    全てのkeyに対して繰り返すイテレータ．

  `each_value {|value| ... }`

    全てのvalueに対して繰り返すイテレータ．

  `empty?()`

    データベースが空の時，真を返します．

  `has_key?(key)`
  `key?(key)`
  `include?(key)`

    keyがデータベース中に存在する時，真を返します．

  `has_value?(key)`
  `value?(value)`

    valueを値とする組がデータベース中に存在する時，真を返します．

  `indexes(key_1,...)`
  `indices(key_1,...)`

    各引数の値をキーとする要素を含む配列を返します．

  `keys`

    データベース中に存在するキー全てを含む配列を返します．

  `length`
  `size`

    データベース中の要素の数を返します．(注意:現在の実現では要素数を数 えるためにデータベースを全部検索します)

  `shift`

    データベース中の要素を一つ取り出し，データベースから削除します．

  `values`

    データベース中に存在する値全てを含む配列を返します．