Method: TopModel::Marshal#dump

Defined in:
lib/topmodel/marshal.rb

#dumpObject



40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/topmodel/marshal.rb', line 40

def dump
  return unless path
  tmp_file = Tempfile.new("rbdump")
  tmp_file.binmode
  data = klasses.inject({}) {|hash, klass|
    hash[klass] = klass.marshal_records
    hash
  }
  ::Marshal.dump(data, tmp_file)
 tmp_file.close
  # Atomic serialization - so we never corrupt the db
  FileUtils.mv(tmp_file.path, path)
  true
end