Class: Imap::Backup::Serializer::Directory

Inherits:
Serializer::Base
  • Object
show all
Defined in:
lib/imap/backup/serializer/directory.rb

Instance Method Summary collapse

Constructor Details

#initialize(path, folder) ⇒ Directory

Returns a new instance of Directory.



7
8
9
10
# File 'lib/imap/backup/serializer/directory.rb', line 7

def initialize(path, folder)
  super
  Utils.make_folder(@path, @folder, Serializer::DIRECTORY_PERMISSIONS)
end

Instance Method Details

#exist?(uid) ⇒ Boolean

Returns:

  • (Boolean)


22
23
24
25
# File 'lib/imap/backup/serializer/directory.rb', line 22

def exist?(uid)
  message_filename = filename(uid)
  File.exist?(message_filename)
end

#save(uid, message) ⇒ Object



27
28
29
30
31
# File 'lib/imap/backup/serializer/directory.rb', line 27

def save(uid, message)
  message_filename = filename(uid)
  File.open(message_filename, "w") { |f| f.write message.to_json }
  FileUtils.chmod 0600, message_filename
end

#uids ⇒ Object



12
13
14
15
16
17
18
19
20
# File 'lib/imap/backup/serializer/directory.rb', line 12

def uids
  return [] if !File.exist?(directory)

  d = Dir.open(directory)
  as_strings = d.map do |file|
    file[/^0*(\d+).json$/, 1]
  end.compact
  as_strings.map(&:to_i).sort
end