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

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

Instance Attribute Summary

Attributes inherited from Base

#folder, #path

Instance Method Summary collapse

Constructor Details

#initialize(path, folder) ⇒ Directory

Returns a new instance of Directory.



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

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

Instance Method Details

#exist?(uid) ⇒ Boolean

Returns:

  • (Boolean)


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

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

#save(uid, message) ⇒ Object



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

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



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

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