 
 This page contains automated test results for code from O'Reilly's Ruby Cookbook. If this code looks interesting or useful, you might want to buy the whole book.
| Using Berkeley DB Databases | ||
|---|---|---|
| Code | Expected | Actual | 
| require 'dbm'
DBM.open('random_thoughts') do |db|
  db['tape measure'] = 
	"What if there was a tape measure you could use as a yo-yo?"
  db[23] = "Fnord."
end
DBM.open('random_thoughts') do |db|
  puts db['tape measure']
  puts db['23']
end | What if there was a tape measure you could use as a yo-yo? Fnord. | What if there was a tape measure you could use as a yo-yo? Fnord. | 
| DBM.open('random_thoughts') { |db| db[23] } | TypeError: can't convert Fixnum into String ... | TypeError: can't convert Fixnum into String from (irb):11:in `[]' from (irb):11 from (irb):11 | 
| Dir['random_thoughts.*'] | ["random_thoughts.pag", "random_thoughts.dir"] | ["random_thoughts.pag", "random_thoughts.dir"] | 
| require 'bdb'
db = BDB::Hash.create('random_thoughts2.db', nil, BDB::CREATE) 
db['Why do we park on a driveway but'] = 'it never rains but it pours.'
db.close
db = BDB::Hash.open('random_thoughts2.db', nil, 'r')
db['Why do we park on a driveway but'] | "it never rains but it pours." | Error! (Exception?) Here's stdout: NotImplementedError: BDB needs compatible versions of libdb & db.h you have db.h version 4.4.16 and libdb version 4.4.20 from /usr/local/lib/site_ruby/1.8/i486-linux/bdb.so from (irb):13 NameError: uninitialized constant BDB from (irb):14 NoMethodError: undefined method `[]=' for nil:NilClass from (irb):15 NoMethodError: undefined method `close' for nil:NilClass from (irb):16 NameError: uninitialized constant BDB from (irb):17 NoMethodError: undefined method `[]' for nil:NilClass from (irb):18 | 
| db.close
db = BDB::Btree.create('element_reviews.db', nil, BDB::CREATE) 
db['earth'] = 'My personal favorite element.'
db['water'] = 'An oldie but a goodie.'
db['air'] = 'A good weekend element when you're bored with other elements.'
db['fire'] = 'Perhaps the most overrated element.'
db.each { |k,v| puts k } | air earth fire water | Error! (Exception?) Here's stdout: NoMethodError: undefined method `close' for nil:NilClass from (irb):19 NameError: uninitialized constant BDB from (irb):20 NoMethodError: undefined method `[]=' for nil:NilClass from (irb):21 NoMethodError: undefined method `[]=' for nil:NilClass from (irb):22 | 
| db['water'] | "An oldie but a goodie." | Error! (Exception?) Here's stdout: | 
| db.close | ... | |