enmail 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '038acec812557605c0617e55c00be79bc33ce16a54c6fcf29fb46746ef99ff6c'
4
- data.tar.gz: cb6ae7bdfa66d55caa7c528ce7edf24466a8cff2a1dd14f27296bf705226050e
3
+ metadata.gz: 65e9a85a2a79570246e2312e8352f1747c4195d61f3ed2867cce79fa54e1fba4
4
+ data.tar.gz: f44e9728a978d4dfa0daaa9cd877799ddd7e30be43495e9f6ff1cfb559d5768d
5
5
  SHA512:
6
- metadata.gz: dd2a871a71076c5f7fcffdfea2b56b8f619948fd587b7ef62c0e938d6362ce3614a58c8b17bd9e26467c491fb1eebf43348033f5b3d475cc00b5361a10be73f5
7
- data.tar.gz: 1546d852a5faf9e5d6e1834784fab1532f8091a271f9c0d285cb2413727f94fe5d7d1c63df86ed64ea7f5d0d87677067f4b972ec11774597dc447986eab4147f
6
+ metadata.gz: 6829ea3e29957d2c19c585daec9546fca11df13e529fa3b97dac09beb0a65a5efd72dff9763165851c180e57a2514b080c0ef10fc09e8d3e54f50016dc6a6dff
7
+ data.tar.gz: d205faff2f0d37f72aace686e658e4cdb559a715cc243e245675816df836dabc8dfb4c071492f1e98043043ac900f8b47ea824552b0f5b0e213f5cfb6b51c870
data/.gitattributes ADDED
@@ -0,0 +1 @@
1
+ .gitignore -text
data/.gitignore CHANGED
@@ -1,65 +1,115 @@
1
- /Gemfile.lock
2
- /.ruby-gemset
3
- /.ruby-version
4
1
  /.rspec_status
5
- *.gem
6
- *.rbc
7
- /.config
8
- /coverage/
9
- /InstalledFiles
10
- /pkg/
11
- /spec/reports/
12
- /spec/examples.txt
13
- /test/tmp/
14
- /test/version_tmp/
15
- /tmp/
16
2
 
17
- # Used by dotenv library to load environment variables.
18
- # .env
19
3
 
20
- ## Specific to RubyMotion:
21
- .dat*
22
- .repl_history
23
- build/
24
- *.bridgesupport
25
- build-iPhoneOS/
26
- build-iPhoneSimulator/
4
+ # Created by https://www.toptal.com/developers/gitignore/api/vim,ruby,linux,emacs,macos,rails,jekyll,textmate,sublimetext,visualstudiocode,windows,webstorm+all
5
+ # Edit at https://www.toptal.com/developers/gitignore?templates=vim,ruby,linux,emacs,macos,rails,jekyll,textmate,sublimetext,visualstudiocode,windows,webstorm+all
27
6
 
28
- ## Specific to RubyMotion (use of CocoaPods):
29
- #
30
- # We recommend against adding the Pods directory to your .gitignore. However
31
- # you should judge for yourself, the pros and cons are mentioned at:
32
- # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
33
- #
34
- # vendor/Pods/
7
+ ### Emacs ###
8
+ # -*- mode: gitignore; -*-
9
+ *~
10
+ \#*\#
11
+ /.emacs.desktop
12
+ /.emacs.desktop.lock
13
+ *.elc
14
+ auto-save-list
15
+ tramp
16
+ .\#*
35
17
 
36
- ## Documentation cache and generated files:
37
- /.yardoc/
38
- /_yardoc/
39
- /doc/
40
- /rdoc/
18
+ # Org-mode
19
+ .org-id-locations
20
+ *_archive
41
21
 
42
- ## Environment normalization:
43
- /.bundle/
44
- /vendor/bundle
45
- /lib/bundler/man/
22
+ # flymake-mode
23
+ *_flymake.*
46
24
 
47
- # for a library or gem, you might want to ignore these files since the code is
48
- # intended to run in multiple environments; otherwise, check them in:
49
- # Gemfile.lock
50
- # .ruby-version
51
- # .ruby-gemset
25
+ # eshell files
26
+ /eshell/history
27
+ /eshell/lastdir
52
28
 
53
- # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
54
- .rvmrc
29
+ # elpa packages
30
+ /elpa/
31
+
32
+ # reftex files
33
+ *.rel
34
+
35
+ # AUCTeX auto folder
36
+ /auto/
37
+
38
+ # cask packages
39
+ .cask/
40
+ dist/
41
+
42
+ # Flycheck
43
+ flycheck_*.el
44
+
45
+ # server auth directory
46
+ /server/
47
+
48
+ # projectiles files
49
+ .projectile
50
+
51
+ # directory configuration
52
+ .dir-locals.el
53
+
54
+ # network security
55
+ /network-security.data
56
+
57
+
58
+ ### Jekyll ###
59
+ _site/
60
+ .sass-cache/
61
+ .jekyll-cache/
62
+ .jekyll-metadata
63
+
64
+ ### Linux ###
65
+
66
+ # temporary files which can be created if a process still has a handle open of a deleted file
67
+ .fuse_hidden*
68
+
69
+ # KDE directory preferences
70
+ .directory
71
+
72
+ # Linux trash folder which might appear on any partition or disk
73
+ .Trash-*
74
+
75
+ # .nfs files are created when an open file is removed but is still being accessed
76
+ .nfs*
77
+
78
+ ### macOS ###
79
+ # General
80
+ .DS_Store
81
+ .AppleDouble
82
+ .LSOverride
83
+
84
+ # Icon must end with two \r
85
+ Icon
55
86
 
87
+ # Thumbnails
88
+ ._*
89
+
90
+ # Files that might appear in the root of a volume
91
+ .DocumentRevisions-V100
92
+ .fseventsd
93
+ .Spotlight-V100
94
+ .TemporaryItems
95
+ .Trashes
96
+ .VolumeIcon.icns
97
+ .com.apple.timemachine.donotpresent
98
+
99
+ # Directories potentially created on remote AFP share
100
+ .AppleDB
101
+ .AppleDesktop
102
+ Network Trash Folder
103
+ Temporary Items
104
+ .apdisk
105
+
106
+ ### Rails ###
56
107
  *.rbc
57
108
  capybara-*.html
58
109
  .rspec
59
- /log
60
- /tmp
61
110
  /db/*.sqlite3
62
111
  /db/*.sqlite3-journal
112
+ /db/*.sqlite3-[0-9]*
63
113
  /public/system
64
114
  /coverage/
65
115
  /spec/tmp
@@ -67,22 +117,32 @@ capybara-*.html
67
117
  rerun.txt
68
118
  pickle-email-*.html
69
119
 
120
+ # Ignore all logfiles and tempfiles.
121
+ /log/*
122
+ /tmp/*
123
+ !/log/.keep
124
+ !/tmp/.keep
125
+
70
126
  # TODO Comment out this rule if you are OK with secrets being uploaded to the repo
71
127
  config/initializers/secret_token.rb
128
+ config/master.key
72
129
 
73
130
  # Only include if you have production secrets in this file, which is no longer a Rails default
74
131
  # config/secrets.yml
75
132
 
76
- # dotenv
77
- # TODO Comment out this rule if environment variables can be committed
133
+ # dotenv, dotenv-rails
134
+ # TODO Comment out these rules if environment variables can be committed
78
135
  .env
136
+ .env.*
79
137
 
80
138
  ## Environment normalization:
81
139
  /.bundle
82
140
  /vendor/bundle
83
141
 
84
142
  # these should all be checked in to normalize the environment:
85
- # Gemfile.lock, .ruby-version, .ruby-gemset
143
+ Gemfile.lock
144
+ .ruby-version
145
+ .ruby-gemset
86
146
 
87
147
  # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
88
148
  .rvmrc
@@ -98,73 +158,265 @@ bower.json
98
158
  # Ignore Byebug command history file.
99
159
  .byebug_history
100
160
 
161
+ # Ignore node_modules
162
+ node_modules/
101
163
 
102
- # Created by https://www.gitignore.io/api/vim
103
-
104
- ### Vim ###
105
- # swap
106
- [._]*.s[a-v][a-z]
107
- [._]*.sw[a-p]
108
- [._]s[a-v][a-z]
109
- [._]sw[a-p]
110
- # session
111
- Session.vim
112
- # temporary
113
- .netrwhist
114
- *~
115
- # auto-generated tag files
116
- tags
117
-
118
- # End of https://www.gitignore.io/api/vim
164
+ # Ignore precompiled javascript packs
165
+ /public/packs
166
+ /public/packs-test
167
+ /public/assets
119
168
 
169
+ # Ignore yarn files
170
+ /yarn-error.log
171
+ yarn-debug.log*
172
+ .yarn-integrity
120
173
 
121
- # Created by https://www.gitignore.io/api/emacs
174
+ # Ignore uploaded files in development
175
+ /storage/*
176
+ !/storage/.keep
177
+ /public/uploads
122
178
 
123
- ### Emacs ###
124
- # -*- mode: gitignore; -*-
125
- *~
126
- \#*\#
127
- /.emacs.desktop
128
- /.emacs.desktop.lock
129
- *.elc
130
- auto-save-list
131
- tramp
132
- .\#*
179
+ ### Ruby ###
180
+ *.gem
181
+ /.config
182
+ /InstalledFiles
183
+ /pkg/
184
+ /spec/reports/
185
+ /spec/examples.txt
186
+ /test/tmp/
187
+ /test/version_tmp/
188
+ /tmp/
133
189
 
134
- # Org-mode
135
- .org-id-locations
136
- *_archive
190
+ # Used by dotenv library to load environment variables.
191
+ # .env
137
192
 
138
- # flymake-mode
139
- *_flymake.*
193
+ # Ignore Byebug command history file.
140
194
 
141
- # eshell files
142
- /eshell/history
143
- /eshell/lastdir
195
+ ## Specific to RubyMotion:
196
+ .dat*
197
+ .repl_history
198
+ build/
199
+ *.bridgesupport
200
+ build-iPhoneOS/
201
+ build-iPhoneSimulator/
144
202
 
145
- # elpa packages
146
- /elpa/
203
+ ## Specific to RubyMotion (use of CocoaPods):
204
+ #
205
+ # We recommend against adding the Pods directory to your .gitignore. However
206
+ # you should judge for yourself, the pros and cons are mentioned at:
207
+ # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
208
+ # vendor/Pods/
147
209
 
148
- # reftex files
149
- *.rel
210
+ ## Documentation cache and generated files:
211
+ /.yardoc/
212
+ /_yardoc/
213
+ /doc/
214
+ /rdoc/
150
215
 
151
- # AUCTeX auto folder
152
- /auto/
216
+ /.bundle/
217
+ /lib/bundler/man/
153
218
 
154
- # cask packages
155
- .cask/
156
- dist/
219
+ # for a library or gem, you might want to ignore these files since the code is
220
+ # intended to run in multiple environments; otherwise, check them in:
221
+ # Gemfile.lock
222
+ # .ruby-version
223
+ # .ruby-gemset
157
224
 
158
- # Flycheck
159
- flycheck_*.el
225
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
160
226
 
161
- # server auth directory
162
- /server/
227
+ # Used by RuboCop. Remote config files pulled in from inherit_from directive.
228
+ .rubocop-https?--*
229
+
230
+ ### SublimeText ###
231
+ # Cache files for Sublime Text
232
+ *.tmlanguage.cache
233
+ *.tmPreferences.cache
234
+ *.stTheme.cache
235
+
236
+ # Workspace files are user-specific
237
+ *.sublime-workspace
238
+
239
+ # Project files should be checked into the repository, unless a significant
240
+ # proportion of contributors will probably not be using Sublime Text
241
+ # *.sublime-project
242
+
243
+ # SFTP configuration file
244
+ sftp-config.json
245
+ sftp-config-alt*.json
246
+
247
+ # Package control specific files
248
+ Package Control.last-run
249
+ Package Control.ca-list
250
+ Package Control.ca-bundle
251
+ Package Control.system-ca-bundle
252
+ Package Control.cache/
253
+ Package Control.ca-certs/
254
+ Package Control.merged-ca-bundle
255
+ Package Control.user-ca-bundle
256
+ oscrypto-ca-bundle.crt
257
+ bh_unicode_properties.cache
258
+
259
+ # Sublime-github package stores a github token in this file
260
+ # https://packagecontrol.io/packages/sublime-github
261
+ GitHub.sublime-settings
262
+
263
+ ### TextMate ###
264
+ *.tmproj
265
+ *.tmproject
266
+ tmtags
163
267
 
164
- # projectiles files
165
- .projectile
268
+ ### Vim ###
269
+ # Swap
270
+ [._]*.s[a-v][a-z]
271
+ !*.svg # comment out if you don't need vector files
272
+ [._]*.sw[a-p]
273
+ [._]s[a-rt-v][a-z]
274
+ [._]ss[a-gi-z]
275
+ [._]sw[a-p]
166
276
 
167
- # directory configuration
168
- .dir-locals.el
277
+ # Session
278
+ Session.vim
279
+ Sessionx.vim
169
280
 
170
- # End of https://www.gitignore.io/api/emacs
281
+ # Temporary
282
+ .netrwhist
283
+ # Auto-generated tag files
284
+ tags
285
+ # Persistent undo
286
+ [._]*.un~
287
+
288
+ ### VisualStudioCode ###
289
+ .vscode/*
290
+ !.vscode/settings.json
291
+ !.vscode/tasks.json
292
+ !.vscode/launch.json
293
+ !.vscode/extensions.json
294
+ *.code-workspace
295
+
296
+ # Local History for Visual Studio Code
297
+ .history/
298
+
299
+ ### VisualStudioCode Patch ###
300
+ # Ignore all local history of files
301
+ .history
302
+ .ionide
303
+
304
+ ### WebStorm+all ###
305
+ # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
306
+ # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
307
+
308
+ # User-specific stuff
309
+ .idea/**/workspace.xml
310
+ .idea/**/tasks.xml
311
+ .idea/**/usage.statistics.xml
312
+ .idea/**/dictionaries
313
+ .idea/**/shelf
314
+
315
+ # AWS User-specific
316
+ .idea/**/aws.xml
317
+
318
+ # Generated files
319
+ .idea/**/contentModel.xml
320
+
321
+ # Sensitive or high-churn files
322
+ .idea/**/dataSources/
323
+ .idea/**/dataSources.ids
324
+ .idea/**/dataSources.local.xml
325
+ .idea/**/sqlDataSources.xml
326
+ .idea/**/dynamic.xml
327
+ .idea/**/uiDesigner.xml
328
+ .idea/**/dbnavigator.xml
329
+
330
+ # Gradle
331
+ .idea/**/gradle.xml
332
+ .idea/**/libraries
333
+
334
+ # Gradle and Maven with auto-import
335
+ # When using Gradle or Maven with auto-import, you should exclude module files,
336
+ # since they will be recreated, and may cause churn. Uncomment if using
337
+ # auto-import.
338
+ # .idea/artifacts
339
+ # .idea/compiler.xml
340
+ # .idea/jarRepositories.xml
341
+ # .idea/modules.xml
342
+ # .idea/*.iml
343
+ # .idea/modules
344
+ # *.iml
345
+ # *.ipr
346
+
347
+ # CMake
348
+ cmake-build-*/
349
+
350
+ # Mongo Explorer plugin
351
+ .idea/**/mongoSettings.xml
352
+
353
+ # File-based project format
354
+ *.iws
355
+
356
+ # IntelliJ
357
+ out/
358
+
359
+ # mpeltonen/sbt-idea plugin
360
+ .idea_modules/
361
+
362
+ # JIRA plugin
363
+ atlassian-ide-plugin.xml
364
+
365
+ # Cursive Clojure plugin
366
+ .idea/replstate.xml
367
+
368
+ # Crashlytics plugin (for Android Studio and IntelliJ)
369
+ com_crashlytics_export_strings.xml
370
+ crashlytics.properties
371
+ crashlytics-build.properties
372
+ fabric.properties
373
+
374
+ # Editor-based Rest Client
375
+ .idea/httpRequests
376
+
377
+ # Android studio 3.1+ serialized cache file
378
+ .idea/caches/build_file_checksums.ser
379
+
380
+ ### WebStorm+all Patch ###
381
+ # Ignores the whole .idea folder and all .iml files
382
+ # See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360
383
+
384
+ .idea/
385
+
386
+ # Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023
387
+
388
+ *.iml
389
+ modules.xml
390
+ .idea/misc.xml
391
+ *.ipr
392
+
393
+ # Sonarlint plugin
394
+ .idea/sonarlint
395
+
396
+ ### Windows ###
397
+ # Windows thumbnail cache files
398
+ Thumbs.db
399
+ Thumbs.db:encryptable
400
+ ehthumbs.db
401
+ ehthumbs_vista.db
402
+
403
+ # Dump file
404
+ *.stackdump
405
+
406
+ # Folder config file
407
+ [Dd]esktop.ini
408
+
409
+ # Recycle Bin used on file shares
410
+ $RECYCLE.BIN/
411
+
412
+ # Windows Installer files
413
+ *.cab
414
+ *.msi
415
+ *.msix
416
+ *.msm
417
+ *.msp
418
+
419
+ # Windows shortcuts
420
+ *.lnk
421
+
422
+ # End of https://www.toptal.com/developers/gitignore/api/vim,ruby,linux,emacs,macos,rails,jekyll,textmate,sublimetext,visualstudiocode,windows,webstorm+all
data/.rubocop.yml CHANGED
@@ -9,7 +9,7 @@ inherit_from:
9
9
  AllCops:
10
10
  DisplayCopNames: false
11
11
  StyleGuideCopsOnly: false
12
- TargetRubyVersion: 2.3
12
+ TargetRubyVersion: 2.7
13
13
 
14
14
  Rails:
15
15
  Enabled: false
data/.travis.yml CHANGED
@@ -83,6 +83,12 @@ matrix:
83
83
  include:
84
84
  - env: TEST_WITHOUT_RNP="1"
85
85
  - env: TEST_WITHOUT_GPGME="1"
86
+ # Test against older GPG versions
87
+ - env: GPG_VERSION="2.1" EXPECT_GPG_VERSION="2.1"
88
+ - gemfile: "ci/Mail-2.6.4.gemfile"
89
+ - gemfile: "ci/Mail-2.6.gemfile"
90
+ - gemfile: "ci/Mail-head.gemfile"
86
91
 
87
92
  allow_failures:
88
93
  - rvm: ruby-head
94
+ - gemfile: "ci/Mail-head.gemfile"
data/Gemfile CHANGED
@@ -11,3 +11,9 @@ gem "simplecov", require: false, group: :test
11
11
 
12
12
  gem "gpgme", install_if: -> { !ENV["TEST_WITHOUT_GPGME"] }
13
13
  gem "rnp", install_if: -> { !ENV["TEST_WITHOUT_RNP"] }
14
+
15
+ group :development do
16
+ gem "rubocop", require: false
17
+ gem "rubocop-performance", require: false
18
+ gem "rubocop-rails", require: false
19
+ end
data/README.adoc CHANGED
@@ -4,7 +4,7 @@ ifdef::env-github[]
4
4
  image:https://img.shields.io/gem/v/enmail.svg[
5
5
  Gem Version, link="https://rubygems.org/gems/enmail"]
6
6
  image:https://img.shields.io/travis/riboseinc/enmail/master.svg[
7
- Build Status, link="https://travis-ci.org/riboseinc/enmail/branches"]
7
+ Build Status, link="https://travis-ci.com/riboseinc/enmail/branches"]
8
8
  image:https://img.shields.io/codecov/c/github/riboseinc/enmail.svg[
9
9
  Test Coverage, link="https://codecov.io/gh/riboseinc/enmail"]
10
10
  image:https://img.shields.io/codeclimate/maintainability/riboseinc/enmail.svg[
data/Rakefile CHANGED
@@ -60,11 +60,17 @@ namespace :pgp_keys do
60
60
 
61
61
  desc "Generates keys in tmp/pgp_home"
62
62
  task :generate => :prepare do
63
+ # NOTE:
64
+ # - "cert" flag is implicit in "Key-Usage". It is harmless to specify
65
+ # it in GnuPG 2.2, but it is not recognized in 2.1.
66
+ # - For keys which are not password-protected, "%no-protection" is required
67
+ # in GnuPG 2.2, whereas it is ignored (with a warning) in 2.1.
68
+
63
69
  # Key pairs without password
64
70
  generate_pgp_keys(<<~KEY_PARAMS)
65
71
  %no-protection
66
72
  Key-Type: RSA
67
- Key-Usage: sign, cert
73
+ Key-Usage: sign
68
74
  Key-Length: 2048
69
75
  Subkey-Type: RSA
70
76
  Subkey-Length: 2048
@@ -78,7 +84,7 @@ namespace :pgp_keys do
78
84
  generate_pgp_keys(<<~KEY_PARAMS)
79
85
  %no-protection
80
86
  Key-Type: RSA
81
- Key-Usage: sign, cert
87
+ Key-Usage: sign
82
88
  Key-Length: 2048
83
89
  Subkey-Type: RSA
84
90
  Subkey-Length: 2048
@@ -92,7 +98,7 @@ namespace :pgp_keys do
92
98
  generate_pgp_keys(<<~KEY_PARAMS)
93
99
  %no-protection
94
100
  Key-Type: RSA
95
- Key-Usage: sign, cert
101
+ Key-Usage: sign
96
102
  Key-Length: 2048
97
103
  Subkey-Type: RSA
98
104
  Subkey-Length: 2048
@@ -106,7 +112,7 @@ namespace :pgp_keys do
106
112
  # Password-protected key pairs
107
113
  generate_pgp_keys(<<~KEY_PARAMS)
108
114
  Key-Type: RSA
109
- Key-Usage: sign, cert
115
+ Key-Usage: sign
110
116
  Key-Length: 2048
111
117
  Subkey-Type: RSA
112
118
  Subkey-Length: 2048
@@ -0,0 +1,3 @@
1
+ eval_gemfile "../Gemfile"
2
+
3
+ gem "mail", "= 2.6.4"
@@ -0,0 +1,3 @@
1
+ eval_gemfile "../Gemfile"
2
+
3
+ gem "mail", "~> 2.6.0"
@@ -0,0 +1,3 @@
1
+ eval_gemfile "../Gemfile"
2
+
3
+ gem "mail", github: "mikel/mail"
@@ -7,7 +7,7 @@ https://gnupg.org/software/gpgme/index.html[GnuPG Made Easy] library.
7
7
 
8
8
  This adapter requries two additional pieces of software to be installed:
9
9
 
10
- 1. GnuPG, version 2.2
10
+ 1. GnuPG, version 2.1 or newer
11
11
  2. `https://rubygems.org/gems/gpgme[gpgme]` gem
12
12
 
13
13
  == Options
data/enmail.gemspec CHANGED
@@ -32,7 +32,11 @@ Gem::Specification.new do |spec|
32
32
  # Mail 2.6.4 has been released on March 23, 2016, hence should be considered
33
33
  # old enough. Nevertheless, pull requests which extend compatibility will be
34
34
  # accepted.
35
- spec.add_dependency "mail", "~> 2.6.4"
35
+ #
36
+ # Version 2.7.0 has been blacklisted due to some bug (not sure which one
37
+ # exactly) in that version, which is fatal for EnMail. That bug has been
38
+ # fixed in 2.7.1.
39
+ spec.add_dependency "mail", "~> 2.6", ">= 2.6.4", "!= 2.7.0"
36
40
 
37
41
  spec.add_development_dependency "bundler", ">= 1.14", "< 3.0"
38
42
  spec.add_development_dependency "gpgme", *EnMail::DependencyConstraints::GPGME
@@ -35,10 +35,10 @@ module EnMail
35
35
  ctx.sign(plain, output, mode)
36
36
  hash_algorithm_num = ctx.sign_result.signatures[0].hash_algo
37
37
  hash_algorithm = ::GPGME.hash_algo_name(hash_algorithm_num)
38
- rescue ::GPGME::Error::UnusableSecretKey => exc
38
+ rescue ::GPGME::Error::UnusableSecretKey => e
39
39
  # TODO Copy-pasted from GPGME gem. Needs any test coverage.
40
- exc.keys = ctx.sign_result.invalid_signers
41
- raise exc
40
+ e.keys = ctx.sign_result.invalid_signers
41
+ raise e
42
42
  end
43
43
  end
44
44
 
@@ -25,13 +25,23 @@ module EnMail
25
25
  part = ::Mail::Part.new
26
26
  part.content_type = message.content_type
27
27
  if message.multipart?
28
- message.body.parts.each { |p| part.add_part p.dup }
28
+ message.body.parts.each { |p| part.add_part duplicate_part(p) }
29
29
  else
30
30
  part.body = message.body.decoded
31
31
  end
32
32
  part
33
33
  end
34
34
 
35
+ # Duplicates a message part, preserving its Content-ID if present.
36
+ #
37
+ # @param [Mail::Part] part message part
38
+ # @return [Mail::Part] duplicate of +part+
39
+ def duplicate_part(part)
40
+ duplicate = part.dup
41
+ duplicate.add_content_id(part.content_id) unless part.content_id.nil?
42
+ duplicate
43
+ end
44
+
35
45
  # Detects a list of e-mails which should be used to define a list of
36
46
  # recipients of encrypted message. All is simply taken from the message
37
47
  # +To:+ field.
@@ -85,7 +85,7 @@ module EnMail
85
85
  part
86
86
  end
87
87
 
88
- def multipart_signed_content_type(protocol: sign_protocol, micalg:)
88
+ def multipart_signed_content_type(micalg:, protocol: sign_protocol)
89
89
  %[multipart/signed; protocol="#{protocol}"; micalg="#{micalg}"]
90
90
  end
91
91
 
@@ -2,5 +2,5 @@
2
2
  #
3
3
 
4
4
  module EnMail
5
- VERSION = "0.2.0".freeze
5
+ VERSION = "0.2.1".freeze
6
6
  end
metadata CHANGED
@@ -1,29 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: enmail
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-03-20 00:00:00.000000000 Z
11
+ date: 2021-07-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mail
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.6'
20
+ - - ">="
18
21
  - !ruby/object:Gem::Version
19
22
  version: 2.6.4
23
+ - - "!="
24
+ - !ruby/object:Gem::Version
25
+ version: 2.7.0
20
26
  type: :runtime
21
27
  prerelease: false
22
28
  version_requirements: !ruby/object:Gem::Requirement
23
29
  requirements:
24
30
  - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '2.6'
33
+ - - ">="
25
34
  - !ruby/object:Gem::Version
26
35
  version: 2.6.4
36
+ - - "!="
37
+ - !ruby/object:Gem::Version
38
+ version: 2.7.0
27
39
  - !ruby/object:Gem::Dependency
28
40
  name: bundler
29
41
  requirement: !ruby/object:Gem::Requirement
@@ -154,6 +166,7 @@ extensions: []
154
166
  extra_rdoc_files: []
155
167
  files:
156
168
  - ".editorconfig"
169
+ - ".gitattributes"
157
170
  - ".gitignore"
158
171
  - ".gitmodules"
159
172
  - ".hound.yml"
@@ -169,6 +182,9 @@ files:
169
182
  - bin/console
170
183
  - bin/rspec
171
184
  - bin/setup
185
+ - ci/Mail-2.6.4.gemfile
186
+ - ci/Mail-2.6.gemfile
187
+ - ci/Mail-head.gemfile
172
188
  - ci/install_botan.sh
173
189
  - ci/install_json_c.sh
174
190
  - ci/install_rnp.sh
@@ -191,7 +207,7 @@ homepage: https://github.com/riboseinc/enmail
191
207
  licenses:
192
208
  - MIT
193
209
  metadata: {}
194
- post_install_message:
210
+ post_install_message:
195
211
  rdoc_options: []
196
212
  require_paths:
197
213
  - lib
@@ -206,8 +222,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
206
222
  - !ruby/object:Gem::Version
207
223
  version: '0'
208
224
  requirements: []
209
- rubygems_version: 3.0.1
210
- signing_key:
225
+ rubygems_version: 3.1.4
226
+ signing_key:
211
227
  specification_version: 4
212
228
  summary: Encrypted Email in Ruby
213
229
  test_files: []