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

new
  • References/Ruby on Rails/Ruby/Classes/GDBM

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

2025-01-10 15:47:30
reorganize
  • References/Ruby on Rails/Ruby/Classes/GDBM

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

2025-01-10 15:47:30
to_hash
  • References/Ruby on Rails/Ruby/Classes/GDBM

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

2025-01-10 15:47:30
sync
  • References/Ruby on Rails/Ruby/Classes/GDBM

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

2025-01-10 15:47:30
each
  • References/Ruby on Rails/Ruby/Classes/GDBM

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

2025-01-10 15:47:30
fetch
  • References/Ruby on Rails/Ruby/Classes/GDBM

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

2025-01-10 15:47:30
has_value?
  • References/Ruby on Rails/Ruby/Classes/GDBM

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

2025-01-10 15:47:30
each_value
  • References/Ruby on Rails/Ruby/Classes/GDBM

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

2025-01-10 15:47:30
values
  • References/Ruby on Rails/Ruby/Classes/GDBM

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

2025-01-10 15:47:30
update
  • References/Ruby on Rails/Ruby/Classes/GDBM

gdbm.update(other) â gdbm Instance Public methods Adds the key-value pairs

2025-01-10 15:47:30