module TopModel::Marshal
Public Instance Methods
dump()
click to toggle source
# 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
klasses()
click to toggle source
# File lib/topmodel/marshal.rb, line 14 def klasses @klasses ||= [] end
load()
click to toggle source
# File lib/topmodel/marshal.rb, line 18 def load return unless path return unless File.exist?(path) data = [] File.open(path, "rb") do |file| begin data = ::Marshal.load(file) rescue => e if defined?(Bowline) Bowline::Logging.log_error(e) end # Lots of errors can occur during # marshaling - such as EOF etc return false end end data.each do |klass, records| klass.marshal_records = records end true end
path()
click to toggle source
# File lib/topmodel/marshal.rb, line 6 def path @path || raise("Provide a path") end
path=(p)
click to toggle source
# File lib/topmodel/marshal.rb, line 10 def path=(p) @path = p end