mail-notify 1.1.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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