enmail 0.2.0 → 0.2.1

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.
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: []