sup 0.19.0 → 0.23

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.
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