email_reply_trimmer 0.1.6 → 0.2.0

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 (105) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +5 -0
  3. data/Gemfile.lock +98 -0
  4. data/README.md +4 -4
  5. data/Rakefile +4 -7
  6. data/devenv.lock +184 -0
  7. data/devenv.nix +4 -0
  8. data/devenv.yaml +8 -0
  9. data/email_reply_trimmer.gemspec +8 -2
  10. data/lib/email_reply_trimmer/delimiter_matcher.rb +3 -2
  11. data/lib/email_reply_trimmer/email_header_matcher.rb +21 -8
  12. data/lib/email_reply_trimmer/embedded_email_matcher.rb +53 -25
  13. data/lib/email_reply_trimmer/empty_line_matcher.rb +1 -0
  14. data/lib/email_reply_trimmer/quote_matcher.rb +1 -0
  15. data/lib/email_reply_trimmer/signature_matcher.rb +24 -9
  16. data/lib/email_reply_trimmer.rb +102 -37
  17. data/test/before/forwarded_apple.txt +1 -0
  18. data/test/before/forwarded_gmail.txt +1 -0
  19. data/test/elided/block_code_spacers.txt +0 -0
  20. data/test/elided/email_headers_5.txt +23 -0
  21. data/test/elided/embedded_ception.txt +3 -3
  22. data/test/elided/embedded_email_12.txt +2 -2
  23. data/test/elided/embedded_email_13.txt +9 -0
  24. data/test/elided/embedded_email_14.txt +11 -0
  25. data/test/elided/embedded_email_15.txt +4 -0
  26. data/test/elided/embedded_email_16.txt +4 -0
  27. data/test/elided/embedded_email_17.txt +2 -0
  28. data/test/elided/embedded_email_18.txt +1 -0
  29. data/test/elided/embedded_email_19.txt +0 -0
  30. data/test/elided/embedded_email_chinese.txt +4 -0
  31. data/test/elided/embedded_email_german_4.txt +15 -0
  32. data/test/elided/embedded_email_german_5.txt +20 -0
  33. data/test/elided/embedded_email_german_6.txt +8 -0
  34. data/test/elided/embedded_email_norwegian.txt +9 -0
  35. data/test/elided/embedded_email_polish_2.txt +7 -0
  36. data/test/elided/embedded_email_quote_text.txt +5 -0
  37. data/test/elided/embedded_email_russian_2.txt +23 -0
  38. data/test/elided/embedded_email_swedish.txt +8 -0
  39. data/test/elided/embedded_email_ukrainian.txt +17 -0
  40. data/test/elided/forwarded_apple.txt +15 -0
  41. data/test/elided/forwarded_gmail.txt +15 -0
  42. data/test/elided/signatures.txt +5 -0
  43. data/test/elided/spam_1.txt +75 -0
  44. data/test/elided/spam_2.txt +152 -0
  45. data/test/emails/block_code_spacers.txt +13 -0
  46. data/test/emails/email_headers_5.txt +37 -0
  47. data/test/emails/embedded_email_1.txt +1 -1
  48. data/test/emails/embedded_email_13.txt +14 -0
  49. data/test/emails/embedded_email_14.txt +16 -0
  50. data/test/emails/embedded_email_15.txt +9 -0
  51. data/test/emails/embedded_email_16.txt +16 -0
  52. data/test/emails/embedded_email_17.txt +38 -0
  53. data/test/emails/embedded_email_18.txt +7 -0
  54. data/test/emails/embedded_email_19.txt +13 -0
  55. data/test/emails/embedded_email_4.txt +13 -13
  56. data/test/emails/embedded_email_7.txt +4 -4
  57. data/test/emails/embedded_email_chinese.txt +7 -0
  58. data/test/emails/embedded_email_german_4.txt +18 -0
  59. data/test/emails/embedded_email_german_5.txt +23 -0
  60. data/test/emails/embedded_email_german_6.txt +14 -0
  61. data/test/emails/embedded_email_norwegian.txt +11 -0
  62. data/test/emails/embedded_email_polish_2.txt +11 -0
  63. data/test/emails/embedded_email_russian_2.txt +26 -0
  64. data/test/emails/embedded_email_swedish.txt +20 -0
  65. data/test/emails/embedded_email_ukrainian.txt +19 -0
  66. data/test/emails/forwarded_apple.txt +17 -0
  67. data/test/emails/forwarded_gmail.txt +17 -0
  68. data/test/emails/signatures.txt +5 -0
  69. data/test/emails/spam_1.txt +75 -0
  70. data/test/emails/spam_2.txt +174 -0
  71. data/test/embedded/forwarded_apple.txt +13 -0
  72. data/test/embedded/forwarded_gmail.txt +14 -0
  73. data/test/matchers/does_not_contain_embedded_email.txt +5 -0
  74. data/test/test_email_matcher.rb +16 -0
  75. data/test/test_email_reply_trimmer.rb +8 -3
  76. data/test/trimmed/block_code_spacers.txt +13 -0
  77. data/test/trimmed/email_headers_5.txt +11 -0
  78. data/test/trimmed/embedded_email_13.txt +3 -0
  79. data/test/trimmed/embedded_email_14.txt +3 -0
  80. data/test/trimmed/embedded_email_15.txt +3 -0
  81. data/test/trimmed/embedded_email_16.txt +11 -0
  82. data/test/trimmed/embedded_email_17.txt +35 -0
  83. data/test/trimmed/embedded_email_18.txt +5 -0
  84. data/test/trimmed/embedded_email_19.txt +13 -0
  85. data/test/trimmed/embedded_email_chinese.txt +2 -0
  86. data/test/trimmed/embedded_email_german_4.txt +1 -0
  87. data/test/trimmed/embedded_email_german_5.txt +1 -0
  88. data/test/trimmed/embedded_email_german_6.txt +4 -0
  89. data/test/trimmed/embedded_email_norwegian.txt +1 -0
  90. data/test/trimmed/embedded_email_polish_2.txt +2 -0
  91. data/test/trimmed/embedded_email_quote_text.txt +0 -5
  92. data/test/trimmed/embedded_email_russian_2.txt +1 -0
  93. data/test/trimmed/embedded_email_swedish.txt +9 -0
  94. data/test/trimmed/embedded_email_ukrainian.txt +1 -0
  95. data/test/trimmed/forwarded_apple.txt +1 -0
  96. data/test/trimmed/forwarded_gmail.txt +1 -0
  97. data/test/trimmed/spam_1.txt +0 -0
  98. data/test/trimmed/spam_2.txt +21 -0
  99. metadata +147 -15
  100. /data/test/elided/{embedded_email_polish.txt → embedded_email_polish_1.txt} +0 -0
  101. /data/test/elided/{embedded_email_russian.txt → embedded_email_russian_1.txt} +0 -0
  102. /data/test/emails/{embedded_email_polish.txt → embedded_email_polish_1.txt} +0 -0
  103. /data/test/emails/{embedded_email_russian.txt → embedded_email_russian_1.txt} +0 -0
  104. /data/test/trimmed/{embedded_email_polish.txt → embedded_email_polish_1.txt} +0 -0
  105. /data/test/trimmed/{embedded_email_russian.txt → embedded_email_russian_1.txt} +0 -0
metadata CHANGED
@@ -1,26 +1,87 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: email_reply_trimmer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Régis Hanol
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-17 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2024-11-29 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '12'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '12'
27
+ - !ruby/object:Gem::Dependency
28
+ name: minitest
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '5'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '5'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rubocop
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rubocop-discourse
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
13
69
  description: EmailReplyTrimmer is a small library to trim replies from plain text
14
70
  email.
15
71
  email:
16
- - regis+rubygems@hanol.fr
72
+ - rubygems@hanol.fr
17
73
  executables: []
18
74
  extensions: []
19
75
  extra_rdoc_files: []
20
76
  files:
77
+ - Gemfile
78
+ - Gemfile.lock
21
79
  - LICENSE
22
80
  - README.md
23
81
  - Rakefile
82
+ - devenv.lock
83
+ - devenv.nix
84
+ - devenv.yaml
24
85
  - email_reply_trimmer.gemspec
25
86
  - lib/email_reply_trimmer.rb
26
87
  - lib/email_reply_trimmer/delimiter_matcher.rb
@@ -36,18 +97,29 @@ files:
36
97
  - test/before/embedded_email_10.txt
37
98
  - test/before/embedded_email_german_3.txt
38
99
  - test/before/embedded_email_spanish_2.txt
100
+ - test/before/forwarded_apple.txt
101
+ - test/before/forwarded_gmail.txt
39
102
  - test/before/forwarded_message.txt
103
+ - test/elided/block_code_spacers.txt
40
104
  - test/elided/delimiters.txt
41
105
  - test/elided/dual_embedded.txt
42
106
  - test/elided/email_headers_1.txt
43
107
  - test/elided/email_headers_2.txt
44
108
  - test/elided/email_headers_3.txt
45
109
  - test/elided/email_headers_4.txt
110
+ - test/elided/email_headers_5.txt
46
111
  - test/elided/embedded_ception.txt
47
112
  - test/elided/embedded_email_1.txt
48
113
  - test/elided/embedded_email_10.txt
49
114
  - test/elided/embedded_email_11.txt
50
115
  - test/elided/embedded_email_12.txt
116
+ - test/elided/embedded_email_13.txt
117
+ - test/elided/embedded_email_14.txt
118
+ - test/elided/embedded_email_15.txt
119
+ - test/elided/embedded_email_16.txt
120
+ - test/elided/embedded_email_17.txt
121
+ - test/elided/embedded_email_18.txt
122
+ - test/elided/embedded_email_19.txt
51
123
  - test/elided/embedded_email_2.txt
52
124
  - test/elided/embedded_email_3.txt
53
125
  - test/elided/embedded_email_4.txt
@@ -56,6 +128,7 @@ files:
56
128
  - test/elided/embedded_email_7.txt
57
129
  - test/elided/embedded_email_8.txt
58
130
  - test/elided/embedded_email_9.txt
131
+ - test/elided/embedded_email_chinese.txt
59
132
  - test/elided/embedded_email_dutch_1.txt
60
133
  - test/elided/embedded_email_dutch_2.txt
61
134
  - test/elided/embedded_email_french_1.txt
@@ -63,33 +136,54 @@ files:
63
136
  - test/elided/embedded_email_german_1.txt
64
137
  - test/elided/embedded_email_german_2.txt
65
138
  - test/elided/embedded_email_german_3.txt
139
+ - test/elided/embedded_email_german_4.txt
140
+ - test/elided/embedded_email_german_5.txt
141
+ - test/elided/embedded_email_german_6.txt
66
142
  - test/elided/embedded_email_italian.txt
67
- - test/elided/embedded_email_polish.txt
143
+ - test/elided/embedded_email_norwegian.txt
144
+ - test/elided/embedded_email_polish_1.txt
145
+ - test/elided/embedded_email_polish_2.txt
68
146
  - test/elided/embedded_email_portuguese.txt
69
147
  - test/elided/embedded_email_quote_text.txt
70
- - test/elided/embedded_email_russian.txt
148
+ - test/elided/embedded_email_russian_1.txt
149
+ - test/elided/embedded_email_russian_2.txt
71
150
  - test/elided/embedded_email_spanish_1.txt
72
151
  - test/elided/embedded_email_spanish_2.txt
152
+ - test/elided/embedded_email_swedish.txt
153
+ - test/elided/embedded_email_ukrainian.txt
154
+ - test/elided/forwarded_apple.txt
155
+ - test/elided/forwarded_gmail.txt
73
156
  - test/elided/forwarded_message.txt
74
157
  - test/elided/normalize_line_endings.txt
75
158
  - test/elided/quote_and_text.txt
76
159
  - test/elided/quote_only.txt
77
160
  - test/elided/retains_spaces_and_formatting.txt
78
161
  - test/elided/signatures.txt
162
+ - test/elided/spam_1.txt
163
+ - test/elided/spam_2.txt
79
164
  - test/elided/strip.txt
80
165
  - test/elided/text_only.txt
81
166
  - test/elided/usenet.txt
167
+ - test/emails/block_code_spacers.txt
82
168
  - test/emails/delimiters.txt
83
169
  - test/emails/dual_embedded.txt
84
170
  - test/emails/email_headers_1.txt
85
171
  - test/emails/email_headers_2.txt
86
172
  - test/emails/email_headers_3.txt
87
173
  - test/emails/email_headers_4.txt
174
+ - test/emails/email_headers_5.txt
88
175
  - test/emails/embedded_ception.txt
89
176
  - test/emails/embedded_email_1.txt
90
177
  - test/emails/embedded_email_10.txt
91
178
  - test/emails/embedded_email_11.txt
92
179
  - test/emails/embedded_email_12.txt
180
+ - test/emails/embedded_email_13.txt
181
+ - test/emails/embedded_email_14.txt
182
+ - test/emails/embedded_email_15.txt
183
+ - test/emails/embedded_email_16.txt
184
+ - test/emails/embedded_email_17.txt
185
+ - test/emails/embedded_email_18.txt
186
+ - test/emails/embedded_email_19.txt
93
187
  - test/emails/embedded_email_2.txt
94
188
  - test/emails/embedded_email_3.txt
95
189
  - test/emails/embedded_email_4.txt
@@ -98,6 +192,7 @@ files:
98
192
  - test/emails/embedded_email_7.txt
99
193
  - test/emails/embedded_email_8.txt
100
194
  - test/emails/embedded_email_9.txt
195
+ - test/emails/embedded_email_chinese.txt
101
196
  - test/emails/embedded_email_dutch_1.txt
102
197
  - test/emails/embedded_email_dutch_2.txt
103
198
  - test/emails/embedded_email_french_1.txt
@@ -105,19 +200,31 @@ files:
105
200
  - test/emails/embedded_email_german_1.txt
106
201
  - test/emails/embedded_email_german_2.txt
107
202
  - test/emails/embedded_email_german_3.txt
203
+ - test/emails/embedded_email_german_4.txt
204
+ - test/emails/embedded_email_german_5.txt
205
+ - test/emails/embedded_email_german_6.txt
108
206
  - test/emails/embedded_email_italian.txt
109
- - test/emails/embedded_email_polish.txt
207
+ - test/emails/embedded_email_norwegian.txt
208
+ - test/emails/embedded_email_polish_1.txt
209
+ - test/emails/embedded_email_polish_2.txt
110
210
  - test/emails/embedded_email_portuguese.txt
111
211
  - test/emails/embedded_email_quote_text.txt
112
- - test/emails/embedded_email_russian.txt
212
+ - test/emails/embedded_email_russian_1.txt
213
+ - test/emails/embedded_email_russian_2.txt
113
214
  - test/emails/embedded_email_spanish_1.txt
114
215
  - test/emails/embedded_email_spanish_2.txt
216
+ - test/emails/embedded_email_swedish.txt
217
+ - test/emails/embedded_email_ukrainian.txt
218
+ - test/emails/forwarded_apple.txt
219
+ - test/emails/forwarded_gmail.txt
115
220
  - test/emails/forwarded_message.txt
116
221
  - test/emails/normalize_line_endings.txt
117
222
  - test/emails/quote_and_text.txt
118
223
  - test/emails/quote_only.txt
119
224
  - test/emails/retains_spaces_and_formatting.txt
120
225
  - test/emails/signatures.txt
226
+ - test/emails/spam_1.txt
227
+ - test/emails/spam_2.txt
121
228
  - test/emails/strip.txt
122
229
  - test/emails/text_only.txt
123
230
  - test/emails/usenet.txt
@@ -128,19 +235,32 @@ files:
128
235
  - test/embedded/embedded_email_10.txt
129
236
  - test/embedded/embedded_email_german_3.txt
130
237
  - test/embedded/embedded_email_spanish_2.txt
238
+ - test/embedded/forwarded_apple.txt
239
+ - test/embedded/forwarded_gmail.txt
131
240
  - test/embedded/forwarded_message.txt
241
+ - test/matchers/does_not_contain_embedded_email.txt
242
+ - test/test_email_matcher.rb
132
243
  - test/test_email_reply_trimmer.rb
244
+ - test/trimmed/block_code_spacers.txt
133
245
  - test/trimmed/delimiters.txt
134
246
  - test/trimmed/dual_embedded.txt
135
247
  - test/trimmed/email_headers_1.txt
136
248
  - test/trimmed/email_headers_2.txt
137
249
  - test/trimmed/email_headers_3.txt
138
250
  - test/trimmed/email_headers_4.txt
251
+ - test/trimmed/email_headers_5.txt
139
252
  - test/trimmed/embedded_ception.txt
140
253
  - test/trimmed/embedded_email_1.txt
141
254
  - test/trimmed/embedded_email_10.txt
142
255
  - test/trimmed/embedded_email_11.txt
143
256
  - test/trimmed/embedded_email_12.txt
257
+ - test/trimmed/embedded_email_13.txt
258
+ - test/trimmed/embedded_email_14.txt
259
+ - test/trimmed/embedded_email_15.txt
260
+ - test/trimmed/embedded_email_16.txt
261
+ - test/trimmed/embedded_email_17.txt
262
+ - test/trimmed/embedded_email_18.txt
263
+ - test/trimmed/embedded_email_19.txt
144
264
  - test/trimmed/embedded_email_2.txt
145
265
  - test/trimmed/embedded_email_3.txt
146
266
  - test/trimmed/embedded_email_4.txt
@@ -149,6 +269,7 @@ files:
149
269
  - test/trimmed/embedded_email_7.txt
150
270
  - test/trimmed/embedded_email_8.txt
151
271
  - test/trimmed/embedded_email_9.txt
272
+ - test/trimmed/embedded_email_chinese.txt
152
273
  - test/trimmed/embedded_email_dutch_1.txt
153
274
  - test/trimmed/embedded_email_dutch_2.txt
154
275
  - test/trimmed/embedded_email_french_1.txt
@@ -156,19 +277,31 @@ files:
156
277
  - test/trimmed/embedded_email_german_1.txt
157
278
  - test/trimmed/embedded_email_german_2.txt
158
279
  - test/trimmed/embedded_email_german_3.txt
280
+ - test/trimmed/embedded_email_german_4.txt
281
+ - test/trimmed/embedded_email_german_5.txt
282
+ - test/trimmed/embedded_email_german_6.txt
159
283
  - test/trimmed/embedded_email_italian.txt
160
- - test/trimmed/embedded_email_polish.txt
284
+ - test/trimmed/embedded_email_norwegian.txt
285
+ - test/trimmed/embedded_email_polish_1.txt
286
+ - test/trimmed/embedded_email_polish_2.txt
161
287
  - test/trimmed/embedded_email_portuguese.txt
162
288
  - test/trimmed/embedded_email_quote_text.txt
163
- - test/trimmed/embedded_email_russian.txt
289
+ - test/trimmed/embedded_email_russian_1.txt
290
+ - test/trimmed/embedded_email_russian_2.txt
164
291
  - test/trimmed/embedded_email_spanish_1.txt
165
292
  - test/trimmed/embedded_email_spanish_2.txt
293
+ - test/trimmed/embedded_email_swedish.txt
294
+ - test/trimmed/embedded_email_ukrainian.txt
295
+ - test/trimmed/forwarded_apple.txt
296
+ - test/trimmed/forwarded_gmail.txt
166
297
  - test/trimmed/forwarded_message.txt
167
298
  - test/trimmed/normalize_line_endings.txt
168
299
  - test/trimmed/quote_and_text.txt
169
300
  - test/trimmed/quote_only.txt
170
301
  - test/trimmed/retains_spaces_and_formatting.txt
171
302
  - test/trimmed/signatures.txt
303
+ - test/trimmed/spam_1.txt
304
+ - test/trimmed/spam_2.txt
172
305
  - test/trimmed/strip.txt
173
306
  - test/trimmed/text_only.txt
174
307
  - test/trimmed/usenet.txt
@@ -176,7 +309,7 @@ homepage: https://github.com/discourse/email_reply_trimmer
176
309
  licenses:
177
310
  - MIT
178
311
  metadata: {}
179
- post_install_message:
312
+ post_install_message:
180
313
  rdoc_options: []
181
314
  require_paths:
182
315
  - lib
@@ -191,9 +324,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
191
324
  - !ruby/object:Gem::Version
192
325
  version: '0'
193
326
  requirements: []
194
- rubyforge_project:
195
- rubygems_version: 2.5.1
196
- signing_key:
327
+ rubygems_version: 3.4.19
328
+ signing_key:
197
329
  specification_version: 4
198
330
  summary: Library to trim replies from plain text email.
199
331
  test_files: []