ÿØÿà JFIF    ÿÛ „ ( %!1!%*+...983,7(-.- PKdz ]aKK length-i.rinu[U:RDoc::AnyMethod[iI" length:ETI"DBM#length;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"3Returns the number of entries in the database.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I"dbm.length -> integer;T0[I"();T@FI"DBM;TcRDoc::NormalClass00PKdz ]~Ceach_pair-i.rinu[U:RDoc::AnyMethod[iI"each_pair:ETI"DBM#each_pair;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"FCalls the block once for each [key, value] pair in the database. ;TI"Returns self.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I".dbm.each_pair {|key,value| block} -> self;T0[I"();T@FI"DBM;TcRDoc::NormalClass00PKdz ]0zzvalues_at-i.rinu[U:RDoc::AnyMethod[iI"values_at:ETI"DBM#values_at;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"KReturns an array containing the values associated with the given keys.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I"&dbm.values_at(key, ...) -> Array ;T0[I" (*args);T@FI"DBM;TcRDoc::NormalClass00PKdz ]sshas_key%3f-i.rinu[U:RDoc::AnyMethod[iI" has_key?:ETI"DBM#has_key?;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"NReturns true if the database contains the specified key, false otherwise.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I"!dbm.has_key?(key) -> boolean;T0[I" (p1);T@FI"DBM;TcRDoc::NormalClass00PKdz ]_WIVeach_value-i.rinu[U:RDoc::AnyMethod[iI"each_value:ETI"DBM#each_value;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"NCalls the block once for each value string in the database. Returns self.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I",dbm.each_value {|value| block} -> self ;T0[I"();T@FI"DBM;TcRDoc::NormalClass00PKdz ]D  replace-i.rinu[U:RDoc::AnyMethod[iI" replace:ETI"DBM#replace;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"NReplaces the contents of the database with the contents of the specified ;TI"Oobject. Takes any object which implements the each_pair method, including ;TI"Hash and DBM objects.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I"dbm.replace(obj) ;T0[I" (p1);T@FI"DBM;TcRDoc::NormalClass00PKdz ]3Pgg key%3f-i.rinu[U:RDoc::AnyMethod[iI" key?:ETI" DBM#key?;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"NReturns true if the database contains the specified key, false otherwise.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I"dbm.key?(key) -> boolean;T0[I" (p1);T@FI"DBM;TcRDoc::NormalClass00PKdz ]<33 clear-i.rinu[U:RDoc::AnyMethod[iI" clear:ETI"DBM#clear;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"(Deletes all data from the database.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I"dbm.clear ;T0[I"();T@FI"DBM;TcRDoc::NormalClass00PKdz ](P shift-i.rinu[U:RDoc::AnyMethod[iI" shift:ETI"DBM#shift;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"DRemoves a [key, value] pair from the database, and returns it. ;TI",If the database is empty, returns nil. ;TI"FThe order in which values are removed/returned is not guaranteed.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I"!dbm.shift() -> [key, value] ;T0[I"();T@FI"DBM;TcRDoc::NormalClass00PKdz ]+lvv to_a-i.rinu[U:RDoc::AnyMethod[iI" to_a:ETI" DBM#to_a;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"OConverts the contents of the database to an array of [key, value] arrays, ;TI"and returns it.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I"dbm.to_a -> array ;T0[I"();T@FI"DBM;TcRDoc::NormalClass00PKdz ]7`' fetch-i.rinu[U:RDoc::AnyMethod[iI" fetch:ETI"DBM#fetch;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"AReturn a value from the database by locating the key string ;TI"Gprovided. If the key is not found, returns +ifnone+. If +ifnone+ ;TI"%is not given, raises IndexError.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I"'dbm.fetch(key[, ifnone]) -> value ;T0[I"(p1, p2 = v2);T@FI"DBM;TcRDoc::NormalClass00PKdz ]Hnew-c.rinu[U:RDoc::AnyMethod[iI"new:ETI" DBM::new;TT: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [ I"POpen a dbm database with the specified name, which can include a directory ;TI"Ppath. Any file extensions needed will be supplied automatically by the dbm ;TI"Llibrary. For example, Berkeley DB appends '.db', and GNU gdbm uses two ;TI"6physical files with extensions '.dir' and '.pag'.;To:RDoc::Markup::BlankLineo; ; [I"6The mode should be an integer, as for Unix chmod.;T@o; ; [I"=Flags should be one of READER, WRITER, WRCREAT or NEWDB.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I"/DBM.new(filename[, mode[, flags]]) -> dbm ;T0[I"(p1, p2 = v2, p3 = v3);T@FI"DBM;TcRDoc::NormalClass00PKdz ]nreject%21-i.rinu[U:RDoc::AnyMethod[iI" reject!:ETI"DBM#reject!;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"@Deletes all entries for which the code block returns true. ;TI"Returns self.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I"-dbm.reject! {|key, value| block} -> self;T0[I"();T@FI"DBM;TcRDoc::NormalClass00PKdz ] update-i.rinu[U:RDoc::AnyMethod[iI" update:ETI"DBM#update;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"JUpdates the database with multiple values from the specified object. ;TI"GTakes any object which implements the each_pair method, including ;TI"Hash and DBM objects.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I"dbm.update(obj) ;T0[I" (p1);T@FI"DBM;TcRDoc::NormalClass00PKdz ]JJ empty%3f-i.rinu[U:RDoc::AnyMethod[iI" empty?:ETI"DBM#empty?;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I" array ;T0[I"();T@FI"DBM;TcRDoc::NormalClass00PKdz ]\"ssinclude%3f-i.rinu[U:RDoc::AnyMethod[iI" include?:ETI"DBM#include?;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"NReturns true if the database contains the specified key, false otherwise.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I"!dbm.include?(key) -> boolean;T0[I" (p1);T@FI"DBM;TcRDoc::NormalClass00PKdz ]AEE size-i.rinu[U:RDoc::AnyMethod[iI" size:ETI" DBM#size;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"3Returns the number of entries in the database.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I"dbm.size -> integer;T0[I"();T@FI"DBM;TcRDoc::NormalClass00PKdz ]솊 select-i.rinu[U:RDoc::AnyMethod[iI" select:ETI"DBM#select;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"QReturns a new array consisting of the [key, value] pairs for which the code ;TI"block returns true.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I".dbm.select {|key, value| block} -> array ;T0[I"();T@FI"DBM;TcRDoc::NormalClass00PKdz ]=5K$$ close-i.rinu[U:RDoc::AnyMethod[iI" close:ETI"DBM#close;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"Closes the database.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I"dbm.close ;T0[I"();T@FI"DBM;TcRDoc::NormalClass00PKdz ]T0k %5b%5d-i.rinu[U:RDoc::AnyMethod[iI"[]:ETI" DBM#[];TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"AReturn a value from the database by locating the key string ;TI"5provided. If the key is not found, returns nil.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I"%dbm[key] -> string value or nil ;T0[I" (p1);T@FI"DBM;TcRDoc::NormalClass00PKdz ]v invert-i.rinu[U:RDoc::AnyMethod[iI" invert:ETI"DBM#invert;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"LReturns a Hash (not a DBM database) created by using each value in the ;TI"@database as a key, with the corresponding key as its value.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I"dbm.invert -> hash ;T0[I"();T@FI"DBM;TcRDoc::NormalClass00PKdz ]Lو== delete-i.rinu[U:RDoc::AnyMethod[iI" delete:ETI"DBM#delete;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"(Deletes an entry from the database.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I"dbm.delete(key) ;T0[I" (p1);T@FI"DBM;TcRDoc::NormalClass00PKdz ]4lևdelete_if-i.rinu[U:RDoc::AnyMethod[iI"delete_if:ETI"DBM#delete_if;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"@Deletes all entries for which the code block returns true. ;TI"Returns self.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I"/dbm.delete_if {|key, value| block} -> self;T0[I"();T@FI"DBM;TcRDoc::NormalClass00PKdz ]Ճ cdesc-DBM.rinu[U:RDoc::NormalClass[iI"DBM:ET@I" Object;To:RDoc::Markup::Document: @parts[o;;[S:RDoc::Markup::Heading: leveli: textI"Introduction;To:RDoc::Markup::BlankLineo:RDoc::Markup::Paragraph;[I"6The DBM class provides a wrapper to a Unix-style ;TI"I{dbm}[http://en.wikipedia.org/wiki/Dbm] or Database Manager library.;T@o; ;[I"LDbm databases do not have tables or columns; they are simple key-value ;TI"Odata stores, like a Ruby Hash except not resident in RAM. Keys and values ;TI"must be strings.;T@o; ;[I"NThe exact library used depends on how Ruby was compiled. It could be any ;TI"of the following:;T@o:RDoc::Markup::List: @type: BULLET: @items[ o:RDoc::Markup::ListItem: @label0;[o; ;[I"6The original ndbm library is released in 4.3BSD. ;TI"KIt is based on dbm library in Unix Version 7 but has different API to ;TI"-support multiple databases in a process.;To;;0;[o; ;[I"F{Berkeley DB}[http://en.wikipedia.org/wiki/Berkeley_DB] versions ;TI"G1 thru 5, also known as BDB and Sleepycat DB, now owned by Oracle ;TI"Corporation.;To;;0;[o; ;[I"PBerkeley DB 1.x, still found in 4.4BSD derivatives (FreeBSD, OpenBSD, etc).;To;;0;[o; ;[I"N{gdbm}[http://www.gnu.org/software/gdbm/], the GNU implementation of dbm.;To;;0;[o; ;[I"E{qdbm}[http://fallabs.com/qdbm/index.html], another open source ;TI"reimplementation of dbm.;T@o; ;[I"EAll of these dbm implementations have their own Ruby interfaces ;TI"8available, which provide richer (but varying) APIs.;T@S; ; i; I" Cautions;T@o; ;[I"MBefore you decide to use DBM, there are some issues you should consider:;T@o;;;;[ o;;0;[o; ;[I"HEach implementation of dbm has its own file format. Generally, dbm ;TI"Flibraries will not read each other's files. This makes dbm files ;TI"$a bad choice for data exchange.;T@o;;0;[o; ;[I"LEven running the same OS and the same dbm implementation, the database ;TI"Lfile format may depend on the CPU architecture. For example, files may ;TI"Mnot be portable between PowerPC and 386, or between 32 and 64 bit Linux.;T@o;;0;[o; ;[I"ODifferent versions of Berkeley DB use different file formats. A change to ;TI"=the OS may therefore break DBM access to existing files.;T@o;;0;[o; ;[ I"MData size limits vary between implementations. Original Berkeley DB was ;TI"Jlimited to 2GB of data. Dbm libraries also sometimes limit the total ;TI"Lsize of a key/value pair, and the total size of all the keys that hash ;TI"Oto the same value. These limits can be as little as 512 bytes. That said, ;TI"Ggdbm and recent versions of Berkeley DB do away with these limits.;T@o; ;[I"QGiven the above cautions, DBM is not a good choice for long term storage of ;TI"Mimportant data. It is probably best used as a fast and easy alternative ;TI"4to a Hash for processing large amounts of data.;T@S; ; i; I" Example;T@o:RDoc::Markup::Verbatim;[ I"require 'dbm' ;TI".db = DBM.open('rfcs', 666, DBM::WRCREAT) ;TI"Jdb['822'] = 'Standard for the Format of ARPA Internet Text Messages' ;TI"Ndb['1123'] = 'Requirements for Internet Hosts - Application and Support' ;TI"=db['3068'] = 'An Anycast Prefix for 6to4 Relay Routers' ;TI"puts db['822'];T: @format0: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0;0;0[[ U:RDoc::Constant[iI" READER;TI"DBM::READER;T00o;;[o; ;[I"IIndicates that dbm_open() should open the database in read-only mode;T@;@t;0@t@cRDoc::NormalClass0U;[iI" WRITER;TI"DBM::WRITER;T00o;;[o; ;[I"JIndicates that dbm_open() should open the database in read/write mode;T@;@t;0@t@@{0U;[iI" WRCREAT;TI"DBM::WRCREAT;T00o;;[o; ;[I"LIndicates that dbm_open() should open the database in read/write mode, ;TI"/and create it if it does not already exist;T;@t;0@t@@{0U;[iI" NEWDB;TI"DBM::NEWDB;T00o;;[o; ;[I"LIndicates that dbm_open() should open the database in read/write mode, ;TI"Kcreate it if it does not already exist, and delete all contents if it ;TI"does already exist.;T;@t;0@t@@{0U;[iI" VERSION;TI"DBM::VERSION;T00o;;[ o; ;[I"%Identifies ndbm library version.;T@o; ;[I"Examples:;T@o;;;;[ o;;0;[o; ;[I""ndbm (4.3BSD)";To;;0;[o; ;[I"+"Berkeley DB 4.8.30: (April 9, 2010)";To;;0;[o; ;[I","Berkeley DB (unknown)" (4.4BSD, maybe);To;;0;[o; ;[I"B"GDBM version 1.8.3. 10/15/2002 (built Jul 1 2011 12:32:45)";To;;0;[o; ;[I""QDBM 1.8.78";T;@t;0@t@@{0[[I"Enumerable;To;;[;@t;0I"ext/dbm/dbm.c;T[[I" class;T[[: public[[I"new;T@[I" open;T@[:protected[[: private[[I" instance;T[[;[([I"[];T@[I"[]=;T@[I" clear;T@[I" close;T@[I" closed?;T@[I" delete;T@[I"delete_if;T@[I" each;T@[I" each_key;T@[I"each_pair;T@[I"each_value;T@[I" empty?;T@[I" fetch;T@[I" has_key?;T@[I"has_value?;T@[I" include?;T@[I" invert;T@[I"key;T@[I" key?;T@[I" keys;T@[I" length;T@[I" member?;T@[I" reject;T@[I" reject!;T@[I" replace;T@[I" select;T@[I" shift;T@[I" size;T@[I" store;T@[I" to_a;T@[I" to_hash;T@[I" update;T@[I" value?;T@[I" values;T@[I"values_at;T@[;[[;[[[U:RDoc::Context::Section[i0o;;[;0;0[@t@tcRDoc::TopLevelPKdz ] ww to_hash-i.rinu[U:RDoc::AnyMethod[iI" to_hash:ETI"DBM#to_hash;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"LConverts the contents of the database to an in-memory Hash object, and ;TI"returns it.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I"dbm.to_hash -> hash ;T0[I"();T@FI"DBM;TcRDoc::NormalClass00PKdz ] open-c.rinu[U:RDoc::AnyMethod[iI" open:ETI"DBM::open;TT: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"EOpen a dbm database and yields it if a block is given. See also ;TI"DBM.new.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I"bDBM.open(filename[, mode[, flags]]) -> dbm DBM.open(filename[, mode[, flags]]) {|dbm| block} ;T0[I" (*args);T@FI"DBM;TcRDoc::NormalClass00PKdz ], value%3f-i.rinu[U:RDoc::AnyMethod[iI" value?:ETI"DBM#value?;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"MReturns true if the database contains the specified string value, false ;TI"otherwise.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I"!dbm.value?(value) -> boolean;T0[I" (p1);T@FI"DBM;TcRDoc::NormalClass00PKdz ]$5EEkey-i.rinu[U:RDoc::AnyMethod[iI"key:ETI" DBM#key;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"-Returns the key for the specified value.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I"dbm.key(value) -> string ;T0[I" (p1);T@FI"DBM;TcRDoc::NormalClass00PKdz ]ш჈ store-i.rinu[U:RDoc::AnyMethod[iI" store:ETI"DBM#store;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"HStores the specified string value in the database, indexed via the ;TI"string key provided.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I"#dbm.store(key, value) -> value;T0[I" (p1, p2);T@FI"DBM;TcRDoc::NormalClass00PKdz ]gRvv%5b%5d%3d-i.rinu[U:RDoc::AnyMethod[iI"[]=:ETI" DBM#[]=;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"HStores the specified string value in the database, indexed via the ;TI"string key provided.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I"dbm[key] = value;T0[I" (p1, p2);T@FI"DBM;TcRDoc::NormalClass00PKdz ]pl reject-i.rinu[U:RDoc::AnyMethod[iI" reject:ETI"DBM#reject;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"LConverts the contents of the database to an in-memory Hash, then calls ;TI"EHash#reject with the specified code block, returning a new Hash.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I",dbm.reject {|key,value| block} -> Hash ;T0[I"();T@FI"DBM;TcRDoc::NormalClass00PKdz ][qNN keys-i.rinu[U:RDoc::AnyMethod[iI" keys:ETI" DBM#keys;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"=Returns an array of all the string keys in the database.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I"dbm.keys -> array ;T0[I"();T@FI"DBM;TcRDoc::NormalClass00PKdz ]jv__closed%3f-i.rinu[U:RDoc::AnyMethod[iI" closed?:ETI"DBM#closed?;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"=Returns true if the database is closed, false otherwise.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I""dbm.closed? -> true or false ;T0[I"();T@FI"DBM;TcRDoc::NormalClass00PKdz ]Vppmember%3f-i.rinu[U:RDoc::AnyMethod[iI" member?:ETI"DBM#member?;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"NReturns true if the database contains the specified key, false otherwise.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I" dbm.member?(key) -> boolean;T0[I" (p1);T@FI"DBM;TcRDoc::NormalClass00PKdz ]hU each-i.rinu[U:RDoc::AnyMethod[iI" each:ETI" DBM#each;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"FCalls the block once for each [key, value] pair in the database. ;TI"Returns self.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I".dbm.each_pair {|key,value| block} -> self;T0[I"();T@FI"DBM;TcRDoc::NormalClass00PKdz ]#AWˋhas_value%3f-i.rinu[U:RDoc::AnyMethod[iI"has_value?:ETI"DBM#has_value?;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"MReturns true if the database contains the specified string value, false ;TI"otherwise.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I"%dbm.has_value?(value) -> boolean;T0[I" (p1);T@FI"DBM;TcRDoc::NormalClass00PKdz ]Lrvv each_key-i.rinu[U:RDoc::AnyMethod[iI" each_key:ETI"DBM#each_key;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"LCalls the block once for each key string in the database. Returns self.;T: @fileI"ext/dbm/dbm.c;T:0@omit_headings_from_table_of_contents_below0I"(dbm.each_key {|key| block} -> self ;T0[I"();T@FI"DBM;TcRDoc::NormalClass00PKdz ]aKK length-i.rinu[PKdz ]~Ceach_pair-i.rinu[PKdz ]0zzPvalues_at-i.rinu[PKdz ]sshas_key%3f-i.rinu[PKdz ]_WIVeach_value-i.rinu[PKdz ]D  yreplace-i.rinu[PKdz ]3Pgg  key%3f-i.rinu[PKdz ]<33 * clear-i.rinu[PKdz ](P  shift-i.rinu[PKdz ]+lvv to_a-i.rinu[PKdz ]7`' Wfetch-i.rinu[PKdz ]Hpnew-c.rinu[PKdz ]nreject%21-i.rinu[PKdz ] oupdate-i.rinu[PKdz ]JJ nempty%3f-i.rinu[PKdz ]"VV values-i.rinu[PKdz ]\"ssinclude%3f-i.rinu[PKdz ]AEE 8size-i.rinu[PKdz ]솊  select-i.rinu[PKdz ]=5K$$ "close-i.rinu[PKdz ]T0k #%5b%5d-i.rinu[PKdz ]v %invert-i.rinu[PKdz ]Lو== 'delete-i.rinu[PKdz ]4lև )delete_if-i.rinu[PKdz ]Ճ *cdesc-DBM.rinu[PKdz ] ww @to_hash-i.rinu[PKdz ] XBopen-c.rinu[PKdz ], TDvalue%3f-i.rinu[PKdz ]$5EEFkey-i.rinu[PKdz ]ш჈ Gstore-i.rinu[PKdz ]gRvvOI%5b%5d%3d-i.rinu[PKdz ]pl Kreject-i.rinu[PKdz ][qNN Lkeys-i.rinu[PKdz ]jv__Nclosed%3f-i.rinu[PKdz ]VppPmember%3f-i.rinu[PKdz ]hU Qeach-i.rinu[PKdz ]#AWˋShas_value%3f-i.rinu[PKdz ]Lrvv TUeach_key-i.rinu[PK&&= W