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

has_value?

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

2015-04-07 16:56:20
fetch

gdbm.fetch(key [, default]) â value Instance Public methods Retrieves the value

2015-04-07 16:51:34
sync

gdbm.sync â gdbm Instance Public methods Unless the gdbm object has

2015-04-07 18:10:39
values

gdbm.values â array Instance Public methods Returns an array of all values

2015-04-07 18:29:40
each

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

2015-04-07 16:26:50
new

GDBM.new(filename, mode = 0666, flags = nil) Class Public methods Creates a

2015-04-07 15:56:58
reorganize

gdbm.reorganize â gdbm Instance Public methods Reorganizes the database file

2015-04-07 17:40:58
to_hash

gdbm.to_hash â hash Instance Public methods Returns a hash of all key-value

2015-04-07 18:23:10
each_value

gdbm.each_value { |value| block } â gdbm Instance Public methods Executes block

2015-04-07 16:43:31
[]

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

2015-04-07 16:02:56