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

to_a

gdbm.to_a â array Instance Public methods Returns an array of all key-value

2015-04-07 18:19:35
[]

gdbm[key] â value Instance Public methods Retrieves the value corresponding

2015-04-07 16:02:56
store

gdbm.store(key, value) â value Instance Public methods Associates the value

2015-04-07 18:05:30
value?

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

2015-04-07 18:25:05
key

gdbm.key(value) â key Instance Public methods Returns the key for

2015-04-07 17:13:24
shift

gdbm.shift â (key, value) or nil Instance Public methods Removes a key-value-pair

2015-04-07 17:52:36
delete_if

gdbm.delete_if { |key, value| block } â gdbm Instance Public methods Deletes

2015-04-07 16:25:58
empty?

gdbm.empty? â true or false Instance Public methods Returns true if the database

2015-04-07 16:49:26
syncmode=

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

2015-04-07 18:12:04
close

gdbm.close â nil Instance Public methods Closes the associated database file

2015-04-07 16:16:02