vmail 1.4.2 → 1.4.3

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.
@@ -14,15 +14,6 @@ module Vmail
14
14
 
15
15
  DIVIDER_WIDTH = 46
16
16
 
17
- MailboxAliases = { 'sent' => '[Gmail]/Sent Mail',
18
- 'all' => '[Gmail]/All Mail',
19
- 'starred' => '[Gmail]/Starred',
20
- 'important' => '[Gmail]/Important',
21
- 'drafts' => '[Gmail]/Drafts',
22
- 'spam' => '[Gmail]/Spam',
23
- 'trash' => '[Gmail]/Trash'
24
- }
25
-
26
17
  attr_accessor :max_seqno # of current mailbox
27
18
 
28
19
  def initialize(config)
@@ -37,6 +28,7 @@ module Vmail
37
28
  @current_mail = nil
38
29
  @current_message_uid = nil
39
30
  @width = 140
31
+ @prefix = "Gmail"
40
32
  end
41
33
 
42
34
  # holds mail objects keyed by [mailbox, uid]
@@ -74,8 +66,8 @@ module Vmail
74
66
  end
75
67
 
76
68
  def select_mailbox(mailbox, force=false)
77
- if MailboxAliases[mailbox]
78
- mailbox = MailboxAliases[mailbox]
69
+ if mailbox_aliases[mailbox]
70
+ mailbox = mailbox_aliases[mailbox]
79
71
  end
80
72
  if mailbox == @mailbox && !force
81
73
  return
@@ -148,16 +140,30 @@ module Vmail
148
140
 
149
141
  def list_mailboxes
150
142
  log 'loading mailboxes...'
151
- @mailboxes ||= ((@imap.list("[Gmail]/", "%") || []) + (@imap.list("", "*")) || []).
143
+ @mailboxes ||= ((@imap.list("[#@prefix]/", "%") || []) + (@imap.list("", "*")) || []).
152
144
  select {|struct| struct.attr.none? {|a| a == :Noselect} }.
153
145
  map {|struct| struct.name}.
154
- map {|name| MailboxAliases.invert[name] || name}
146
+ map {|name| mailbox_aliases.invert[name] || name}
155
147
  @mailboxes.delete("INBOX")
156
148
  @mailboxes.unshift("INBOX")
157
149
  log "loaded mailboxes: #{@mailboxes.inspect}"
150
+ if @mailboxes.detect {|m| m =~ /^\[Google Mail\]/}
151
+ @prefix = "Google Mail"
152
+ end
158
153
  @mailboxes.join("\n")
159
154
  end
160
155
 
156
+ def mailbox_aliases
157
+ { "sent" => "[#@prefix]/Sent Mail",
158
+ "all" => "[#@prefix]/All Mail",
159
+ "starred" => "[#@prefix]/Starred",
160
+ "important" => "[#@prefix]/Important",
161
+ "drafts" => "[#@prefix]/Drafts",
162
+ "spam" => "[#@prefix]/Spam",
163
+ "trash" => "[#@prefix]/Trash"
164
+ }
165
+ end
166
+
161
167
  # called internally, not by vim client
162
168
  def mailboxes
163
169
  if @mailboxes.nil?
@@ -209,7 +215,7 @@ module Vmail
209
215
  envelope = fetch_data.attr["ENVELOPE"]
210
216
  size = fetch_data.attr["RFC822.SIZE"]
211
217
  flags = fetch_data.attr["FLAGS"]
212
- address_struct = if @mailbox == '[Gmail]/Sent Mail'
218
+ address_struct = if @mailbox == "[#@prefix]/Sent Mail"
213
219
  structs = envelope.to || envelope.cc
214
220
  structs.nil? ? nil : structs.first
215
221
  else
@@ -222,7 +228,7 @@ module Vmail
222
228
  else
223
229
  [Mail::Encodings.unquote_and_convert_to(address_struct.mailbox, 'UTF-8'), Mail::Encodings.unquote_and_convert_to(address_struct.host, 'UTF-8')].join('@')
224
230
  end
225
- if @mailbox == '[Gmail]/Sent Mail' && envelope.to && envelope.cc
231
+ if @mailbox == "[#@prefix]/Sent Mail" && envelope.to && envelope.cc
226
232
  total_recips = (envelope.to + envelope.cc).size
227
233
  address += " + #{total_recips - 1}"
228
234
  end
@@ -500,21 +506,21 @@ EOF
500
506
  decrement_max_seqno(uid_set.size)
501
507
  # for delete, do in a separate thread because deletions are slow
502
508
  spawn_thread_if_tty do
503
- unless @mailbox == '[Gmail]/Trash'
504
- log "@imap.uid_copy #{uid_set.inspect} to trash"
505
- log @imap.uid_copy(uid_set, "[Gmail]/Trash")
509
+ unless @mailbox == "[#@prefix]/Trash"
510
+ log "@imap.uid_copy #{uid_set.inspect} to [#@prefix]/Trash"
511
+ log @imap.uid_copy(uid_set, "[#@prefix]/Trash")
506
512
  end
507
513
  log "@imap.uid_store #{uid_set.inspect} #{action} [#{flg.to_sym}]"
508
514
  log @imap.uid_store(uid_set, action, [flg.to_sym])
509
515
  reload_mailbox
510
516
  clear_cached_message
511
517
  end
512
- elsif flg == 'spam' || flg == '[Gmail]/Spam'
518
+ elsif flg == 'spam' || flg == "[#@prefix]/Spam"
513
519
  log "Marking as spam uid_set: #{uid_set.inspect}"
514
520
  decrement_max_seqno(uid_set.size)
515
521
  spawn_thread_if_tty do
516
- log "@imap.uid_copy #{uid_set.inspect} to spam"
517
- log @imap.uid_copy(uid_set, "[Gmail]/Spam")
522
+ log "@imap.uid_copy #{uid_set.inspect} to [#@prefix]/Spam"
523
+ log @imap.uid_copy(uid_set, "[#@prefix]/Spam")
518
524
  log "@imap.uid_store #{uid_set.inspect} #{action} [:Deleted]"
519
525
  log @imap.uid_store(uid_set, action, [:Deleted])
520
526
  reload_mailbox
@@ -536,8 +542,8 @@ EOF
536
542
  if mailbox == 'all'
537
543
  log "archiving messages"
538
544
  end
539
- if MailboxAliases[mailbox]
540
- mailbox = MailboxAliases[mailbox]
545
+ if mailbox_aliases[mailbox]
546
+ mailbox = mailbox_aliases[mailbox]
541
547
  end
542
548
  create_if_necessary mailbox
543
549
  log "moving uid_set: #{uid_set.inspect} to #{mailbox}"
@@ -552,8 +558,8 @@ EOF
552
558
 
553
559
  def copy_to(uid_set, mailbox)
554
560
  uid_set = uid_set.split(',').map(&:to_i)
555
- if MailboxAliases[mailbox]
556
- mailbox = MailboxAliases[mailbox]
561
+ if mailbox_aliases[mailbox]
562
+ mailbox = mailbox_aliases[mailbox]
557
563
  end
558
564
  create_if_necessary mailbox
559
565
  log "copying #{uid_set.inspect} to #{mailbox}"
@@ -574,7 +580,7 @@ EOF
574
580
  end
575
581
 
576
582
  def create_if_necessary(mailbox)
577
- current_mailboxes = mailboxes.map {|m| MailboxAliases[m] || m}
583
+ current_mailboxes = mailboxes.map {|m| mailbox_aliases[m] || m}
578
584
  if !current_mailboxes.include?(mailbox)
579
585
  log "current mailboxes: #{current_mailboxes.inspect}"
580
586
  log "creating mailbox #{mailbox}"
data/lib/vmail/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Vmail
2
- VERSION = "1.4.2"
2
+ VERSION = "1.4.3"
3
3
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 1
7
7
  - 4
8
- - 2
9
- version: 1.4.2
8
+ - 3
9
+ version: 1.4.3
10
10
  platform: ruby
11
11
  authors:
12
12
  - Daniel Choi
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-01-17 00:00:00 -05:00
17
+ date: 2011-01-18 00:00:00 -05:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -162,20 +162,5 @@ rubygems_version: 1.3.7
162
162
  signing_key:
163
163
  specification_version: 3
164
164
  summary: A Vim interface to Gmail
165
- test_files:
166
- - test/address_quoter_test.rb
167
- - test/base64_test.rb
168
- - test/fixtures/euc-kr-header.eml
169
- - test/fixtures/euc-kr-html.eml
170
- - test/fixtures/google-affiliate.eml
171
- - test/fixtures/htmlbody.eml
172
- - test/fixtures/moleskine-html.eml
173
- - test/fixtures/reply-template-encoding-test.eml
174
- - test/fixtures/reply_all.eml
175
- - test/fixtures/rfc_part.eml
176
- - test/fixtures/textbody-nocontenttype.eml
177
- - test/fixtures/with-attachments.eml
178
- - test/message_formatter_test.rb
179
- - test/reply_template_test.rb
180
- - test/test_helper.rb
181
- - test/time_format_test.rb
165
+ test_files: []
166
+