def run
YAML::load_file(@opts.ifile).each do |o|
@dbtop = o.id if o.id > @dbtop
@db[o.id]=o
@count += 1
end
case @opts.dbtype
when :sdbm
SDBM.open(@opts.ofile, 0666) do |db|
@db.each {|k,v| db[k.to_s] = Utility.encode(v)}
end
when :gdbm
GDBM.open(@opts.ofile, 0666) do |db|
@db.each {|k,v| db[k.to_s] = Utility.encode(v)}
end
when :dbm
DBM.open(@opts.ofile, 0666) do |db|
@db.each {|k,v| db[k.to_s] = Utility.encode(v)}
end
when :sqlite
db = SQLite::Database.open(@opts.ofile)
begin
db.execute("drop table tmud;")
rescue
end
db.execute("create table tmud (id integer primary key, data text);")
@db.each {|k,v| db[k] = Utility.encode(v)}
db.close
when :sqlite3
db = SQLite3::Database.open(@opts.ofile)
begin
db.execute("drop table tmud;")
rescue Exception
end
db.execute("create table tmud (id integer primary key, data text);")
@db.each {|k,v| db[k] = Utility.encode(v)}
db.close
end
puts "Highest object in use : #{@dbtop}"
puts "Count of objects dumped : #{@count}"
end