sup 0.20.0 → 1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +2 -1
  3. data/.travis.yml +11 -6
  4. data/CONTRIBUTORS +27 -15
  5. data/Gemfile +2 -1
  6. data/History.txt +84 -0
  7. data/README.md +26 -5
  8. data/Rakefile +0 -1
  9. data/ReleaseNotes +7 -0
  10. data/bin/sup +17 -30
  11. data/bin/sup-add +15 -16
  12. data/bin/sup-config +30 -45
  13. data/bin/sup-dump +2 -3
  14. data/bin/sup-import-dump +5 -6
  15. data/bin/sup-sync +3 -4
  16. data/bin/sup-sync-back-maildir +3 -4
  17. data/bin/sup-tweak-labels +6 -7
  18. data/contrib/colorpicker.rb +0 -2
  19. data/contrib/completion/_sup.bash +102 -0
  20. data/devel/profile.rb +0 -1
  21. data/ext/mkrf_conf_xapian.rb +1 -1
  22. data/lib/sup.rb +8 -8
  23. data/lib/sup/colormap.rb +5 -2
  24. data/lib/sup/contact.rb +4 -2
  25. data/lib/sup/crypto.rb +58 -16
  26. data/lib/sup/draft.rb +8 -8
  27. data/lib/sup/hook.rb +9 -9
  28. data/lib/sup/index.rb +20 -7
  29. data/lib/sup/label.rb +1 -1
  30. data/lib/sup/logger.rb +1 -1
  31. data/lib/sup/maildir.rb +2 -2
  32. data/lib/sup/mbox.rb +2 -2
  33. data/lib/sup/message.rb +26 -10
  34. data/lib/sup/message_chunks.rb +7 -4
  35. data/lib/sup/mode.rb +34 -28
  36. data/lib/sup/modes/contact_list_mode.rb +1 -0
  37. data/lib/sup/modes/edit_message_mode.rb +1 -1
  38. data/lib/sup/modes/forward_mode.rb +22 -3
  39. data/lib/sup/modes/line_cursor_mode.rb +1 -1
  40. data/lib/sup/modes/reply_mode.rb +3 -1
  41. data/lib/sup/modes/text_mode.rb +6 -1
  42. data/lib/sup/modes/thread_index_mode.rb +6 -2
  43. data/lib/sup/modes/thread_view_mode.rb +63 -18
  44. data/lib/sup/person.rb +68 -61
  45. data/lib/sup/search.rb +1 -1
  46. data/lib/sup/sent.rb +1 -1
  47. data/lib/sup/source.rb +1 -1
  48. data/lib/sup/util.rb +15 -94
  49. data/lib/sup/util/axe.rb +17 -0
  50. data/lib/sup/util/locale_fiddler.rb +24 -0
  51. data/lib/sup/util/ncurses.rb +3 -3
  52. data/lib/sup/version.rb +10 -1
  53. data/sup.gemspec +12 -10
  54. data/test/{messages → fixtures}/bad-content-transfer-encoding-1.eml +0 -0
  55. data/test/{messages → fixtures}/binary-content-transfer-encoding-2.eml +0 -0
  56. data/test/fixtures/blank-header-fields.eml +71 -0
  57. data/test/fixtures/contacts.txt +1 -0
  58. data/test/fixtures/mailing-list-header.eml +80 -0
  59. data/test/fixtures/malicious-attachment-names.eml +55 -0
  60. data/test/fixtures/missing-from-to.eml +18 -0
  61. data/test/{messages → fixtures}/missing-line.eml +0 -0
  62. data/test/fixtures/multi-part-2.eml +72 -0
  63. data/test/fixtures/multi-part.eml +61 -0
  64. data/test/fixtures/no-body.eml +18 -0
  65. data/test/fixtures/simple-message.eml +29 -0
  66. data/test/fixtures/text-attachments-with-charset.eml +46 -0
  67. data/test/fixtures/zimbra-quote-with-bottom-post.eml +27 -0
  68. data/test/gnupg_test_home/gpg.conf +2 -1
  69. data/test/gnupg_test_home/private-keys-v1.d/306D2EE90FF0014B5B9FD07E265C751791674140.key +0 -0
  70. data/test/gnupg_test_home/pubring.gpg +0 -0
  71. data/test/gnupg_test_home/receiver_pubring.gpg +0 -0
  72. data/test/gnupg_test_home/receiver_secring.gpg +0 -0
  73. data/test/gnupg_test_home/regen_keys.sh +70 -16
  74. data/test/gnupg_test_home/secring.gpg +0 -0
  75. data/test/gnupg_test_home/sup-test-2@foo.bar.asc +20 -22
  76. data/test/integration/test_maildir.rb +1 -1
  77. data/test/integration/test_mbox.rb +1 -1
  78. data/test/test_crypto.rb +14 -2
  79. data/test/test_header_parsing.rb +1 -1
  80. data/test/test_helper.rb +6 -3
  81. data/test/test_message.rb +115 -341
  82. data/test/test_messages_dir.rb +4 -28
  83. data/test/test_yaml_regressions.rb +1 -1
  84. data/test/unit/test_contact.rb +33 -0
  85. data/test/unit/test_locale_fiddler.rb +15 -0
  86. data/test/unit/test_person.rb +37 -0
  87. data/test/unit/util/test_query.rb +10 -4
  88. data/test/unit/util/test_string.rb +6 -0
  89. metadata +107 -43
  90. data/test/gnupg_test_home/key1.gen +0 -15
  91. data/test/gnupg_test_home/key2.gen +0 -15
@@ -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.20.0
4
+ version: '1.0'
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Morgan
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2014-10-06 00:00:00.000000000 Z
14
+ date: 2020-07-12 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: ncursesw
@@ -28,19 +28,19 @@ dependencies:
28
28
  - !ruby/object:Gem::Version
29
29
  version: 1.4.0
30
30
  - !ruby/object:Gem::Dependency
31
- name: rmail-sup
31
+ name: rmail
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  requirements:
34
34
  - - "~>"
35
35
  - !ruby/object:Gem::Version
36
- version: 1.0.1
36
+ version: '1.1'
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
41
  - - "~>"
42
42
  - !ruby/object:Gem::Version
43
- version: 1.0.1
43
+ version: '1.1'
44
44
  - !ruby/object:Gem::Dependency
45
45
  name: highline
46
46
  requirement: !ruby/object:Gem::Requirement
@@ -56,19 +56,19 @@ dependencies:
56
56
  - !ruby/object:Gem::Version
57
57
  version: '0'
58
58
  - !ruby/object:Gem::Dependency
59
- name: trollop
59
+ name: optimist
60
60
  requirement: !ruby/object:Gem::Requirement
61
61
  requirements:
62
62
  - - ">="
63
63
  - !ruby/object:Gem::Version
64
- version: '1.12'
64
+ version: '0'
65
65
  type: :runtime
66
66
  prerelease: false
67
67
  version_requirements: !ruby/object:Gem::Requirement
68
68
  requirements:
69
69
  - - ">="
70
70
  - !ruby/object:Gem::Version
71
- version: '1.12'
71
+ version: '0'
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: lockfile
74
74
  requirement: !ruby/object:Gem::Requirement
@@ -87,16 +87,16 @@ dependencies:
87
87
  name: mime-types
88
88
  requirement: !ruby/object:Gem::Requirement
89
89
  requirements:
90
- - - "~>"
90
+ - - ">"
91
91
  - !ruby/object:Gem::Version
92
- version: '1.0'
92
+ version: '2.0'
93
93
  type: :runtime
94
94
  prerelease: false
95
95
  version_requirements: !ruby/object:Gem::Requirement
96
96
  requirements:
97
- - - "~>"
97
+ - - ">"
98
98
  - !ruby/object:Gem::Version
99
- version: '1.0'
99
+ version: '2.0'
100
100
  - !ruby/object:Gem::Dependency
101
101
  name: locale
102
102
  requirement: !ruby/object:Gem::Requirement
@@ -115,16 +115,16 @@ dependencies:
115
115
  name: chronic
116
116
  requirement: !ruby/object:Gem::Requirement
117
117
  requirements:
118
- - - "~>"
118
+ - - ">="
119
119
  - !ruby/object:Gem::Version
120
- version: 0.9.1
120
+ version: '0'
121
121
  type: :runtime
122
122
  prerelease: false
123
123
  version_requirements: !ruby/object:Gem::Requirement
124
124
  requirements:
125
- - - "~>"
125
+ - - ">="
126
126
  - !ruby/object:Gem::Version
127
- version: 0.9.1
127
+ version: '0'
128
128
  - !ruby/object:Gem::Dependency
129
129
  name: unicode
130
130
  requirement: !ruby/object:Gem::Requirement
@@ -139,20 +139,40 @@ dependencies:
139
139
  - - "~>"
140
140
  - !ruby/object:Gem::Version
141
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'
142
156
  - !ruby/object:Gem::Dependency
143
157
  name: bundler
144
158
  requirement: !ruby/object:Gem::Requirement
145
159
  requirements:
146
- - - "~>"
160
+ - - ">="
147
161
  - !ruby/object:Gem::Version
148
162
  version: '1.3'
163
+ - - "<"
164
+ - !ruby/object:Gem::Version
165
+ version: '3'
149
166
  type: :development
150
167
  prerelease: false
151
168
  version_requirements: !ruby/object:Gem::Requirement
152
169
  requirements:
153
- - - "~>"
170
+ - - ">="
154
171
  - !ruby/object:Gem::Version
155
172
  version: '1.3'
173
+ - - "<"
174
+ - !ruby/object:Gem::Version
175
+ version: '3'
156
176
  - !ruby/object:Gem::Dependency
157
177
  name: rake
158
178
  requirement: !ruby/object:Gem::Requirement
@@ -173,28 +193,28 @@ dependencies:
173
193
  requirements:
174
194
  - - "~>"
175
195
  - !ruby/object:Gem::Version
176
- version: '4.7'
196
+ version: 5.5.1
177
197
  type: :development
178
198
  prerelease: false
179
199
  version_requirements: !ruby/object:Gem::Requirement
180
200
  requirements:
181
201
  - - "~>"
182
202
  - !ruby/object:Gem::Version
183
- version: '4.7'
203
+ version: 5.5.1
184
204
  - !ruby/object:Gem::Dependency
185
205
  name: rr
186
206
  requirement: !ruby/object:Gem::Requirement
187
207
  requirements:
188
208
  - - "~>"
189
209
  - !ruby/object:Gem::Version
190
- version: 1.0.5
210
+ version: '1.1'
191
211
  type: :development
192
212
  prerelease: false
193
213
  version_requirements: !ruby/object:Gem::Requirement
194
214
  requirements:
195
215
  - - "~>"
196
216
  - !ruby/object:Gem::Version
197
- version: 1.0.5
217
+ version: '1.1'
198
218
  - !ruby/object:Gem::Dependency
199
219
  name: gpgme
200
220
  requirement: !ruby/object:Gem::Requirement
@@ -209,6 +229,20 @@ dependencies:
209
229
  - - ">="
210
230
  - !ruby/object:Gem::Version
211
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'
212
246
  description: |2
213
247
  Sup is a console-based email client for people with a lot of email.
214
248
 
@@ -233,15 +267,15 @@ executables:
233
267
  extensions:
234
268
  - ext/mkrf_conf_xapian.rb
235
269
  extra_rdoc_files:
236
- - man/sup-tweak-labels.1
237
- - man/sup-sync.1
238
- - man/sup-psych-ify-config-files.1
270
+ - man/sup-add.1
239
271
  - man/sup-config.1
240
- - man/sup-import-dump.1
241
272
  - man/sup-dump.1
242
- - man/sup-sync-back-maildir.1
243
- - man/sup-add.1
273
+ - man/sup-import-dump.1
274
+ - man/sup-psych-ify-config-files.1
244
275
  - man/sup-recover-sources.1
276
+ - man/sup-sync-back-maildir.1
277
+ - man/sup-sync.1
278
+ - man/sup-tweak-labels.1
245
279
  - man/sup.1
246
280
  files:
247
281
  - ".gitignore"
@@ -266,6 +300,7 @@ files:
266
300
  - bin/sup-sync-back-maildir
267
301
  - bin/sup-tweak-labels
268
302
  - contrib/colorpicker.rb
303
+ - contrib/completion/_sup.bash
269
304
  - contrib/completion/_sup.zsh
270
305
  - devel/console.sh
271
306
  - devel/count-loc.sh
@@ -336,6 +371,8 @@ files:
336
371
  - lib/sup/undo.rb
337
372
  - lib/sup/update.rb
338
373
  - lib/sup/util.rb
374
+ - lib/sup/util/axe.rb
375
+ - lib/sup/util/locale_fiddler.rb
339
376
  - lib/sup/util/ncurses.rb
340
377
  - lib/sup/util/path.rb
341
378
  - lib/sup/util/query.rb
@@ -353,9 +390,23 @@ files:
353
390
  - man/sup.1
354
391
  - sup.gemspec
355
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
356
408
  - test/gnupg_test_home/gpg.conf
357
- - test/gnupg_test_home/key1.gen
358
- - test/gnupg_test_home/key2.gen
409
+ - test/gnupg_test_home/private-keys-v1.d/306D2EE90FF0014B5B9FD07E265C751791674140.key
359
410
  - test/gnupg_test_home/pubring.gpg
360
411
  - test/gnupg_test_home/receiver_pubring.gpg
361
412
  - test/gnupg_test_home/receiver_secring.gpg
@@ -365,9 +416,6 @@ files:
365
416
  - test/integration/test_label_service.rb
366
417
  - test/integration/test_maildir.rb
367
418
  - test/integration/test_mbox.rb
368
- - test/messages/bad-content-transfer-encoding-1.eml
369
- - test/messages/binary-content-transfer-encoding-2.eml
370
- - test/messages/missing-line.eml
371
419
  - test/test_crypto.rb
372
420
  - test/test_header_parsing.rb
373
421
  - test/test_helper.rb
@@ -376,13 +424,16 @@ files:
376
424
  - test/test_yaml_migration.rb
377
425
  - test/test_yaml_regressions.rb
378
426
  - test/unit/service/test_label_service.rb
427
+ - test/unit/test_contact.rb
379
428
  - test/unit/test_horizontal_selector.rb
429
+ - test/unit/test_locale_fiddler.rb
430
+ - test/unit/test_person.rb
380
431
  - test/unit/util/test_query.rb
381
432
  - test/unit/util/test_string.rb
382
433
  - test/unit/util/test_uri.rb
383
- homepage: http://supmua.org
434
+ homepage: https://sup-heliotrope.github.io/
384
435
  licenses:
385
- - GPL-2
436
+ - GPL-2.0
386
437
  metadata: {}
387
438
  post_install_message: |
388
439
  SUP: please note that our old mailing lists have been shut down,
@@ -400,23 +451,36 @@ required_ruby_version: !ruby/object:Gem::Requirement
400
451
  requirements:
401
452
  - - ">="
402
453
  - !ruby/object:Gem::Version
403
- version: 1.9.3
454
+ version: 2.0.0
404
455
  required_rubygems_version: !ruby/object:Gem::Requirement
405
456
  requirements:
406
457
  - - ">="
407
458
  - !ruby/object:Gem::Version
408
459
  version: '0'
409
460
  requirements: []
410
- rubyforge_project:
411
- rubygems_version: 2.2.2
461
+ rubygems_version: 3.1.2
412
462
  signing_key:
413
463
  specification_version: 4
414
464
  summary: A console-based email client with the best features of GMail, mutt and Emacs
415
465
  test_files:
416
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
417
482
  - test/gnupg_test_home/gpg.conf
418
- - test/gnupg_test_home/key1.gen
419
- - test/gnupg_test_home/key2.gen
483
+ - test/gnupg_test_home/private-keys-v1.d/306D2EE90FF0014B5B9FD07E265C751791674140.key
420
484
  - test/gnupg_test_home/pubring.gpg
421
485
  - test/gnupg_test_home/receiver_pubring.gpg
422
486
  - test/gnupg_test_home/receiver_secring.gpg
@@ -426,9 +490,6 @@ test_files:
426
490
  - test/integration/test_label_service.rb
427
491
  - test/integration/test_maildir.rb
428
492
  - test/integration/test_mbox.rb
429
- - test/messages/bad-content-transfer-encoding-1.eml
430
- - test/messages/binary-content-transfer-encoding-2.eml
431
- - test/messages/missing-line.eml
432
493
  - test/test_crypto.rb
433
494
  - test/test_header_parsing.rb
434
495
  - test/test_helper.rb
@@ -437,7 +498,10 @@ test_files:
437
498
  - test/test_yaml_migration.rb
438
499
  - test/test_yaml_regressions.rb
439
500
  - test/unit/service/test_label_service.rb
501
+ - test/unit/test_contact.rb
440
502
  - test/unit/test_horizontal_selector.rb
503
+ - test/unit/test_locale_fiddler.rb
504
+ - test/unit/test_person.rb
441
505
  - test/unit/util/test_query.rb
442
506
  - test/unit/util/test_string.rb
443
507
  - test/unit/util/test_uri.rb