Method: PEROBS::FlatFile#open
- Defined in:
- lib/perobs/FlatFile.rb
#open ⇒ Object
Open the flat file for reading and writing.
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/perobs/FlatFile.rb', line 66 def open file_name = File.join(@db_dir, 'database.blobs') new_db_created = false begin if File.exist?(file_name) @f = File.open(file_name, 'rb+') else PEROBS.log.info "New FlatFile database '#{file_name}' created" @f = File.open(file_name, 'wb+') new_db_created = true end rescue IOError => e PEROBS.log.fatal "Cannot open FlatFile database #{file_name}: " + e. end unless @f.flock(File::LOCK_NB | File::LOCK_EX) PEROBS.log.fatal "FlatFile database '#{file_name}' is locked by " + "another process" end @f.sync = true open_index_files(!new_db_created) end |