Class: Imap::Backup::Downloader
- Inherits:
-
Object
- Object
- Imap::Backup::Downloader
- Defined in:
- lib/imap/backup/downloader.rb
Instance Attribute Summary collapse
-
#folder ⇒ Object
readonly
Returns the value of attribute folder.
-
#multi_fetch_size ⇒ Object
readonly
Returns the value of attribute multi_fetch_size.
-
#serializer ⇒ Object
readonly
Returns the value of attribute serializer.
Instance Method Summary collapse
-
#initialize(folder, serializer, multi_fetch_size: 1) ⇒ Downloader
constructor
A new instance of Downloader.
- #run ⇒ Object
Constructor Details
#initialize(folder, serializer, multi_fetch_size: 1) ⇒ Downloader
Returns a new instance of Downloader.
9 10 11 12 13 14 |
# File 'lib/imap/backup/downloader.rb', line 9 def initialize(folder, serializer, multi_fetch_size: 1) @folder = folder @serializer = serializer @multi_fetch_size = multi_fetch_size @uids = nil end |
Instance Attribute Details
#folder ⇒ Object (readonly)
Returns the value of attribute folder.
5 6 7 |
# File 'lib/imap/backup/downloader.rb', line 5 def folder @folder end |
#multi_fetch_size ⇒ Object (readonly)
Returns the value of attribute multi_fetch_size.
7 8 9 |
# File 'lib/imap/backup/downloader.rb', line 7 def multi_fetch_size @multi_fetch_size end |
#serializer ⇒ Object (readonly)
Returns the value of attribute serializer.
6 7 8 |
# File 'lib/imap/backup/downloader.rb', line 6 def serializer @serializer end |
Instance Method Details
#run ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/imap/backup/downloader.rb', line 16 def run debug "#{uids.count} new messages" uids.each_slice(multi_fetch_size).with_index do |block, i| multifetch_failed = download_block(block, i) raise MultiFetchFailedError if multifetch_failed end rescue MultiFetchFailedError @count = nil @multi_fetch_size = 1 @uids = nil retry end |