Class: Runoff::FileWriter

Inherits:
Object
  • Object
show all
Defined in:
lib/runoff/file_writer.rb

Overview

Public: Methods used for writing to files.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(format) ⇒ FileWriter

Public: Initialize a FileWriter object.

format - An object containing necessary methods for data formating.



10
11
12
# File 'lib/runoff/file_writer.rb', line 10

def initialize(format)
  @format = format
end

Class Method Details

.archive(output_directory) ⇒ Object

Public: Compresses all the exported files into a Zip archive.

output_directory - A String with the path to the directory, wher the file will be saved.

Examples

archive '/home/username/skype-backup'


39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/runoff/file_writer.rb', line 39

def self.archive(output_directory)
  timestamp = Time.now.strftime "%Y%m%d%H%M%S"

  Zip::ZipFile.open "#{output_directory}-#{timestamp}.zip", Zip::ZipFile::CREATE do |zipfile|
    Dir.entries(output_directory).each do |file|
      if File.file?("#{output_directory}/#{file}")
        zipfile.add file, "#{output_directory}/#{file}"
      end
    end
  end

  FileUtils.rm_rf output_directory
end

Instance Method Details

#save_to_file(record, output_directory) ⇒ Object

Public: Saves a single chat message to a file.

record - a Hash containing data about a single chat message. output_directory - A String with the path to the directory, wher the file will be saved.

Examples

save_to_file record, '/home/username/skype_backup'


21
22
23
24
25
26
27
28
29
30
# File 'lib/runoff/file_writer.rb', line 21

def save_to_file(record, output_directory)
  filename = "#{output_directory}/#{@format.get_filename(record)}"

  Dir.mkdir(output_directory) unless File.exists?(output_directory)
  File.open(filename, 'a') do |file|
    file.puts @format.build_entry(record)
  end

  filename
end