sup 0.19.0 → 0.23

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +4 -1
  3. data/.gitmodules +3 -0
  4. data/.travis.yml +12 -6
  5. data/CONTRIBUTORS +28 -14
  6. data/Gemfile +5 -0
  7. data/History.txt +92 -0
  8. data/README.md +26 -5
  9. data/Rakefile +41 -1
  10. data/ReleaseNotes +17 -0
  11. data/bin/sup +12 -23
  12. data/bin/sup-add +15 -16
  13. data/bin/sup-config +30 -45
  14. data/bin/sup-dump +2 -3
  15. data/bin/sup-import-dump +5 -6
  16. data/bin/sup-sync +3 -4
  17. data/bin/sup-sync-back-maildir +3 -4
  18. data/bin/sup-tweak-labels +6 -7
  19. data/contrib/colorpicker.rb +0 -2
  20. data/contrib/completion/_sup.bash +102 -0
  21. data/devel/profile.rb +0 -1
  22. data/ext/mkrf_conf_xapian.rb +47 -0
  23. data/lib/sup.rb +10 -8
  24. data/lib/sup/buffer.rb +12 -0
  25. data/lib/sup/colormap.rb +5 -2
  26. data/lib/sup/contact.rb +4 -2
  27. data/lib/sup/crypto.rb +58 -16
  28. data/lib/sup/draft.rb +8 -8
  29. data/lib/sup/hook.rb +9 -9
  30. data/lib/sup/index.rb +20 -7
  31. data/lib/sup/label.rb +1 -1
  32. data/lib/sup/logger.rb +1 -1
  33. data/lib/sup/maildir.rb +16 -5
  34. data/lib/sup/mbox.rb +13 -5
  35. data/lib/sup/message.rb +36 -12
  36. data/lib/sup/message_chunks.rb +13 -4
  37. data/lib/sup/mode.rb +34 -28
  38. data/lib/sup/modes/contact_list_mode.rb +1 -0
  39. data/lib/sup/modes/edit_message_mode.rb +3 -2
  40. data/lib/sup/modes/forward_mode.rb +22 -3
  41. data/lib/sup/modes/line_cursor_mode.rb +1 -1
  42. data/lib/sup/modes/reply_mode.rb +3 -1
  43. data/lib/sup/modes/text_mode.rb +6 -1
  44. data/lib/sup/modes/thread_index_mode.rb +12 -2
  45. data/lib/sup/modes/thread_view_mode.rb +111 -14
  46. data/lib/sup/person.rb +68 -61
  47. data/lib/sup/search.rb +1 -1
  48. data/lib/sup/sent.rb +1 -1
  49. data/lib/sup/source.rb +1 -1
  50. data/lib/sup/util.rb +15 -94
  51. data/lib/sup/util/axe.rb +17 -0
  52. data/lib/sup/util/locale_fiddler.rb +24 -0
  53. data/lib/sup/util/ncurses.rb +3 -3
  54. data/lib/sup/version.rb +10 -1
  55. data/sup.gemspec +29 -11
  56. data/test/{messages → fixtures}/bad-content-transfer-encoding-1.eml +0 -0
  57. data/test/{messages → fixtures}/binary-content-transfer-encoding-2.eml +0 -0
  58. data/test/fixtures/blank-header-fields.eml +71 -0
  59. data/test/fixtures/contacts.txt +1 -0
  60. data/test/fixtures/mailing-list-header.eml +80 -0
  61. data/test/fixtures/malicious-attachment-names.eml +55 -0
  62. data/test/fixtures/missing-from-to.eml +18 -0
  63. data/test/{messages → fixtures}/missing-line.eml +0 -0
  64. data/test/fixtures/multi-part-2.eml +72 -0
  65. data/test/fixtures/multi-part.eml +61 -0
  66. data/test/fixtures/no-body.eml +18 -0
  67. data/test/fixtures/simple-message.eml +29 -0
  68. data/test/fixtures/text-attachments-with-charset.eml +46 -0
  69. data/test/fixtures/zimbra-quote-with-bottom-post.eml +27 -0
  70. data/test/gnupg_test_home/gpg.conf +3 -1
  71. data/test/gnupg_test_home/private-keys-v1.d/306D2EE90FF0014B5B9FD07E265C751791674140.key +0 -0
  72. data/test/gnupg_test_home/pubring.gpg +0 -0
  73. data/test/gnupg_test_home/receiver_pubring.gpg +0 -0
  74. data/test/gnupg_test_home/receiver_secring.gpg +0 -0
  75. data/test/gnupg_test_home/regen_keys.sh +89 -0
  76. data/test/gnupg_test_home/secring.gpg +0 -0
  77. data/test/gnupg_test_home/sup-test-2@foo.bar.asc +20 -17
  78. data/test/integration/test_maildir.rb +75 -0
  79. data/test/integration/test_mbox.rb +69 -0
  80. data/test/test_crypto.rb +14 -2
  81. data/test/test_header_parsing.rb +1 -1
  82. data/test/test_helper.rb +6 -3
  83. data/test/test_message.rb +115 -341
  84. data/test/test_messages_dir.rb +4 -28
  85. data/test/test_yaml_regressions.rb +1 -1
  86. data/test/unit/test_contact.rb +33 -0
  87. data/test/unit/test_locale_fiddler.rb +15 -0
  88. data/test/unit/test_person.rb +37 -0
  89. data/test/unit/util/test_query.rb +10 -4
  90. data/test/unit/util/test_string.rb +6 -0
  91. metadata +137 -53
  92. data/test/gnupg_test_home/receiver_trustdb.gpg +0 -0
  93. data/test/gnupg_test_home/trustdb.gpg +0 -0
@@ -6,27 +6,9 @@ require 'stringio'
6
6
 
7
7
  require 'dummy_source'
8
8
 
9
- # override File.exists? to make it work with StringIO for testing.
10
- # FIXME: do aliasing to avoid breaking this when sup moves from
11
- # File.exists? to File.exist?
12
-
13
- class File
14
-
15
- def File.exists? file
16
- # puts "fake File::exists?"
17
-
18
- if file.is_a?(StringIO)
19
- return false
20
- end
21
- # use the different function
22
- File.exist?(file)
23
- end
24
-
25
- end
26
-
27
9
  module Redwood
28
10
 
29
- class TestMessagesDir < ::Minitest::Unit::TestCase
11
+ class TestMessagesDir < ::Minitest::Test
30
12
 
31
13
  def setup
32
14
  @path = Dir.mktmpdir
@@ -40,9 +22,7 @@ class TestMessagesDir < ::Minitest::Unit::TestCase
40
22
 
41
23
  def test_binary_content_transfer_encoding
42
24
  message = ''
43
- File.open 'test/messages/binary-content-transfer-encoding-2.eml' do |f|
44
- message = f.read
45
- end
25
+ File.open('test/fixtures/binary-content-transfer-encoding-2.eml') { |f| message = f.read }
46
26
 
47
27
  source = DummySource.new("sup-test://test_messages")
48
28
  source.messages = [ message ]
@@ -74,9 +54,7 @@ class TestMessagesDir < ::Minitest::Unit::TestCase
74
54
 
75
55
  def test_bad_content_transfer_encoding
76
56
  message = ''
77
- File.open 'test/messages/bad-content-transfer-encoding-1.eml' do |f|
78
- message = f.read
79
- end
57
+ File.open('test/fixtures/bad-content-transfer-encoding-1.eml') { |f| message = f.read }
80
58
 
81
59
  source = DummySource.new("sup-test://test_messages")
82
60
  source.messages = [ message ]
@@ -108,9 +86,7 @@ class TestMessagesDir < ::Minitest::Unit::TestCase
108
86
 
109
87
  def test_missing_line
110
88
  message = ''
111
- File.open 'test/messages/missing-line.eml' do |f|
112
- message = f.read
113
- end
89
+ File.open('test/fixtures/missing-line.eml') { |f| message = f.read }
114
90
 
115
91
  source = DummySource.new("sup-test://test_messages")
116
92
  source.messages = [ message ]
@@ -6,7 +6,7 @@ require 'yaml'
6
6
  require 'sup'
7
7
 
8
8
  module Redwood
9
- class TestYamlRegressions < ::Minitest::Unit::TestCase
9
+ class TestYamlRegressions < ::Minitest::Test
10
10
  def test_yamling_hash
11
11
  hsh = {:foo => 42}
12
12
  reloaded = YAML.load(hsh.to_yaml)
@@ -0,0 +1,33 @@
1
+ require 'test_helper'
2
+ require 'sup/contact'
3
+
4
+ module Redwood
5
+
6
+ class TestContact < Minitest::Test
7
+ def setup
8
+ @contact = ContactManager.init(File.expand_path("../../fixtures/contacts.txt", __FILE__))
9
+ @person = Person.new "Terrible Name", "terrible@name.com"
10
+ end
11
+
12
+ def teardown
13
+ runner = Redwood.const_get "ContactManager".to_sym
14
+ runner.deinstantiate!
15
+ end
16
+
17
+ def test_contact_manager
18
+ assert @contact
19
+ ## 1 contact is imported from the fixture file.
20
+ assert_equal 1, @contact.contacts.count
21
+ assert_equal @contact.contact_for("RC").name, "Random Contact"
22
+
23
+ assert_nil @contact.contact_for "TN"
24
+ @contact.update_alias @person, "TN"
25
+
26
+ assert @contact.is_aliased_contact?(@person)
27
+ assert_equal @person, @contact.contact_for("TN")
28
+
29
+ assert_equal "TN", @contact.alias_for(@person)
30
+ end
31
+ end
32
+
33
+ end
@@ -0,0 +1,15 @@
1
+ require 'test_helper'
2
+ require 'sup/util/locale_fiddler'
3
+
4
+ class TestFiddle < ::Minitest::Unit::TestCase
5
+ # TODO this is a silly test
6
+ def test_fiddle_set_locale
7
+ before = LocaleDummy.setlocale(6, nil).to_s
8
+ after = LocaleDummy.setlocale(6, "").to_s
9
+ assert(before != after, "Expected locale to be fiddled with")
10
+ end
11
+ end
12
+
13
+ class LocaleDummy
14
+ extend LocaleFiddler
15
+ end
@@ -0,0 +1,37 @@
1
+ require 'test_helper'
2
+ require 'sup'
3
+
4
+ module Redwood
5
+
6
+ class TestPerson < Minitest::Test
7
+ def setup
8
+ @person = Person.new("Thomassen, Bob", "bob@thomassen.com")
9
+ @no_name = Person.new(nil, "alice@alice.com")
10
+ end
11
+
12
+ def test_email_must_be_supplied
13
+ assert_raises (ArgumentError) { Person.new("Alice", nil) }
14
+ end
15
+
16
+ def test_to_string
17
+ assert_equal "Thomassen, Bob <bob@thomassen.com>", "#{@person}"
18
+ assert_equal "alice@alice.com", "#{@no_name}"
19
+ end
20
+
21
+ def test_shortname
22
+ assert_equal "Bob", @person.shortname
23
+ assert_equal "alice@alice.com", @no_name.shortname
24
+ end
25
+
26
+ def test_mediumname
27
+ assert_equal "Thomassen, Bob", @person.mediumname
28
+ assert_equal "alice@alice.com", @no_name.mediumname
29
+ end
30
+
31
+ def test_fullname
32
+ assert_equal "\"Thomassen, Bob\" <bob@thomassen.com>", @person.full_address
33
+ assert_equal "alice@alice.com", @no_name.full_address
34
+ end
35
+ end
36
+
37
+ end
@@ -24,9 +24,14 @@ describe Redwood::Util::Query do
24
24
  query = Xapian::Query.new msg
25
25
  life = 'hæi'
26
26
 
27
- # this is now possibly UTF-8 string with possibly invalid chars
28
- assert_raises Redwood::Util::Query::QueryDescriptionError do
29
- desc = Redwood::Util::Query.describe (query)
27
+ if query.description.force_encoding("UTF-8").valid_encoding?
28
+ # xapian 1.4 internally handles this bad input
29
+ assert true
30
+ else
31
+ # xapian 1.2 doesn't handle this bad input, so we do
32
+ assert_raises Redwood::Util::Query::QueryDescriptionError do
33
+ desc = Redwood::Util::Query.describe (query)
34
+ end
30
35
  end
31
36
 
32
37
  assert_raises Encoding::CompatibilityError do
@@ -40,7 +45,8 @@ describe Redwood::Util::Query do
40
45
 
41
46
  desc = Redwood::Util::Query.describe(query, "invalid query")
42
47
 
43
- assert_equal("invalid query", desc)
48
+ assert desc.force_encoding("UTF-8").valid_encoding?
49
+
44
50
  end
45
51
  end
46
52
  end
@@ -11,6 +11,8 @@ describe "Sup's String extension" do
11
11
  ['some words', 10,],
12
12
  ['中文', 4,],
13
13
  ['ä', 1,],
14
+ ['😱', 2],
15
+ #['🏳️‍🌈', 2], # Emoji ZWJ sequence not yet supported (see PR #563)
14
16
  ]
15
17
  end
16
18
 
@@ -27,6 +29,8 @@ describe "Sup's String extension" do
27
29
  ['some words', 6, 'some w'],
28
30
  ['中文', 2, '中'],
29
31
  ['älpha', 3, 'älp'],
32
+ ['😱😱', 2, '😱'],
33
+ #['🏳️‍🌈', 2, '🏳️‍🌈'], # Emoji ZWJ sequence not yet supported (see PR #563)
30
34
  ]
31
35
  end
32
36
 
@@ -45,6 +49,8 @@ describe "Sup's String extension" do
45
49
  ['中文', 2, ['中', '文']],
46
50
  ['中文', 5, ['中文']],
47
51
  ['älpha', 3, ['älp', 'ha']],
52
+ ['😱😱', 2, ['😱', '😱']],
53
+ #['🏳️‍🌈🏳️‍🌈', 2, ['🏳️‍🌈', '🏳️‍🌈']], # Emoji ZWJ sequence not yet supported (see PR #563)
48
54
  ]
49
55
  end
50
56
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.19.0
4
+ version: '0.23'
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Morgan
@@ -11,22 +11,8 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2014-07-05 00:00:00.000000000 Z
14
+ date: 2020-07-10 00:00:00.000000000 Z
15
15
  dependencies:
16
- - !ruby/object:Gem::Dependency
17
- name: xapian-ruby
18
- requirement: !ruby/object:Gem::Requirement
19
- requirements:
20
- - - "~>"
21
- - !ruby/object:Gem::Version
22
- version: 1.2.15
23
- type: :runtime
24
- prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
26
- requirements:
27
- - - "~>"
28
- - !ruby/object:Gem::Version
29
- version: 1.2.15
30
16
  - !ruby/object:Gem::Dependency
31
17
  name: ncursesw
32
18
  requirement: !ruby/object:Gem::Requirement
@@ -42,19 +28,19 @@ dependencies:
42
28
  - !ruby/object:Gem::Version
43
29
  version: 1.4.0
44
30
  - !ruby/object:Gem::Dependency
45
- name: rmail-sup
31
+ name: rmail
46
32
  requirement: !ruby/object:Gem::Requirement
47
33
  requirements:
48
34
  - - "~>"
49
35
  - !ruby/object:Gem::Version
50
- version: 1.0.1
36
+ version: '1.1'
51
37
  type: :runtime
52
38
  prerelease: false
53
39
  version_requirements: !ruby/object:Gem::Requirement
54
40
  requirements:
55
41
  - - "~>"
56
42
  - !ruby/object:Gem::Version
57
- version: 1.0.1
43
+ version: '1.1'
58
44
  - !ruby/object:Gem::Dependency
59
45
  name: highline
60
46
  requirement: !ruby/object:Gem::Requirement
@@ -70,19 +56,19 @@ dependencies:
70
56
  - !ruby/object:Gem::Version
71
57
  version: '0'
72
58
  - !ruby/object:Gem::Dependency
73
- name: trollop
59
+ name: optimist
74
60
  requirement: !ruby/object:Gem::Requirement
75
61
  requirements:
76
62
  - - ">="
77
63
  - !ruby/object:Gem::Version
78
- version: '1.12'
64
+ version: '0'
79
65
  type: :runtime
80
66
  prerelease: false
81
67
  version_requirements: !ruby/object:Gem::Requirement
82
68
  requirements:
83
69
  - - ">="
84
70
  - !ruby/object:Gem::Version
85
- version: '1.12'
71
+ version: '0'
86
72
  - !ruby/object:Gem::Dependency
87
73
  name: lockfile
88
74
  requirement: !ruby/object:Gem::Requirement
@@ -101,16 +87,16 @@ dependencies:
101
87
  name: mime-types
102
88
  requirement: !ruby/object:Gem::Requirement
103
89
  requirements:
104
- - - "~>"
90
+ - - ">"
105
91
  - !ruby/object:Gem::Version
106
- version: '1.0'
92
+ version: '2.0'
107
93
  type: :runtime
108
94
  prerelease: false
109
95
  version_requirements: !ruby/object:Gem::Requirement
110
96
  requirements:
111
- - - "~>"
97
+ - - ">"
112
98
  - !ruby/object:Gem::Version
113
- version: '1.0'
99
+ version: '2.0'
114
100
  - !ruby/object:Gem::Dependency
115
101
  name: locale
116
102
  requirement: !ruby/object:Gem::Requirement
@@ -129,16 +115,16 @@ dependencies:
129
115
  name: chronic
130
116
  requirement: !ruby/object:Gem::Requirement
131
117
  requirements:
132
- - - "~>"
118
+ - - ">="
133
119
  - !ruby/object:Gem::Version
134
- version: 0.9.1
120
+ version: '0'
135
121
  type: :runtime
136
122
  prerelease: false
137
123
  version_requirements: !ruby/object:Gem::Requirement
138
124
  requirements:
139
- - - "~>"
125
+ - - ">="
140
126
  - !ruby/object:Gem::Version
141
- version: 0.9.1
127
+ version: '0'
142
128
  - !ruby/object:Gem::Dependency
143
129
  name: unicode
144
130
  requirement: !ruby/object:Gem::Requirement
@@ -153,20 +139,40 @@ dependencies:
153
139
  - - "~>"
154
140
  - !ruby/object:Gem::Version
155
141
  version: 0.4.4
142
+ - !ruby/object:Gem::Dependency
143
+ name: unicode-display_width
144
+ requirement: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ version: '0'
149
+ type: :runtime
150
+ prerelease: false
151
+ version_requirements: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ version: '0'
156
156
  - !ruby/object:Gem::Dependency
157
157
  name: bundler
158
158
  requirement: !ruby/object:Gem::Requirement
159
159
  requirements:
160
- - - "~>"
160
+ - - ">="
161
161
  - !ruby/object:Gem::Version
162
162
  version: '1.3'
163
+ - - "<"
164
+ - !ruby/object:Gem::Version
165
+ version: '3'
163
166
  type: :development
164
167
  prerelease: false
165
168
  version_requirements: !ruby/object:Gem::Requirement
166
169
  requirements:
167
- - - "~>"
170
+ - - ">="
168
171
  - !ruby/object:Gem::Version
169
172
  version: '1.3'
173
+ - - "<"
174
+ - !ruby/object:Gem::Version
175
+ version: '3'
170
176
  - !ruby/object:Gem::Dependency
171
177
  name: rake
172
178
  requirement: !ruby/object:Gem::Requirement
@@ -187,28 +193,28 @@ dependencies:
187
193
  requirements:
188
194
  - - "~>"
189
195
  - !ruby/object:Gem::Version
190
- version: '4.7'
196
+ version: 5.5.1
191
197
  type: :development
192
198
  prerelease: false
193
199
  version_requirements: !ruby/object:Gem::Requirement
194
200
  requirements:
195
201
  - - "~>"
196
202
  - !ruby/object:Gem::Version
197
- version: '4.7'
203
+ version: 5.5.1
198
204
  - !ruby/object:Gem::Dependency
199
205
  name: rr
200
206
  requirement: !ruby/object:Gem::Requirement
201
207
  requirements:
202
208
  - - "~>"
203
209
  - !ruby/object:Gem::Version
204
- version: 1.0.5
210
+ version: '1.1'
205
211
  type: :development
206
212
  prerelease: false
207
213
  version_requirements: !ruby/object:Gem::Requirement
208
214
  requirements:
209
215
  - - "~>"
210
216
  - !ruby/object:Gem::Version
211
- version: 1.0.5
217
+ version: '1.1'
212
218
  - !ruby/object:Gem::Dependency
213
219
  name: gpgme
214
220
  requirement: !ruby/object:Gem::Requirement
@@ -223,6 +229,20 @@ dependencies:
223
229
  - - ">="
224
230
  - !ruby/object:Gem::Version
225
231
  version: 2.0.2
232
+ - !ruby/object:Gem::Dependency
233
+ name: pry
234
+ requirement: !ruby/object:Gem::Requirement
235
+ requirements:
236
+ - - ">="
237
+ - !ruby/object:Gem::Version
238
+ version: '0'
239
+ type: :development
240
+ prerelease: false
241
+ version_requirements: !ruby/object:Gem::Requirement
242
+ requirements:
243
+ - - ">="
244
+ - !ruby/object:Gem::Version
245
+ version: '0'
226
246
  description: |2
227
247
  Sup is a console-based email client for people with a lot of email.
228
248
 
@@ -244,10 +264,22 @@ executables:
244
264
  - sup-sync
245
265
  - sup-sync-back-maildir
246
266
  - sup-tweak-labels
247
- extensions: []
248
- extra_rdoc_files: []
267
+ extensions:
268
+ - ext/mkrf_conf_xapian.rb
269
+ extra_rdoc_files:
270
+ - man/sup-add.1
271
+ - man/sup-config.1
272
+ - man/sup-dump.1
273
+ - man/sup-import-dump.1
274
+ - man/sup-psych-ify-config-files.1
275
+ - man/sup-recover-sources.1
276
+ - man/sup-sync-back-maildir.1
277
+ - man/sup-sync.1
278
+ - man/sup-tweak-labels.1
279
+ - man/sup.1
249
280
  files:
250
281
  - ".gitignore"
282
+ - ".gitmodules"
251
283
  - ".travis.yml"
252
284
  - CONTRIBUTORS
253
285
  - Gemfile
@@ -268,6 +300,7 @@ files:
268
300
  - bin/sup-sync-back-maildir
269
301
  - bin/sup-tweak-labels
270
302
  - contrib/colorpicker.rb
303
+ - contrib/completion/_sup.bash
271
304
  - contrib/completion/_sup.zsh
272
305
  - devel/console.sh
273
306
  - devel/count-loc.sh
@@ -277,6 +310,7 @@ files:
277
310
  - doc/FAQ.txt
278
311
  - doc/Hooks.txt
279
312
  - doc/Philosophy.txt
313
+ - ext/mkrf_conf_xapian.rb
280
314
  - lib/sup.rb
281
315
  - lib/sup/account.rb
282
316
  - lib/sup/buffer.rb
@@ -337,25 +371,51 @@ files:
337
371
  - lib/sup/undo.rb
338
372
  - lib/sup/update.rb
339
373
  - lib/sup/util.rb
374
+ - lib/sup/util/axe.rb
375
+ - lib/sup/util/locale_fiddler.rb
340
376
  - lib/sup/util/ncurses.rb
341
377
  - lib/sup/util/path.rb
342
378
  - lib/sup/util/query.rb
343
379
  - lib/sup/util/uri.rb
344
380
  - lib/sup/version.rb
381
+ - man/sup-add.1
382
+ - man/sup-config.1
383
+ - man/sup-dump.1
384
+ - man/sup-import-dump.1
385
+ - man/sup-psych-ify-config-files.1
386
+ - man/sup-recover-sources.1
387
+ - man/sup-sync-back-maildir.1
388
+ - man/sup-sync.1
389
+ - man/sup-tweak-labels.1
390
+ - man/sup.1
345
391
  - sup.gemspec
346
392
  - test/dummy_source.rb
393
+ - test/fixtures/bad-content-transfer-encoding-1.eml
394
+ - test/fixtures/binary-content-transfer-encoding-2.eml
395
+ - test/fixtures/blank-header-fields.eml
396
+ - test/fixtures/contacts.txt
397
+ - test/fixtures/mailing-list-header.eml
398
+ - test/fixtures/malicious-attachment-names.eml
399
+ - test/fixtures/missing-from-to.eml
400
+ - test/fixtures/missing-line.eml
401
+ - test/fixtures/multi-part-2.eml
402
+ - test/fixtures/multi-part.eml
403
+ - test/fixtures/no-body.eml
404
+ - test/fixtures/simple-message.eml
405
+ - test/fixtures/text-attachments-with-charset.eml
406
+ - test/fixtures/zimbra-quote-with-bottom-post.eml
407
+ - test/gnupg_test_home/.gpg-v21-migrated
347
408
  - test/gnupg_test_home/gpg.conf
409
+ - test/gnupg_test_home/private-keys-v1.d/306D2EE90FF0014B5B9FD07E265C751791674140.key
348
410
  - test/gnupg_test_home/pubring.gpg
349
411
  - test/gnupg_test_home/receiver_pubring.gpg
350
412
  - test/gnupg_test_home/receiver_secring.gpg
351
- - test/gnupg_test_home/receiver_trustdb.gpg
413
+ - test/gnupg_test_home/regen_keys.sh
352
414
  - test/gnupg_test_home/secring.gpg
353
415
  - test/gnupg_test_home/sup-test-2@foo.bar.asc
354
- - test/gnupg_test_home/trustdb.gpg
355
416
  - test/integration/test_label_service.rb
356
- - test/messages/bad-content-transfer-encoding-1.eml
357
- - test/messages/binary-content-transfer-encoding-2.eml
358
- - test/messages/missing-line.eml
417
+ - test/integration/test_maildir.rb
418
+ - test/integration/test_mbox.rb
359
419
  - test/test_crypto.rb
360
420
  - test/test_header_parsing.rb
361
421
  - test/test_helper.rb
@@ -364,18 +424,26 @@ files:
364
424
  - test/test_yaml_migration.rb
365
425
  - test/test_yaml_regressions.rb
366
426
  - test/unit/service/test_label_service.rb
427
+ - test/unit/test_contact.rb
367
428
  - test/unit/test_horizontal_selector.rb
429
+ - test/unit/test_locale_fiddler.rb
430
+ - test/unit/test_person.rb
368
431
  - test/unit/util/test_query.rb
369
432
  - test/unit/util/test_string.rb
370
433
  - test/unit/util/test_uri.rb
371
- homepage: http://supmua.org
434
+ homepage: https://sup-heliotrope.github.io/
372
435
  licenses:
373
- - GPL-2
436
+ - GPL-2.0
374
437
  metadata: {}
375
438
  post_install_message: |
376
439
  SUP: please note that our old mailing lists have been shut down,
377
440
  re-subscribe to supmua@googlegroups.com to discuss and follow
378
441
  updates on sup (send email to: supmua+subscribe@googlegroups.com).
442
+
443
+ OpenBSD users:
444
+ If your operating system is OpenBSD you have some
445
+ additional, manual steps to do before Sup will work, see:
446
+ https://github.com/sup-heliotrope/sup/wiki/Installation%3A-OpenBSD.
379
447
  rdoc_options: []
380
448
  require_paths:
381
449
  - lib
@@ -383,32 +451,45 @@ required_ruby_version: !ruby/object:Gem::Requirement
383
451
  requirements:
384
452
  - - ">="
385
453
  - !ruby/object:Gem::Version
386
- version: 1.9.3
454
+ version: 2.0.0
387
455
  required_rubygems_version: !ruby/object:Gem::Requirement
388
456
  requirements:
389
457
  - - ">="
390
458
  - !ruby/object:Gem::Version
391
459
  version: '0'
392
460
  requirements: []
393
- rubyforge_project:
394
- rubygems_version: 2.2.2
461
+ rubygems_version: 3.1.2
395
462
  signing_key:
396
463
  specification_version: 4
397
464
  summary: A console-based email client with the best features of GMail, mutt and Emacs
398
465
  test_files:
399
466
  - test/dummy_source.rb
467
+ - test/fixtures/bad-content-transfer-encoding-1.eml
468
+ - test/fixtures/binary-content-transfer-encoding-2.eml
469
+ - test/fixtures/blank-header-fields.eml
470
+ - test/fixtures/contacts.txt
471
+ - test/fixtures/mailing-list-header.eml
472
+ - test/fixtures/malicious-attachment-names.eml
473
+ - test/fixtures/missing-from-to.eml
474
+ - test/fixtures/missing-line.eml
475
+ - test/fixtures/multi-part-2.eml
476
+ - test/fixtures/multi-part.eml
477
+ - test/fixtures/no-body.eml
478
+ - test/fixtures/simple-message.eml
479
+ - test/fixtures/text-attachments-with-charset.eml
480
+ - test/fixtures/zimbra-quote-with-bottom-post.eml
481
+ - test/gnupg_test_home/.gpg-v21-migrated
400
482
  - test/gnupg_test_home/gpg.conf
483
+ - test/gnupg_test_home/private-keys-v1.d/306D2EE90FF0014B5B9FD07E265C751791674140.key
401
484
  - test/gnupg_test_home/pubring.gpg
402
485
  - test/gnupg_test_home/receiver_pubring.gpg
403
486
  - test/gnupg_test_home/receiver_secring.gpg
404
- - test/gnupg_test_home/receiver_trustdb.gpg
487
+ - test/gnupg_test_home/regen_keys.sh
405
488
  - test/gnupg_test_home/secring.gpg
406
489
  - test/gnupg_test_home/sup-test-2@foo.bar.asc
407
- - test/gnupg_test_home/trustdb.gpg
408
490
  - test/integration/test_label_service.rb
409
- - test/messages/bad-content-transfer-encoding-1.eml
410
- - test/messages/binary-content-transfer-encoding-2.eml
411
- - test/messages/missing-line.eml
491
+ - test/integration/test_maildir.rb
492
+ - test/integration/test_mbox.rb
412
493
  - test/test_crypto.rb
413
494
  - test/test_header_parsing.rb
414
495
  - test/test_helper.rb
@@ -417,7 +498,10 @@ test_files:
417
498
  - test/test_yaml_migration.rb
418
499
  - test/test_yaml_regressions.rb
419
500
  - test/unit/service/test_label_service.rb
501
+ - test/unit/test_contact.rb
420
502
  - test/unit/test_horizontal_selector.rb
503
+ - test/unit/test_locale_fiddler.rb
504
+ - test/unit/test_person.rb
421
505
  - test/unit/util/test_query.rb
422
506
  - test/unit/util/test_string.rb
423
507
  - test/unit/util/test_uri.rb