mail-notify 1.1.0 → 2.0.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.
@@ -6,20 +6,28 @@ module Mail
6
6
  attr_accessor :settings, :response
7
7
 
8
8
  def initialize(settings)
9
- raise ArgumentError, "You must specify an API key" if settings[:api_key].blank?
9
+ raise ArgumentError, "You must specify a Notify API key" if settings[:api_key].blank?
10
10
 
11
11
  @settings = settings
12
12
  end
13
13
 
14
- def deliver!(mail)
15
- @mail = mail
16
- @personalisation = Personalisation.new(mail)
17
- send_email
14
+ def deliver!(message)
15
+ params = {
16
+ template_id: message.template_id,
17
+ email_address: message.to.first,
18
+ personalisation: message.personalisation,
19
+ email_reply_to_id: message.reply_to_id,
20
+ reference: message.reference
21
+ }
22
+
23
+ client.send_email(params.compact)
18
24
  end
19
25
 
20
- def preview(mail)
21
- personalisation = Personalisation.new(mail).to_h
22
- template_id = mail[:template_id].to_s
26
+ def preview(message)
27
+ template_id = message.template_id
28
+ personalisation = message.personalisation
29
+
30
+ Rails.logger.info("Getting Notify preview for template id #{template_id}")
23
31
  client.generate_template_preview(template_id, personalisation: personalisation)
24
32
  end
25
33
 
@@ -28,24 +36,6 @@ module Mail
28
36
  def client
29
37
  @client ||= Notifications::Client.new(@settings[:api_key], @settings[:base_url])
30
38
  end
31
-
32
- def email_params
33
- {
34
- email_address: @mail.to.first,
35
- template_id: @mail[:template_id].to_s,
36
- personalisation: @personalisation.to_h,
37
- email_reply_to_id: optional_param(:reply_to_id),
38
- reference: optional_param(:reference)
39
- }
40
- end
41
-
42
- def optional_param(name)
43
- @mail[name].presence&.to_s
44
- end
45
-
46
- def send_email
47
- @response = client.send_email(email_params.compact)
48
- end
49
39
  end
50
40
  end
51
41
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mail
4
+ module Notify
5
+ class Engine < Rails::Engine
6
+ initializer "mail-notify.add_delivery_method", before: "action_mailer.set_configs" do
7
+ ActionMailer::Base.add_delivery_method(:notify, Mail::Notify::DeliveryMethod)
8
+
9
+ config.action_mailer.preview_interceptors = [:mail_notify_preview_interceptor]
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ ##
4
+ # This is a ActionMailer interceptor class for previews from the Notifications API
5
+ #
6
+ # See ActionMailer::Base:
7
+ #
8
+ # https://github.com/rails/rails/blob/v5.2.8.1/actionmailer/lib/action_mailer/base.rb#L367
9
+
10
+ class MailNotifyPreviewInterceptor
11
+ ##
12
+ # ActionMailer call back when a preview is being generated.
13
+ #
14
+ # Transforms the content of the passed in message.
15
+
16
+ def self.previewing_email(message)
17
+ new(message).transform!
18
+ end
19
+
20
+ ##
21
+ # Creates a new MailNotifyPreviewInterceptor ready for use.
22
+
23
+ def initialize(message)
24
+ @message = message
25
+ end
26
+
27
+ ##
28
+ # Transforms the content of the message to that from the Notifications API preview.
29
+ #
30
+ # The html is wrapped in a layout and rendered by the MailNotifyPreviewsControllers renderer.
31
+
32
+ def transform!
33
+ # the messages delivery method will be our Mail::Notify::DeliveryMethod and have the `preview` method.
34
+ preview = @message.delivery_method.preview(@message)
35
+
36
+ @message.subject = preview.subject
37
+ @message.html_part.body = renderer.render html: preview.html.html_safe, layout: "govuk_notify_layout"
38
+ @message.text_part.body = preview.body
39
+
40
+ @message
41
+ end
42
+
43
+ private
44
+
45
+ def renderer
46
+ # rendering in Rails without a controller gets far too complicated, instead
47
+ # we rely on this empty controller to do it for us.
48
+
49
+ MailNotifyPreviewsController.renderer
50
+ end
51
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ ##
4
+ # Empty controller used by MailNotifyPreviewInterceptor to render html.
5
+
6
+ class MailNotifyPreviewsController < ActionController::Base; end
@@ -2,21 +2,99 @@
2
2
 
3
3
  module Mail
4
4
  module Notify
5
+ ##
6
+ # The Mail Notify base Mailer class, overridden in Rails applications to provide the additional
7
+ # Notify behaviour along with the application behaviour.
8
+
5
9
  class Mailer < ActionMailer::Base
6
- def view_mail(template_id, headers)
7
- raise ArgumentError, "You must specify a template ID" if template_id.blank?
10
+ ##
11
+ # Set a default from address, will only be used in previews if a from address is not supplied
12
+ # by subclasses
13
+
14
+ default from: "preview@notifications.service.gov.uk"
15
+
16
+ ##
17
+ # Send an email where the content is managed in the Notify template.
18
+ #
19
+ # The required arguments are:
20
+ #
21
+ # - template_id
22
+ # - to address
23
+ #
24
+ # Can include personalisation.
25
+ #
26
+ # Add any additional headers in the options hash.
27
+ #
28
+ # A default subject is supplied as ActionMailer requires one, however it will never be used as
29
+ # the subject is assumed to be managed in the Notify template.
30
+
31
+ def template_mail(template_id, options)
32
+ raise ArgumentError, "You must specify a Notify template ID" if template_id.blank?
33
+ raise ArgumentError, "You must specify a to address" if options[:to].nil? || options[:to].blank?
34
+
35
+ message.template_id = template_id
36
+ message.reply_to_id = options[:reply_to_id]
37
+ message.reference = options[:reference]
38
+
39
+ message.personalisation = options[:personalisation] || {}
40
+
41
+ headers = options.except([:personalisation, :reply_to_id, :reference])
8
42
 
9
- mail(headers.merge(template_id: template_id))
43
+ headers[:subject] = "Subject managed in Notify" unless options[:subject]
44
+
45
+ # We have to set the html and the plain text content to nil to prevent Rails from looking
46
+ # for the content in the views. We replace nil with the content returned from Notify before
47
+ # sending or previewing
48
+ mail(headers) do |format|
49
+ format.text { nil }
50
+ format.html { nil }
51
+ end
10
52
  end
11
53
 
12
- def template_mail(template_id, headers)
13
- raise ArgumentError, "You must specify a template ID" if template_id.blank?
54
+ ##
55
+ # Send an email where the content is managed in the Rails application.
56
+ #
57
+ # The required arguments are:
58
+ #
59
+ # - template_id
60
+ # - to address
61
+ # - subject
62
+ #
63
+ # Personalisation will dropped as all content comes from the view provided by Rails.
64
+ #
65
+ # Add any additional headers in the options hash.
66
+
67
+ def view_mail(template_id, options)
68
+ raise ArgumentError, "You must specify a Notify template ID" if template_id.blank?
69
+ raise ArgumentError, "You must supply a to address" if options[:to].blank?
70
+ raise ArgumentError, "You must specify a subject" if options[:subject].blank?
71
+
72
+ message.template_id = template_id
73
+ message.reply_to_id = options[:reply_to_id]
74
+ message.reference = options[:reference]
75
+
76
+ subject = options[:subject]
77
+ headers = options.except([:personalisation, :reply_to_id, :reference])
14
78
 
15
- mail(headers.merge(body: "", subject: "", template_id: template_id))
79
+ # we have to render the view for the message and grab the raw source, then we set that as the
80
+ # body in the personalisation for sending to the Notify API.
81
+ body = mail(headers).body.raw_source
82
+
83
+ # The 'view mail' works by sending a subject and body as personalisation options, these are
84
+ # then used in the Notify template to provide content.
85
+ message.personalisation = {subject: subject, body: body}
86
+
87
+ mail(headers) do |format|
88
+ format.text { nil }
89
+ format.html { nil }
90
+ end
16
91
  end
17
92
 
93
+ ##
94
+ # allows blank personalisation options
95
+
18
96
  def blank_allowed(value)
19
- value.presence || Personalisation::BLANK
97
+ value.to_s
20
98
  end
21
99
  end
22
100
  end
@@ -3,9 +3,7 @@
3
3
  module Mail
4
4
  module Notify
5
5
  module Message
6
- def preview
7
- delivery_method.preview(self) if delivery_method.respond_to?(:preview)
8
- end
6
+ attr_accessor :template_id, :personalisation, :reply_to_id, :reference
9
7
  end
10
8
  end
11
9
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Mail
4
4
  module Notify
5
- VERSION = "1.1.0"
5
+ VERSION = "2.0.0"
6
6
  end
7
7
  end
data/lib/mail/notify.rb CHANGED
@@ -3,12 +3,12 @@
3
3
  require "notifications/client"
4
4
 
5
5
  require "mail/notify/version"
6
- require "mail/notify/railtie" if defined? Rails
6
+ require "mail/notify/engine" if defined? Rails
7
7
  require "mail/notify/delivery_method"
8
- require "mail/notify/personalisation"
9
8
  require "mail/notify/mailer"
10
9
  require "mail/notify/message"
11
- require "mail/notify/mailers_controller"
10
+ require "mail/notify/mail_notify_previews_controller"
11
+ require "mail/notify/mail_notify_preview_interceptor"
12
12
 
13
13
  Mail::Message.include Mail::Notify::Message
14
14
 
data/mail-notify.gemspec CHANGED
@@ -7,13 +7,15 @@ require "mail/notify/version"
7
7
  Gem::Specification.new do |spec|
8
8
  spec.name = "mail-notify"
9
9
  spec.version = Mail::Notify::VERSION
10
- spec.authors = ["Stuart Harrison"]
10
+ spec.authors = ["Stuart Harrison", "Meyric Rawlings"]
11
11
  spec.email = ["pezholio@gmail.com"]
12
12
 
13
- spec.summary = "ActionMailer support for the GOV.UK Notify API"
13
+ spec.summary = "Rails plugin, send and preview email with GOV.UK Notify"
14
14
  spec.homepage = "https://github.com/dxw/mail-notify"
15
15
  spec.license = "MIT"
16
16
 
17
+ spec.required_ruby_version = ">= 2.7.8"
18
+
17
19
  # Specify which files should be added to the gem when it is released.
18
20
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
19
21
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
@@ -24,19 +26,21 @@ Gem::Specification.new do |spec|
24
26
  spec.require_paths = ["lib"]
25
27
 
26
28
  spec.add_development_dependency "bundler", "~> 2.0"
27
- spec.add_development_dependency "coveralls", "~> 0.8.22"
29
+ spec.add_development_dependency "simplecov", "~> 0.21"
30
+ spec.add_development_dependency "simplecov-lcov"
28
31
  spec.add_development_dependency "pry", "~> 0.14.1"
29
- spec.add_development_dependency "rails", "~> 6.0"
30
- spec.add_development_dependency "rake", "~> 13.0.6"
32
+ spec.add_development_dependency "rails", "7.0.8"
33
+ spec.add_development_dependency "rake", "~> 13.2.1"
31
34
  spec.add_development_dependency "rspec-rails", "~> 5.1"
32
- spec.add_development_dependency "standard", "1.16.1"
33
- spec.add_development_dependency "sqlite3", "~> 1.4.1"
34
- spec.add_development_dependency "webmock", "~> 3.18.1"
35
+ spec.add_development_dependency "standard", "~> 1"
36
+ spec.add_development_dependency "sqlite3", "~> 1.7.2"
37
+ spec.add_development_dependency "webmock", "~> 3.23.0"
38
+ spec.add_development_dependency "rspec-mocks", "~> 3.13.0"
35
39
 
36
- spec.add_dependency "actionmailer", ">= 5.2.4.6"
37
- spec.add_dependency "activesupport", ">= 5.2.4.6"
38
- spec.add_dependency "actionpack", ">= 5.2.7.1"
39
- spec.add_dependency "actionview", ">= 5.2.7.1"
40
- spec.add_dependency "notifications-ruby-client", "~> 5.1"
41
40
  spec.add_dependency "rack", ">= 2.1.4.1"
41
+ spec.add_dependency "actionmailer", ">= 5.2.8.1"
42
+ spec.add_dependency "activesupport", ">= 5.2.8.1"
43
+ spec.add_dependency "actionpack", ">= 5.2.8.1"
44
+ spec.add_dependency "actionview", ">= 5.2.8.1"
45
+ spec.add_dependency "notifications-ruby-client", "~> 6.0"
42
46
  end
data/renovate.json CHANGED
@@ -2,5 +2,7 @@
2
2
  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3
3
  "extends": [
4
4
  "config:base"
5
- ]
5
+ ],
6
+ "dependencyDashboard": false,
7
+ "ignoreDeps": ["ruby-version"]
6
8
  }
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mail-notify
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stuart Harrison
8
+ - Meyric Rawlings
8
9
  autorequire:
9
10
  bindir: exe
10
11
  cert_chain: []
11
- date: 2022-09-09 00:00:00.000000000 Z
12
+ date: 2024-04-23 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: bundler
@@ -25,19 +26,33 @@ dependencies:
25
26
  - !ruby/object:Gem::Version
26
27
  version: '2.0'
27
28
  - !ruby/object:Gem::Dependency
28
- name: coveralls
29
+ name: simplecov
29
30
  requirement: !ruby/object:Gem::Requirement
30
31
  requirements:
31
32
  - - "~>"
32
33
  - !ruby/object:Gem::Version
33
- version: 0.8.22
34
+ version: '0.21'
34
35
  type: :development
35
36
  prerelease: false
36
37
  version_requirements: !ruby/object:Gem::Requirement
37
38
  requirements:
38
39
  - - "~>"
39
40
  - !ruby/object:Gem::Version
40
- version: 0.8.22
41
+ version: '0.21'
42
+ - !ruby/object:Gem::Dependency
43
+ name: simplecov-lcov
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
41
56
  - !ruby/object:Gem::Dependency
42
57
  name: pry
43
58
  requirement: !ruby/object:Gem::Requirement
@@ -56,30 +71,30 @@ dependencies:
56
71
  name: rails
57
72
  requirement: !ruby/object:Gem::Requirement
58
73
  requirements:
59
- - - "~>"
74
+ - - '='
60
75
  - !ruby/object:Gem::Version
61
- version: '6.0'
76
+ version: 7.0.8
62
77
  type: :development
63
78
  prerelease: false
64
79
  version_requirements: !ruby/object:Gem::Requirement
65
80
  requirements:
66
- - - "~>"
81
+ - - '='
67
82
  - !ruby/object:Gem::Version
68
- version: '6.0'
83
+ version: 7.0.8
69
84
  - !ruby/object:Gem::Dependency
70
85
  name: rake
71
86
  requirement: !ruby/object:Gem::Requirement
72
87
  requirements:
73
88
  - - "~>"
74
89
  - !ruby/object:Gem::Version
75
- version: 13.0.6
90
+ version: 13.2.1
76
91
  type: :development
77
92
  prerelease: false
78
93
  version_requirements: !ruby/object:Gem::Requirement
79
94
  requirements:
80
95
  - - "~>"
81
96
  - !ruby/object:Gem::Version
82
- version: 13.0.6
97
+ version: 13.2.1
83
98
  - !ruby/object:Gem::Dependency
84
99
  name: rspec-rails
85
100
  requirement: !ruby/object:Gem::Requirement
@@ -98,128 +113,142 @@ dependencies:
98
113
  name: standard
99
114
  requirement: !ruby/object:Gem::Requirement
100
115
  requirements:
101
- - - '='
116
+ - - "~>"
102
117
  - !ruby/object:Gem::Version
103
- version: 1.16.1
118
+ version: '1'
104
119
  type: :development
105
120
  prerelease: false
106
121
  version_requirements: !ruby/object:Gem::Requirement
107
122
  requirements:
108
- - - '='
123
+ - - "~>"
109
124
  - !ruby/object:Gem::Version
110
- version: 1.16.1
125
+ version: '1'
111
126
  - !ruby/object:Gem::Dependency
112
127
  name: sqlite3
113
128
  requirement: !ruby/object:Gem::Requirement
114
129
  requirements:
115
130
  - - "~>"
116
131
  - !ruby/object:Gem::Version
117
- version: 1.4.1
132
+ version: 1.7.2
118
133
  type: :development
119
134
  prerelease: false
120
135
  version_requirements: !ruby/object:Gem::Requirement
121
136
  requirements:
122
137
  - - "~>"
123
138
  - !ruby/object:Gem::Version
124
- version: 1.4.1
139
+ version: 1.7.2
125
140
  - !ruby/object:Gem::Dependency
126
141
  name: webmock
127
142
  requirement: !ruby/object:Gem::Requirement
128
143
  requirements:
129
144
  - - "~>"
130
145
  - !ruby/object:Gem::Version
131
- version: 3.18.1
146
+ version: 3.23.0
132
147
  type: :development
133
148
  prerelease: false
134
149
  version_requirements: !ruby/object:Gem::Requirement
135
150
  requirements:
136
151
  - - "~>"
137
152
  - !ruby/object:Gem::Version
138
- version: 3.18.1
153
+ version: 3.23.0
139
154
  - !ruby/object:Gem::Dependency
140
- name: actionmailer
155
+ name: rspec-mocks
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - "~>"
159
+ - !ruby/object:Gem::Version
160
+ version: 3.13.0
161
+ type: :development
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - "~>"
166
+ - !ruby/object:Gem::Version
167
+ version: 3.13.0
168
+ - !ruby/object:Gem::Dependency
169
+ name: rack
141
170
  requirement: !ruby/object:Gem::Requirement
142
171
  requirements:
143
172
  - - ">="
144
173
  - !ruby/object:Gem::Version
145
- version: 5.2.4.6
174
+ version: 2.1.4.1
146
175
  type: :runtime
147
176
  prerelease: false
148
177
  version_requirements: !ruby/object:Gem::Requirement
149
178
  requirements:
150
179
  - - ">="
151
180
  - !ruby/object:Gem::Version
152
- version: 5.2.4.6
181
+ version: 2.1.4.1
153
182
  - !ruby/object:Gem::Dependency
154
- name: activesupport
183
+ name: actionmailer
155
184
  requirement: !ruby/object:Gem::Requirement
156
185
  requirements:
157
186
  - - ">="
158
187
  - !ruby/object:Gem::Version
159
- version: 5.2.4.6
188
+ version: 5.2.8.1
160
189
  type: :runtime
161
190
  prerelease: false
162
191
  version_requirements: !ruby/object:Gem::Requirement
163
192
  requirements:
164
193
  - - ">="
165
194
  - !ruby/object:Gem::Version
166
- version: 5.2.4.6
195
+ version: 5.2.8.1
167
196
  - !ruby/object:Gem::Dependency
168
- name: actionpack
197
+ name: activesupport
169
198
  requirement: !ruby/object:Gem::Requirement
170
199
  requirements:
171
200
  - - ">="
172
201
  - !ruby/object:Gem::Version
173
- version: 5.2.7.1
202
+ version: 5.2.8.1
174
203
  type: :runtime
175
204
  prerelease: false
176
205
  version_requirements: !ruby/object:Gem::Requirement
177
206
  requirements:
178
207
  - - ">="
179
208
  - !ruby/object:Gem::Version
180
- version: 5.2.7.1
209
+ version: 5.2.8.1
181
210
  - !ruby/object:Gem::Dependency
182
- name: actionview
211
+ name: actionpack
183
212
  requirement: !ruby/object:Gem::Requirement
184
213
  requirements:
185
214
  - - ">="
186
215
  - !ruby/object:Gem::Version
187
- version: 5.2.7.1
216
+ version: 5.2.8.1
188
217
  type: :runtime
189
218
  prerelease: false
190
219
  version_requirements: !ruby/object:Gem::Requirement
191
220
  requirements:
192
221
  - - ">="
193
222
  - !ruby/object:Gem::Version
194
- version: 5.2.7.1
223
+ version: 5.2.8.1
195
224
  - !ruby/object:Gem::Dependency
196
- name: notifications-ruby-client
225
+ name: actionview
197
226
  requirement: !ruby/object:Gem::Requirement
198
227
  requirements:
199
- - - "~>"
228
+ - - ">="
200
229
  - !ruby/object:Gem::Version
201
- version: '5.1'
230
+ version: 5.2.8.1
202
231
  type: :runtime
203
232
  prerelease: false
204
233
  version_requirements: !ruby/object:Gem::Requirement
205
234
  requirements:
206
- - - "~>"
235
+ - - ">="
207
236
  - !ruby/object:Gem::Version
208
- version: '5.1'
237
+ version: 5.2.8.1
209
238
  - !ruby/object:Gem::Dependency
210
- name: rack
239
+ name: notifications-ruby-client
211
240
  requirement: !ruby/object:Gem::Requirement
212
241
  requirements:
213
- - - ">="
242
+ - - "~>"
214
243
  - !ruby/object:Gem::Version
215
- version: 2.1.4.1
244
+ version: '6.0'
216
245
  type: :runtime
217
246
  prerelease: false
218
247
  version_requirements: !ruby/object:Gem::Requirement
219
248
  requirements:
220
- - - ">="
249
+ - - "~>"
221
250
  - !ruby/object:Gem::Version
222
- version: 2.1.4.1
251
+ version: '6.0'
223
252
  description:
224
253
  email:
225
254
  - pezholio@gmail.com
@@ -227,11 +256,11 @@ executables: []
227
256
  extensions: []
228
257
  extra_rdoc_files: []
229
258
  files:
230
- - ".coveralls.yml"
231
259
  - ".github/dependabot.yml"
232
260
  - ".github/setup-rubygems.sh"
233
- - ".github/workflows/build.yml"
261
+ - ".github/workflows/ci.yml"
234
262
  - ".github/workflows/publish.yml"
263
+ - ".github/workflows/rails-integration-tests.yml"
235
264
  - ".gitignore"
236
265
  - ".rspec"
237
266
  - ".rubocop.yml"
@@ -239,21 +268,24 @@ files:
239
268
  - CHANGELOG.md
240
269
  - CODE_OF_CONDUCT.md
241
270
  - CONTRIBUTING.md
271
+ - Dockerfile
242
272
  - Gemfile
243
273
  - LICENSE.txt
244
274
  - README.md
245
275
  - Rakefile
276
+ - app/views/layouts/govuk_notify_layout.html.erb
246
277
  - bin/console
278
+ - bin/rspec
247
279
  - bin/setup
280
+ - bin/standardrb
248
281
  - docs/screenshot.png
249
282
  - lib/mail/notify.rb
250
283
  - lib/mail/notify/delivery_method.rb
251
- - lib/mail/notify/layouts/govuk_notify_layout.html.erb
284
+ - lib/mail/notify/engine.rb
285
+ - lib/mail/notify/mail_notify_preview_interceptor.rb
286
+ - lib/mail/notify/mail_notify_previews_controller.rb
252
287
  - lib/mail/notify/mailer.rb
253
- - lib/mail/notify/mailers_controller.rb
254
288
  - lib/mail/notify/message.rb
255
- - lib/mail/notify/personalisation.rb
256
- - lib/mail/notify/railtie.rb
257
289
  - lib/mail/notify/version.rb
258
290
  - mail-notify.gemspec
259
291
  - renovate.json
@@ -269,7 +301,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
269
301
  requirements:
270
302
  - - ">="
271
303
  - !ruby/object:Gem::Version
272
- version: '0'
304
+ version: 2.7.8
273
305
  required_rubygems_version: !ruby/object:Gem::Requirement
274
306
  requirements:
275
307
  - - ">="
@@ -279,5 +311,5 @@ requirements: []
279
311
  rubygems_version: 3.1.6
280
312
  signing_key:
281
313
  specification_version: 4
282
- summary: ActionMailer support for the GOV.UK Notify API
314
+ summary: Rails plugin, send and preview email with GOV.UK Notify
283
315
  test_files: []
data/.coveralls.yml DELETED
File without changes