vmail 1.3.0 → 1.3.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +7 -4
- data/lib/vmail.rb +1 -1
- data/lib/vmail.vim +2 -1
- data/lib/vmail/address_quoter.rb +16 -0
- data/lib/vmail/imap_client.rb +7 -0
- data/lib/vmail/version.rb +1 -1
- data/test/address_quoter_test.rb +19 -0
- metadata +5 -2
data/Rakefile
CHANGED
@@ -35,10 +35,13 @@ desc "Run tests"
|
|
35
35
|
task :test do
|
36
36
|
$:.unshift File.expand_path("test")
|
37
37
|
require 'test_helper'
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
38
|
+
Dir.chdir("test") do
|
39
|
+
Dir['*_test.rb'].each do |x|
|
40
|
+
puts "requiring #{x}"
|
41
|
+
require x
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
42
45
|
MiniTest::Unit.autorun
|
43
46
|
end
|
44
47
|
|
data/lib/vmail.rb
CHANGED
data/lib/vmail.vim
CHANGED
@@ -766,6 +766,7 @@ func! s:message_window_mappings()
|
|
766
766
|
noremap <silent> <buffer> <Leader>c :call <SID>compose_message()<CR>
|
767
767
|
noremap <silent> <buffer> <Leader>h :call <SID>open_html_part()<CR><cr>
|
768
768
|
nnoremap <silent> <buffer> q :call <SID>close_message_window()<cr>
|
769
|
+
nmap <silent> <buffer> <leader>q q
|
769
770
|
|
770
771
|
nnoremap <silent> <buffer> <leader># :close<cr>:call <SID>focus_list_window()<cr>:call <SID>delete_messages("Deleted")<cr>
|
771
772
|
nnoremap <silent> <buffer> <leader>* :call <SID>focus_list_window()<cr>:call <SID>toggle_star()<cr>
|
@@ -793,6 +794,7 @@ func! s:message_list_window_mappings()
|
|
793
794
|
noremap <silent> <buffer> <LeftMouse> :call <SID>show_message(0)<CR>
|
794
795
|
nnoremap <silent> <buffer> l :call <SID>show_message(1)<CR>
|
795
796
|
noremap <silent> <buffer> q :qal!<cr>
|
797
|
+
nmap <silent> <buffer> <leader>q q
|
796
798
|
|
797
799
|
noremap <silent> <buffer> <leader>* :call <SID>toggle_star()<CR>
|
798
800
|
noremap <silent> <buffer> <leader># :call <SID>delete_messages("Deleted")<CR>
|
@@ -826,7 +828,6 @@ endfunc
|
|
826
828
|
|
827
829
|
func! s:compose_window_mappings()
|
828
830
|
noremap <silent> <buffer> <leader>q :call <SID>cancel_compose()<cr>
|
829
|
-
"nmap <silent> <buffer> q <leader>q
|
830
831
|
setlocal ai
|
831
832
|
" setlocal textwidth=72
|
832
833
|
autocmd CursorMoved <buffer> call <SID>toggle_textwidth()
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Vmail
|
2
|
+
module AddressQuoter
|
3
|
+
|
4
|
+
def quote_addresses(string)
|
5
|
+
email_addrs = []
|
6
|
+
string.scan(/\s*(.*?)\s*<(.+?)>(?:,|\Z)/) do |match|
|
7
|
+
# yields ["Bob Smith", "bobsmith@gmail.com"]
|
8
|
+
# then ["Jones, Rich A.", "richjones@gmail.com"]
|
9
|
+
email_addrs << "\"#{match.first}\" <#{match.last}>"
|
10
|
+
end
|
11
|
+
res = email_addrs.join(", ")
|
12
|
+
res
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
data/lib/vmail/imap_client.rb
CHANGED
@@ -6,9 +6,12 @@ require 'mail'
|
|
6
6
|
require 'net/imap'
|
7
7
|
require 'time'
|
8
8
|
require 'logger'
|
9
|
+
require 'vmail/address_quoter'
|
9
10
|
|
10
11
|
module Vmail
|
11
12
|
class ImapClient
|
13
|
+
include Vmail::AddressQuoter
|
14
|
+
|
12
15
|
DIVIDER_WIDTH = 46
|
13
16
|
|
14
17
|
MailboxAliases = { 'sent' => '[Gmail]/Sent Mail',
|
@@ -672,6 +675,10 @@ EOF
|
|
672
675
|
headers = {}
|
673
676
|
raw_headers.split("\n").each do |line|
|
674
677
|
key, value = *line.split(/:\s*/, 2)
|
678
|
+
log [key, value].join(':')
|
679
|
+
if %w(from to cc bcc).include?(key)
|
680
|
+
value = quote_addresses(value)
|
681
|
+
end
|
675
682
|
headers[key] = value
|
676
683
|
end
|
677
684
|
log "delivering message with headers: #{headers.to_yaml}"
|
data/lib/vmail/version.rb
CHANGED
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'vmail/address_quoter'
|
3
|
+
|
4
|
+
class AddressQuoterTest < MiniTest::Unit::TestCase
|
5
|
+
include Vmail::AddressQuoter
|
6
|
+
|
7
|
+
def setup
|
8
|
+
@string = "Bob Smith <bobsmith@gmail.com>, Jones, Rich A. <richjones@gmail.com>"
|
9
|
+
@expected = '"Bob Smith" <bobsmith@gmail.com>, "Jones, Rich A." <richjones@gmail.com>'
|
10
|
+
@string2 = "Jones, Rich A. <richjones@gmail.com>, Bob Smith <bobsmith@gmail.com>"
|
11
|
+
@expected2 = '"Jones, Rich A." <richjones@gmail.com>, "Bob Smith" <bobsmith@gmail.com>'
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_quoting
|
15
|
+
assert_equal @expected, quote_addresses(@string) #=> "Bob Smith" <bobsmith@gmail.com>, "Jones, Rich A." <richjones@gmail.com>
|
16
|
+
assert_equal @expected2, quote_addresses(@string2) #=> "Bob Smith" <bobsmith@gmail.com>, "Jones, Rich A." <richjones@gmail.com>
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 1
|
7
7
|
- 3
|
8
|
-
-
|
9
|
-
version: 1.3.
|
8
|
+
- 2
|
9
|
+
version: 1.3.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Daniel Choi
|
@@ -69,6 +69,7 @@ files:
|
|
69
69
|
- bin/vmailsend
|
70
70
|
- lib/vmail.rb
|
71
71
|
- lib/vmail.vim
|
72
|
+
- lib/vmail/address_quoter.rb
|
72
73
|
- lib/vmail/contacts_extractor.rb
|
73
74
|
- lib/vmail/imap_client.rb
|
74
75
|
- lib/vmail/message_formatter.rb
|
@@ -79,6 +80,7 @@ files:
|
|
79
80
|
- lib/vmail/sender.rb
|
80
81
|
- lib/vmail/string_ext.rb
|
81
82
|
- lib/vmail/version.rb
|
83
|
+
- test/address_quoter_test.rb
|
82
84
|
- test/base64_test.rb
|
83
85
|
- test/fixtures/euc-kr-header.eml
|
84
86
|
- test/fixtures/euc-kr-html.eml
|
@@ -161,6 +163,7 @@ signing_key:
|
|
161
163
|
specification_version: 3
|
162
164
|
summary: A Vim interface to Gmail
|
163
165
|
test_files:
|
166
|
+
- test/address_quoter_test.rb
|
164
167
|
- test/base64_test.rb
|
165
168
|
- test/fixtures/euc-kr-header.eml
|
166
169
|
- test/fixtures/euc-kr-html.eml
|