imap-backup 14.5.0 → 14.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ee294a8f4d7c0af90c725939b3f4cd7826ac521194460af3446e7cf5378629f4
4
- data.tar.gz: c67cac7ddfb2448a9cb22b642b53be02b157959d51f3677bc37ec891da2471c8
3
+ metadata.gz: e2b34662687d096c2dc7e4522910a009d12aeb4eb6f57c66c9f352ca3e1d8051
4
+ data.tar.gz: 993b38940bf5c037cdf56a088b0dde8e380ec6bb081f1268eeddad72f6d9ea76
5
5
  SHA512:
6
- metadata.gz: e1b2f9affe114ea775b4f7f7d4d2db4349e03b3ccb842885b3423c28c2b84ff6e8872b224a520654e0cef8eb353e9f0ea268e9d0dcda2666b07709f5071a0db7
7
- data.tar.gz: 2feab585634685c45606d6e4668e52190af3fd193cf3c8468ea5b306a8834257c2944ca4c668ee5e1f9423ebfb3cf605de9d6c8052a983d57f3fe0df07d105c8
6
+ metadata.gz: 3cc751ae2e157ea6e1e6f59cff363c21536219fd732962f2a5d5b97e3c8373a9bf698868023cf212590d75b784f74b8a36a5c5c87d2e6005f71314aa1511be00
7
+ data.tar.gz: 0ed900bd4e5ae9b01c3d10cefeb35da2d4185788fd6aded23b1f957dfdfae476c1a6dabb2804a61a889b91359f03e74a208eb6e3c411af255f61aec7a18435ad
@@ -104,9 +104,12 @@ module Imap::Backup
104
104
  "path",
105
105
  type: "string",
106
106
  desc: "the path of the directory where backups are to be saved. " \
107
- "If the directory does not exists, it will be created. " \
107
+ "If the directory does not exist, it will be created. " \
108
108
  "If not set, this is set to a diretory under the current path " \
109
- "which is derived from the username, by replacing '@' with '_'.",
109
+ "which is derived from the username, by replacing '@' with '_'." \
110
+ "If this path parameter is not indicated, " \
111
+ "the default is the current directory plus the email " \
112
+ "with '@' replaced by '_'.",
110
113
  aliases: ["-P"]
111
114
  )
112
115
  method_option(
@@ -108,6 +108,7 @@ module Imap::Backup
108
108
  def delete
109
109
  return if !exist?
110
110
 
111
+ Logger.logger.info("Deleting metadata file '#{pathname}'")
111
112
  FileUtils.rm(pathname)
112
113
  @loaded = false
113
114
  @messages = nil
@@ -70,6 +70,7 @@ module Imap::Backup
70
70
  def delete
71
71
  return if !exist?
72
72
 
73
+ Logger.logger.info("Deleting mailbox '#{pathname}'")
73
74
  FileUtils.rm(pathname)
74
75
  end
75
76
 
@@ -28,7 +28,41 @@ module Imap::Backup
28
28
  extend Forwardable
29
29
 
30
30
  def_delegator :mbox, :pathname, :mbox_pathname
31
- def_delegators :imap, :get, :messages, :uid_validity, :uids, :update_uid
31
+
32
+ # Get message metadata
33
+ # @param uid [Integer] a message UID
34
+ # @return [Serializer::Message]
35
+ def get(uid)
36
+ validate!
37
+ imap.get(uid)
38
+ end
39
+
40
+ # @return [Array<Hash>]
41
+ def messages
42
+ validate!
43
+ imap.messages
44
+ end
45
+
46
+ # @return [Integer] the UID validity for the folder
47
+ def uid_validity
48
+ validate!
49
+ imap.uid_validity
50
+ end
51
+
52
+ # @return [Array<Integer>] The uids of all messages
53
+ def uids
54
+ validate!
55
+ imap.uids
56
+ end
57
+
58
+ # Update a message's metadata, replacing its UID
59
+ # @param old [Integer] the existing message UID
60
+ # @param new [Integer] the new UID to apply to the message
61
+ # @return [void]
62
+ def update_uid(old, new)
63
+ validate!
64
+ imap.update_uid(old, new)
65
+ end
32
66
 
33
67
  # @return [String] a folder name
34
68
  attr_reader :folder
@@ -62,10 +96,16 @@ module Imap::Backup
62
96
 
63
97
  optionally_migrate2to3
64
98
 
65
- if imap.valid? && mbox.valid?
99
+ imap_valid = imap.valid?
100
+ mbox_valid = mbox.valid?
101
+ if imap_valid && mbox_valid
66
102
  @validated = true
67
103
  return true
68
104
  end
105
+ warn_imap = !imap_valid && imap.exist?
106
+ Logger.logger.info("Metadata file '#{imap.pathname}' is invalid") if warn_imap
107
+ warn_mbox = !mbox_valid && mbox.exist?
108
+ Logger.logger.info("Mailbox '#{mbox.pathname}' is invalid") if warn_mbox
69
109
 
70
110
  delete
71
111
 
@@ -247,6 +287,8 @@ module Imap::Backup
247
287
  MESSAGE
248
288
 
249
289
  migrator.run
290
+ # Ensure new metadata gets loaded
291
+ @imap = nil
250
292
  end
251
293
 
252
294
  def ensure_containing_directory
@@ -6,7 +6,7 @@ module Imap::Backup
6
6
  # @private
7
7
  MINOR = 5
8
8
  # @private
9
- REVISION = 0
9
+ REVISION = 2
10
10
  # @private
11
11
  PRE = nil
12
12
  # The application version
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: imap-backup
3
3
  version: !ruby/object:Gem::Version
4
- version: 14.5.0
4
+ version: 14.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joe Yates
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-13 00:00:00.000000000 Z
11
+ date: 2024-01-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: highline
@@ -233,7 +233,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
233
233
  - !ruby/object:Gem::Version
234
234
  version: '0'
235
235
  requirements: []
236
- rubygems_version: 3.4.10
236
+ rubygems_version: 3.5.3
237
237
  signing_key:
238
238
  specification_version: 4
239
239
  summary: Backup GMail (or other IMAP) accounts to disk