Type:
Class
Constants:
READER : flag for #new and #open

open database as a reader

WRITER : flag for #new and #open

open database as a writer

WRCREAT : flag for #new and #open

open database as a writer; if the database does not exist, create a new one

NEWDB : flag for #new and #open

open database as a writer; overwrite any existing databases

FAST : INT2FIX(GDBM_FAST)

flag for new and open. this flag is obsolete for gdbm >= 1.8

SYNC : INT2FIX(GDBM_SYNC)

flag for new and open. only for gdbm >= 1.8

NOLOCK : INT2FIX(GDBM_NOLOCK)

flag for new and open

VERSION : rb_str_new2(gdbm_version)

version of the gdbm library

Summary

Ruby extension for GNU dbm (gdbm) – a simple database engine for storing key-value pairs on disk.

Description

GNU dbm is a library for simple databases. A database is a file that stores key-value pairs. Gdbm allows the user to store, retrieve, and delete data by key. It furthermore allows a non-sorted traversal of all key-value pairs. A gdbm database thus provides the same functionality as a hash. As with objects of the Hash class, elements can be accessed with []. Furthermore, GDBM mixes in the Enumerable module, thus providing convenient methods such as find, collect, map, etc.

A process is allowed to open several different databases at the same time. A process can open a database as a “reader” or a “writer”. Whereas a reader has only read-access to the database, a writer has read- and write-access. A database can be accessed either by any number of readers or by exactly one writer at the same time.

Examples

  1. Opening/creating a database, and filling it with some entries:

    require 'gdbm'
    
    gdbm = GDBM.new("fruitstore.db")
    gdbm["ananas"]    = "3"
    gdbm["banana"]    = "8"
    gdbm["cranberry"] = "4909"
    gdbm.close
    
  2. Reading out a database:

    require 'gdbm'
    
    gdbm = GDBM.new("fruitstore.db")
    gdbm.each_pair do |key, value|
      print "#{key}: #{value}\n"
    end
    gdbm.close
    

    produces

    banana: 8
    ananas: 3
    cranberry: 4909

Links

member?

gdbm.has_key?(k) â true or falsegdbm.key?(k) â true or false Instance Public methods

2015-04-07 17:32:18
select

gdbm.select { |key, value| block } â array Instance Public methods Returns

2015-04-07 17:49:22
each_pair

gdbm.each_pair { |key, value| block } â gdbm Instance Public methods Executes

2015-04-07 16:37:15
key?

gdbm.key?(k) â true or false Instance Public methods Returns true if the given

2015-04-07 17:20:16
open

GDBM.open(filename, mode = 0666, flags = nil)GDBM.open(filename, mode = 0666, flags = nil) { |gdbm| ... }

2015-04-07 15:59:35
each_key

gdbm.each_key { |key| block } â gdbm Instance Public methods Executes block

2015-04-07 16:34:10
size

gdbm.size â fixnum Instance Public methods Returns the number of key-value pairs

2015-04-07 17:58:04
reject!

gdbm.reject! { |key, value| block } â gdbm Instance Public methods Deletes every

2015-04-07 17:39:21
values_at

gdbm.values_at(key, ...) â array Instance Public methods Returns an array of

2015-04-07 18:30:34
fastmode=

gdbm.fastmode = boolean â boolean Instance Public methods Turns the database's

2015-04-07 16:50:34