vmail 1.4.2 → 1.4.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
+