Class: Imap::Backup::Account

Inherits:
Object
  • Object
show all
Defined in:
lib/imap/backup/account.rb,
lib/imap/backup/account/folder.rb,
lib/imap/backup/account/connection.rb,
lib/imap/backup/account/connection/folder_names.rb,
lib/imap/backup/account/connection/backup_folders.rb

Defined Under Namespace

Classes: Connection, Folder

Constant Summary collapse

DEFAULT_MULTI_FETCH_SIZE =
1

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Account

Returns a new instance of Account.



17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/imap/backup/account.rb', line 17

def initialize(options)
  @username = options[:username]
  @password = options[:password]
  @local_path = options[:local_path]
  @folders = options[:folders]
  @mirror_mode = options[:mirror_mode]
  @server = options[:server]
  @connection_options = options[:connection_options]
  @multi_fetch_size = options[:multi_fetch_size]
  @reset_seen_flags_after_fetch = options[:reset_seen_flags_after_fetch]
  @connection = nil
  @changes = {}
  @marked_for_deletion = false
end

Instance Attribute Details

#changes ⇒ Object (readonly)

Returns the value of attribute changes.



15
16
17
# File 'lib/imap/backup/account.rb', line 15

def changes
  @changes
end

#connection_options ⇒ Object

Returns the value of attribute connection_options.



13
14
15
# File 'lib/imap/backup/account.rb', line 13

def connection_options
  @connection_options
end

#folders ⇒ Object

Returns the value of attribute folders.



10
11
12
# File 'lib/imap/backup/account.rb', line 10

def folders
  @folders
end

#local_path ⇒ Object

Returns the value of attribute local_path.



9
10
11
# File 'lib/imap/backup/account.rb', line 9

def local_path
  @local_path
end

#mirror_mode ⇒ Object

Returns the value of attribute mirror_mode.



11
12
13
# File 'lib/imap/backup/account.rb', line 11

def mirror_mode
  @mirror_mode
end

#password ⇒ Object

Returns the value of attribute password.



8
9
10
# File 'lib/imap/backup/account.rb', line 8

def password
  @password
end

#reset_seen_flags_after_fetch ⇒ Object

Returns the value of attribute reset_seen_flags_after_fetch.



14
15
16
# File 'lib/imap/backup/account.rb', line 14

def reset_seen_flags_after_fetch
  @reset_seen_flags_after_fetch
end

#server ⇒ Object

Returns the value of attribute server.



12
13
14
# File 'lib/imap/backup/account.rb', line 12

def server
  @server
end

#username ⇒ Object

Returns the value of attribute username.



7
8
9
# File 'lib/imap/backup/account.rb', line 7

def username
  @username
end

Instance Method Details

#clear_changes ⇒ Object



44
45
46
# File 'lib/imap/backup/account.rb', line 44

def clear_changes
  @changes = {}
end

#connection ⇒ Object



32
33
34
# File 'lib/imap/backup/account.rb', line 32

def connection
  @connection ||= Account::Connection.new(self)
end

#mark_for_deletion ⇒ Object



48
49
50
# File 'lib/imap/backup/account.rb', line 48

def mark_for_deletion
  @marked_for_deletion = true
end

#marked_for_deletion? ⇒ Boolean

Returns:

  • (Boolean)


52
53
54
# File 'lib/imap/backup/account.rb', line 52

def marked_for_deletion?
  @marked_for_deletion
end

#modified? ⇒ Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/imap/backup/account.rb', line 40

def modified?
  changes.any?
end

#multi_fetch_size ⇒ Object



101
102
103
104
105
106
107
108
# File 'lib/imap/backup/account.rb', line 101

def multi_fetch_size
  int = @multi_fetch_size.to_i
  if int.positive?
    int
  else
    DEFAULT_MULTI_FETCH_SIZE
  end
end

#multi_fetch_size=(value) ⇒ Object



110
111
112
113
114
# File 'lib/imap/backup/account.rb', line 110

def multi_fetch_size=(value)
  parsed = value.to_i
  parsed = DEFAULT_MULTI_FETCH_SIZE if !parsed.positive?
  update(:multi_fetch_size, parsed)
end

#to_h ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/imap/backup/account.rb', line 56

def to_h
  h = {username: @username, password: @password}
  h[:local_path] = @local_path if @local_path
  h[:folders] = @folders if @folders
  h[:mirror_mode] = true if @mirror_mode
  h[:server] = @server if @server
  h[:connection_options] = @connection_options if @connection_options
  h[:multi_fetch_size] = multi_fetch_size if @multi_fetch_size
  if @reset_seen_flags_after_fetch
    h[:reset_seen_flags_after_fetch] = @reset_seen_flags_after_fetch
  end
  h
end

#valid? ⇒ Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/imap/backup/account.rb', line 36

def valid?
  username && password ? true : false
end