roadie 5.2.0 → 5.3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d61e03043b7a3086eeccdb7ca1e804ca3eebb5b6dabcc96d09bd5a7daa06b845
4
- data.tar.gz: d48918c67a5fe53b88e1b2607269fdf353457e8829cc7dba84bdab3f308426d3
3
+ metadata.gz: 96742d54db0bcce3378c12b2b689505fd01be6aa7ce21332f04e846f838d4cb7
4
+ data.tar.gz: ea28fe9a85e44b1148ae8c42ef30eb56f91b716c2626139f2e2e88e70e8f26a0
5
5
  SHA512:
6
- metadata.gz: 7e646c9a1864e7eb00fef92649583203721b551194ae9c5dd8f979200f8fae06f84b0298252dc3f851585f45047a66ae8f10c417dcdda776046cfc5c59267c0a
7
- data.tar.gz: 0f01356119714952a4715ae0db43b96dc964168572943e7a9837cdbadadf493db56440484a6d6564fcccec6cbbc125076bf1cade4e588674ad9802dd7120d5a0
6
+ metadata.gz: bbfd1d8f8ecb48f6e19e935494dad63f74b3a5bf10cc4c35144fc0566c182df714ad287fe848e467a597c5ba3fc2aeaced0b8d517b1e0a7f021f4ad630e52107
7
+ data.tar.gz: eaad01a99309b26937df224ec5bfad1cc3c76407d307ca34823d8ad90d04c779176edcb6c75492240788a37c3f8d8085972c45ac51ccc2610ac9774ad645897b
@@ -1,25 +1,45 @@
1
1
  name: Main
2
2
  on:
3
+ schedule:
4
+ # Run on the first day of every month
5
+ # https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule
6
+ - cron: '0 0 1 * *'
7
+ # Allow running manually
8
+ # For more details: https://docs.github.com/en/actions/using-workflows/manually-running-a-workflow?tool=webui
9
+ workflow_dispatch:
3
10
  push:
4
11
  branches:
5
12
  - main
6
13
  - master
14
+ paths-ignore:
15
+ - '**.md'
7
16
 
8
17
  pull_request:
9
18
  types: [opened, synchronize, reopened]
10
19
 
11
20
  jobs:
12
21
  base:
13
- name: Ruby ${{ matrix.ruby }}
14
- runs-on: ubuntu-20.04
22
+ name: Ruby ${{ matrix.ruby }} / ${{ matrix.css_parser.name }}
23
+ runs-on: ubuntu-latest
15
24
  strategy:
16
25
  fail-fast: false
17
26
  matrix:
18
- ruby: ["2.7", "3.0", "3.1", "3.2"]
27
+ ruby:
28
+ - "3.3"
29
+ - "3.4"
30
+ - "4.0"
31
+ css_parser:
32
+ - gemfile: gemfiles/css_parser_1.gemfile
33
+ name: css_parser 1.x
34
+ - gemfile: gemfiles/css_parser_2.gemfile
35
+ name: css_parser 2.x
36
+
37
+ env:
38
+ BUNDLE_GEMFILE: ${{ matrix.css_parser.gemfile }}
19
39
 
20
40
  steps:
21
41
  - name: Checkout code
22
- uses: actions/checkout@v3
42
+ uses: actions/checkout@v4
23
43
 
24
44
  # This setup is not compatible with the way Travis CI was
25
45
  # setup, so the cache will only work for the root folder.
@@ -32,21 +52,21 @@ jobs:
32
52
  - name: Rake
33
53
  run: bundle exec rake
34
54
 
35
- - uses: codecov/codecov-action@v2
36
-
37
- # Does not work. The action runs in Ruby 2.6, which is not compatible with
38
- # the gem and fails to install.
39
- # This is very strange considering that the source of the action uses a
40
- # Dockerfile with Ruby 2.7. However, I don't want to spend time to fix this
41
- # in a passively maintained gem.
42
- #
43
- # lint:
44
- # runs-on: ubuntu-latest
45
- # steps:
46
- # - name: standardrb
47
- # env:
48
- # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
49
- # uses: amoeba/standardrb-action@v2
50
- # permissions:
51
- # checks: write
52
- # contents: read
55
+ - uses: codecov/codecov-action@v4
56
+
57
+ lint:
58
+ runs-on: ubuntu-latest
59
+ steps:
60
+ - name: Checkout code
61
+ uses: actions/checkout@v4
62
+
63
+ # This setup is not compatible with the way Travis CI was
64
+ # setup, so the cache will only work for the root folder.
65
+ - name: Setup Ruby
66
+ uses: ruby/setup-ruby@v1
67
+ with:
68
+ ruby-version: "3.4"
69
+ bundler-cache: true
70
+
71
+ - name: standardrb
72
+ run: bundle exec standardrb
data/.gitignore CHANGED
@@ -5,6 +5,7 @@
5
5
  .ruby-version
6
6
 
7
7
  Gemfile.lock
8
+ gemfiles/*.lock
8
9
  doc
9
10
  tmp
10
11
  pkg
data/Changelog.md CHANGED
@@ -1,27 +1,44 @@
1
1
  ### dev
2
2
 
3
- [full changelog](https://github.com/Mange/roadie/compare/v5.2.0...master)
3
+ [full changelog](https://github.com/Mange/roadie/compare/v5.3.0...master)
4
+
5
+ ### 5.3.0
6
+
7
+ [full changelog](https://github.com/Mange/roadie/compare/v5.2.1...v5.3.0)
8
+
9
+ All listed changes by [Andrei Andriichuk (@faraquet)](https://github.com/faraquet).
10
+
11
+ - Accept `css_parser` 2.x.
12
+ - Add CI coverage for both `css_parser` 1.x and 2.x.
13
+ - Drop support for Ruby versions before 3.3.
14
+ - Add Ruby 4.0 to the CI matrix.
15
+
16
+ ### 5.2.1
17
+
18
+ [full changelog](https://github.com/Mange/roadie/compare/v5.2.0...v5.2.1)
19
+
20
+ - Don't strip the [`:root` pseudo-class](https://developer.mozilla.org/en-US/docs/Web/CSS/:root) - [Asger Behncke Jacobsen](https://github.com/asgerb) (#173)
4
21
 
5
22
  ### 5.2.0
6
23
 
7
24
  [full changelog](https://github.com/Mange/roadie/compare/v5.1.0...v5.2.0)
8
25
 
9
- * Upgrade to Nokogiri `~>` 1.15.
10
- * Drop support for Ruby 2.6.
11
- * Add official support for Ruby 3.2.
26
+ - Upgrade to Nokogiri `~>` 1.15.
27
+ - Drop support for Ruby 2.6.
28
+ - Add official support for Ruby 3.2.
12
29
 
13
30
  ### 5.1.0
14
31
 
15
32
  [full changelog](https://github.com/Mange/roadie/compare/v5.0.1...v5.1.0)
16
33
 
17
- * Support passing serialization options to Nokogiri with `serialization_options=` method -
34
+ - Support passing serialization options to Nokogiri with `serialization_options=` method -
18
35
  [Dmytro Savochkin](https://github.com/dmytro-savochkin). (#171)
19
36
 
20
37
  ### 5.0.1
21
38
 
22
39
  [full changelog](https://github.com/Mange/roadie/compare/v5.0.0...v5.0.1)
23
40
 
24
- * Don't try to inline [the `:host`
41
+ - Don't try to inline [the `:host`
25
42
  pseudo-class](https://developer.mozilla.org/en-US/docs/Web/CSS/:host) -
26
43
  [viamin (Bart Agapinan)](https://github.com/viamin). (#170)
27
44
 
@@ -29,28 +46,28 @@
29
46
 
30
47
  [full changelog](https://github.com/Mange/roadie/compare/v4.0.0...v5.0.0)
31
48
 
32
- * Drop support for Ruby 2.4 and Ruby 2.5
33
- * Drop support for JRuby and Rubinius
34
- * Test with Ruby 2.7 - [aried3r (Anton Rieder)](https://github.com/aried3r) (#167)
35
- * Test with Ruby 3.0 and Ruby 3.1
36
- * Add standardrb as code formatter
37
- * Drop support for callbacks that accepts only a single argument.
38
- * Change signature of `Roadie::CssNotFound` and `Roadie::ProvidersFailed`.
49
+ - Drop support for Ruby 2.4 and Ruby 2.5
50
+ - Drop support for JRuby and Rubinius
51
+ - Test with Ruby 2.7 - [aried3r (Anton Rieder)](https://github.com/aried3r) (#167)
52
+ - Test with Ruby 3.0 and Ruby 3.1
53
+ - Add standardrb as code formatter
54
+ - Drop support for callbacks that accepts only a single argument.
55
+ - Change signature of `Roadie::CssNotFound` and `Roadie::ProvidersFailed`.
39
56
 
40
57
  ### 4.0.0
41
58
 
42
59
  [full changelog](https://github.com/Mange/roadie/compare/v3.5.1...v4.0.0)
43
60
 
44
- * Drop support for Ruby 2.1, 2.2, and 2.3 and
61
+ - Drop support for Ruby 2.1, 2.2, and 2.3 and
45
62
  add support for frozen string literals and Ruby 2.6 - [adamkiczula (Adam
46
63
  Kiczula)](https://github.com/adamkiczula) (#164)
47
- * `Roadie::Stylesheet#each_inlinable_block` is now removed.
64
+ - `Roadie::Stylesheet#each_inlinable_block` is now removed.
48
65
 
49
66
  ### 3.5.1
50
67
 
51
68
  [full changelog](https://github.com/Mange/roadie/compare/v3.5.0...v3.5.1)
52
69
 
53
- * Gracefully handle empty string email body, such as those provided by
70
+ - Gracefully handle empty string email body, such as those provided by
54
71
  `ActionMailer::Base::NullMail` objects - [adamkiczula (Adam
55
72
  Kiczula)](https://github.com/adamkiczula) (#163).
56
73
 
@@ -58,14 +75,14 @@
58
75
 
59
76
  [full changelog](https://github.com/Mange/roadie/compare/v3.4.0...v3.5.0)
60
77
 
61
- * Drop support for Nokogiri before 1.8.
78
+ - Drop support for Nokogiri before 1.8.
62
79
 
63
80
  ### 3.4.0
64
81
 
65
82
  [full changelog](https://github.com/Mange/roadie/compare/v3.3.0...v3.4.0)
66
83
 
67
- * Enhancements
68
- * Better support for media queries - [BroiSatse (Stanislaw
84
+ - Enhancements
85
+ - Better support for media queries - [BroiSatse (Stanislaw
69
86
  Klajn)](https://github.com/BroiSatse) and [jeznag (Jeremy
70
87
  Nagel)](https://github.com/jeznag) (#157).
71
88
 
@@ -75,7 +92,7 @@
75
92
  might change specificity), but this behavior can be disabled by setting
76
93
  `merge_media_queries` to `false`.
77
94
 
78
- * Remove Guard as a development dependency. Tests run fast anyway, and I
95
+ - Remove Guard as a development dependency. Tests run fast anyway, and I
79
96
  never liked that this tool "infected" the dependencies of the project when
80
97
  it should remain a user-specific tool unless the project wants to enforce
81
98
  it.
@@ -84,138 +101,139 @@
84
101
 
85
102
  [full changelog](https://github.com/Mange/roadie/compare/v3.2.2...v3.3.0)
86
103
 
87
- * Enhancements
88
- * Allow transforming to XHTML instead of HTML - [Zhivko Draganov](https://github.com/zdraganov) (#144).
89
- * Support partial HTML documents (fragments) - #147
90
- * With the help of [andfx](https://github.com/andfx) - #115
91
- * With the help of [Frida Sjoholm](https://github.com/FridaSjoholm) - #146
92
- * Skip URL rewriting on elements with `data-roadie-ignore` - #154.
93
- * With the help of [Hamed Asghari](https://github.com/hasghari) - #138.
94
- * Bug fixes:
95
- * Apply correct string encoding / charset in `NetHttpProvider` - [Jeremy Nagel](https://github.com/jeznag) (#152).
104
+ - Enhancements
105
+ - Allow transforming to XHTML instead of HTML - [Zhivko Draganov](https://github.com/zdraganov) (#144).
106
+ - Support partial HTML documents (fragments) - #147
107
+ - With the help of [andfx](https://github.com/andfx) - #115
108
+ - With the help of [Frida Sjoholm](https://github.com/FridaSjoholm) - #146
109
+ - Skip URL rewriting on elements with `data-roadie-ignore` - #154.
110
+ - With the help of [Hamed Asghari](https://github.com/hasghari) - #138.
111
+ - Bug fixes:
112
+ - Apply correct string encoding / charset in `NetHttpProvider` - [Jeremy Nagel](https://github.com/jeznag) (#152).
96
113
 
97
114
  ### 3.2.2
98
115
 
99
116
  [full changelog](https://github.com/Mange/roadie/compare/v3.2.1...v3.2.2)
100
117
 
101
- * Enhancements
102
- * Support Nokogiri 1.x.
103
- * Support `css_parser` 1.x.
104
- * Make tests pass on Ruby 2.4.0 (upgrade Webmock).
118
+ - Enhancements
119
+ - Support Nokogiri 1.x.
120
+ - Support `css_parser` 1.x.
121
+ - Make tests pass on Ruby 2.4.0 (upgrade Webmock).
105
122
 
106
123
  ### 3.2.1
107
124
 
108
125
  [full changelog](https://github.com/Mange/roadie/compare/v3.2.0...v3.2.1)
109
126
 
110
- * Enhancements
111
- * Support Nokogiri 1.7.x.
127
+ - Enhancements
128
+ - Support Nokogiri 1.7.x.
112
129
 
113
130
  ### 3.2.0
114
131
 
115
132
  [full changelog](https://github.com/Mange/roadie/compare/v3.1.1...v3.2.0)
116
133
 
117
- * Deprecations:
118
- * Dropped support for MRI 1.9.3.
119
- * Dropped support for MRI 2.0.
120
- * Upgrades:
121
- * Use `css_parser` 1.4.x instead of 1.3.x.
122
- * Bug fixes:
123
- * Strip UTF-8 BOM (Byte Order Mark) from stylesheets before parsing / concatenating - [Bartłomiej Wójtowicz](https://github.com/qbart) (#128)
124
- * Enhancements:
125
- * Build against Ruby MRI 2.3.0 too.
126
- * Don't add extra whitespace between table cells.
134
+ - Deprecations:
135
+ - Dropped support for MRI 1.9.3.
136
+ - Dropped support for MRI 2.0.
137
+ - Upgrades:
138
+ - Use `css_parser` 1.4.x instead of 1.3.x.
139
+ - Bug fixes:
140
+ - Strip UTF-8 BOM (Byte Order Mark) from stylesheets before parsing / concatenating - [Bartłomiej Wójtowicz](https://github.com/qbart) (#128)
141
+ - Enhancements:
142
+ - Build against Ruby MRI 2.3.0 too.
143
+ - Don't add extra whitespace between table cells.
127
144
 
128
145
  ### 3.1.1
129
146
 
130
147
  [full changelog](https://github.com/Mange/roadie/compare/v3.1.0...v3.1.1)
131
148
 
132
- * Enhancements:
133
- * Duplicate style properties are now removed when inlining.
134
- * This means that `color: green; color: red; color: green` will now be `color: red; color: green`.
135
- * The size of your emails should be the same, or smaller.
149
+ - Enhancements:
150
+ - Duplicate style properties are now removed when inlining.
151
+ - This means that `color: green; color: red; color: green` will now be `color: red; color: green`.
152
+ - The size of your emails should be the same, or smaller.
136
153
 
137
154
  ### 3.1.0
138
155
 
139
156
  [full changelog](https://github.com/Mange/roadie/compare/v3.1.0.rc1...v3.1.0)
140
157
 
141
- * Enchancements:
142
- * `NetHttpProvider` validates the whitelist hostnames; passing an invalid hostname will raise `ArgumentError`.
143
- * `NetHttpProvider` supports scheme-less URLs (`//foo.com/`), defaulting to `https`.
158
+ - Enchancements:
159
+ - `NetHttpProvider` validates the whitelist hostnames; passing an invalid hostname will raise `ArgumentError`.
160
+ - `NetHttpProvider` supports scheme-less URLs (`//foo.com/`), defaulting to `https`.
144
161
 
145
162
  ### 3.1.0.rc1
146
163
 
147
164
  [full changelog](https://github.com/Mange/roadie/compare/v3.0.5...v3.1.0.rc1)
148
165
 
149
- * Enhancements:
150
- * Allow user to specify asset providers for referenced assets with full URLs and inline them (#107)
151
- * Pass `Document` instance to transformation callbacks (#86)
152
- * Made `nokogiri` dependency more forgiving.
153
- * Supports `1.5.0`...`1.7.0` now instead of `1.6.0`...`1.7.0`. Some people out there are stuck on this older version of Nokogiri, and I don't want to leave them out.
154
- * Output better errors when no assets can be found.
155
- * The error will now show which providers were tried and in which order, along with the error message from the specific providers.
156
- * `Roadie::FilesystemProvider` shows the given path when inspected.
157
- * `data-roadie-ignore` attributes will now be removed from markup; hiding "development markers" in the final email.
158
- * Add a `Roadie::CachedProvider` asset provider that wraps other providers and cache them.
159
- * Add a `Roadie::PathRewriterProvider` asset provider that rewrites asset names for other providers.
160
- * This saves you from having to create custom providers if you require small tweaks to the lookup in order to use an official provider.
161
- * **Deprecations:**
162
- * `Roadie::Stylesheet#each_inlinable_block` is now deprecated. You can iterate and filter the `blocks` at your own discresion.
166
+ - Enhancements:
167
+ - Allow user to specify asset providers for referenced assets with full URLs and inline them (#107)
168
+ - Pass `Document` instance to transformation callbacks (#86)
169
+ - Made `nokogiri` dependency more forgiving.
170
+ - Supports `1.5.0`...`1.7.0` now instead of `1.6.0`...`1.7.0`. Some people out there are stuck on this older version of Nokogiri, and I don't want to leave them out.
171
+ - Output better errors when no assets can be found.
172
+ - The error will now show which providers were tried and in which order, along with the error message from the specific providers.
173
+ - `Roadie::FilesystemProvider` shows the given path when inspected.
174
+ - `data-roadie-ignore` attributes will now be removed from markup; hiding "development markers" in the final email.
175
+ - Add a `Roadie::CachedProvider` asset provider that wraps other providers and cache them.
176
+ - Add a `Roadie::PathRewriterProvider` asset provider that rewrites asset names for other providers.
177
+ - This saves you from having to create custom providers if you require small tweaks to the lookup in order to use an official provider.
178
+ - **Deprecations:**
179
+ - `Roadie::Stylesheet#each_inlinable_block` is now deprecated. You can iterate and filter the `blocks` at your own discresion.
163
180
 
164
181
  ### 3.0.5
165
182
 
166
183
  [full changelog](https://github.com/Mange/roadie/compare/v3.0.4...v3.0.5)
167
184
 
168
- * Bug fixes:
169
- * Don't try to inline external stylesheets. (#106)
170
- * Don't generate absolute URLs for anchor links. (Mange/roadie-rails#40)
185
+ - Bug fixes:
186
+ - Don't try to inline external stylesheets. (#106)
187
+ - Don't generate absolute URLs for anchor links. (Mange/roadie-rails#40)
171
188
 
172
189
  ### 3.0.4
173
190
 
174
191
  [full changelog](https://github.com/Mange/roadie/compare/v3.0.3...v3.0.4)
175
192
 
176
- * Bug fixes:
177
- * Schemeless URLs was accepted as-is, which isn't supported in a lot of email clients. (#104)
193
+ - Bug fixes:
194
+ - Schemeless URLs was accepted as-is, which isn't supported in a lot of email clients. (#104)
178
195
 
179
196
  ### 3.0.3
180
197
 
181
198
  [full changelog](https://github.com/Mange/roadie/compare/v3.0.2...v3.0.3)
182
199
 
183
- * Bug fixes:
184
- * CSS was mutated when parsed, breaking caches and memoized sources - [Brendan Mulholland (bmulholland)](https://github.com/bmulholland) (Mange/roadie-rails#32)
200
+ - Bug fixes:
201
+ - CSS was mutated when parsed, breaking caches and memoized sources - [Brendan Mulholland (bmulholland)](https://github.com/bmulholland) (Mange/roadie-rails#32)
185
202
 
186
203
  ### 3.0.2
187
204
 
188
205
  [full changelog](https://github.com/Mange/roadie/compare/v3.0.1...v3.0.2)
189
206
 
190
- * Bug fixes:
191
- * Some `data:` URLs could cause exceptions. (#97)
192
- * Correctly parse properties with semicolons in their values - [Aidan Feldman (afeld)](https://github.com/afeld) (#100)
207
+ - Bug fixes:
208
+ - Some `data:` URLs could cause exceptions. (#97)
209
+ - Correctly parse properties with semicolons in their values - [Aidan Feldman (afeld)](https://github.com/afeld) (#100)
193
210
 
194
211
  ### 3.0.1
195
212
 
196
213
  [full changelog](https://github.com/Mange/roadie/compare/v3.0.0...v3.0.1)
197
214
 
198
- * Enhancements:
199
- * `CssNotFound` can take a provider which will be shown in error messages.
200
- * Bug fixes:
201
- * URL rewriter no longer raises on absolute URLs that cannot be parsed by `URI`. Absolute URLs are completely ignored.
202
- * URL rewriter supports urls without a scheme (like `//assets.myapp.com/foo`).
203
- * URL rewriter no longer crashes on absolute URLs without a path (like `myapp://`).
215
+ - Enhancements:
216
+ - `CssNotFound` can take a provider which will be shown in error messages.
217
+ - Bug fixes:
218
+ - URL rewriter no longer raises on absolute URLs that cannot be parsed by `URI`. Absolute URLs are completely ignored.
219
+ - URL rewriter supports urls without a scheme (like `//assets.myapp.com/foo`).
220
+ - URL rewriter no longer crashes on absolute URLs without a path (like `myapp://`).
204
221
 
205
222
  ### 3.0.0
206
223
 
207
224
  [full changelog](https://github.com/Mange/roadie/compare/v3.0.0.pre1...v3.0.0)
208
225
 
209
- * Enhancements:
210
- * `Roadie::ProviderList` responds to `#empty?` and `#last`
211
- * `Roadie::FilesystemProvider` ignores query string in filename.
226
+ - Enhancements:
227
+ - `Roadie::ProviderList` responds to `#empty?` and `#last`
228
+ - `Roadie::FilesystemProvider` ignores query string in filename.
229
+
230
+ Older versions of Rails generated `<link>` tags with query strings in their URLs, like such:
231
+ `/stylesheets/email.css?1380694096`
212
232
 
213
- Older versions of Rails generated `<link>` tags with query strings in their URLs, like such:
214
- `/stylesheets/email.css?1380694096`
215
- * Blacklist `:enabled`, `:disabled` and `:checked` pseudo functions - [Tyler Hunt (tylerhunt)](https://github.com/tylerhunt).
216
- * Add MRI 2.1.2 to Travis build matrix - [Grey Baker (greysteil)](https://github.com/greysteil).
217
- * Try to detect an upgrade from Roadie 2 and mention how to make it work with the new version.
218
- * Styles emitted in the `style` attribute should now be ordered as they were in the source CSS.
233
+ - Blacklist `:enabled`, `:disabled` and `:checked` pseudo functions - [Tyler Hunt (tylerhunt)](https://github.com/tylerhunt).
234
+ - Add MRI 2.1.2 to Travis build matrix - [Grey Baker (greysteil)](https://github.com/greysteil).
235
+ - Try to detect an upgrade from Roadie 2 and mention how to make it work with the new version.
236
+ - Styles emitted in the `style` attribute should now be ordered as they were in the source CSS.
219
237
 
220
238
  ### 3.0.0.pre1
221
239
 
@@ -223,188 +241,188 @@
223
241
 
224
242
  Complete rewrite of most of the code and a new direction for the gem.
225
243
 
226
- * Breaking changes:
227
- * Removed Rails support into a separate Gem (`roadie-rails`).
228
- * Removed Sprockets dependency and AssetPipelineProvider.
229
- * Changed the entire public API.
230
- * Changed the API of custom providers.
231
- * Dropped support for Ruby 1.8.7.
232
- * Change `data-immutable` to `data-roadie-ignore`.
233
- * New features:
234
- * Rewriting the URLs of `img[src]`.
235
- * A way to inject stylesheets without having to adjust template.
236
- * A before callback to compliment the after callback.
237
- * Enhancements:
238
- * Better support for stylesheets using CSS fallbacks.
244
+ - Breaking changes:
245
+ - Removed Rails support into a separate Gem (`roadie-rails`).
246
+ - Removed Sprockets dependency and AssetPipelineProvider.
247
+ - Changed the entire public API.
248
+ - Changed the API of custom providers.
249
+ - Dropped support for Ruby 1.8.7.
250
+ - Change `data-immutable` to `data-roadie-ignore`.
251
+ - New features:
252
+ - Rewriting the URLs of `img[src]`.
253
+ - A way to inject stylesheets without having to adjust template.
254
+ - A before callback to compliment the after callback.
255
+ - Enhancements:
256
+ - Better support for stylesheets using CSS fallbacks.
239
257
  This means that styles like this is now inlined: `width: 5em; width: 3rem;`, while Roadie would previously remove the first of the two.
240
258
  This sadly means that the HTML file will be much larger than before if you're using a non-optimized stylesheet (for example including your application stylesheet to the email). This was a bad idea even before this change, and this might get you to change.
241
- * Using HTML5 doctype instead of XHTML
242
- * Full support for JRuby
243
- * Experimental support for Rubinius
259
+ - Using HTML5 doctype instead of XHTML
260
+ - Full support for JRuby
261
+ - Experimental support for Rubinius
244
262
 
245
263
  ### 2.4.2
246
264
 
247
265
  [full changelog](https://github.com/Mange/roadie/compare/v2.4.1...v2.4.2)
248
266
 
249
- * Bug fixes:
250
- * Fix Nokogiri version to allow only 1.5.x on ruby 1.8.7
251
- * Blacklist :before, :after, :-ms-input-placeholder, :-moz-placeholder selectors – [Brian Bauer (bbauer)][https://github.com/bbauer].
252
- * Build failed on 1.8.7 due to a change in `css_parser`
267
+ - Bug fixes:
268
+ - Fix Nokogiri version to allow only 1.5.x on ruby 1.8.7
269
+ - Blacklist :before, :after, :-ms-input-placeholder, :-moz-placeholder selectors – [Brian Bauer (bbauer)][https://github.com/bbauer].
270
+ - Build failed on 1.8.7 due to a change in `css_parser`
253
271
 
254
272
  ### 2.4.1
255
273
 
256
274
  [full changelog](https://github.com/Mange/roadie/compare/v2.4.0...v2.4.1)
257
275
 
258
- * Bug fixes:
259
- * Allow Nokogiri 1.5.x again; 1.6.x is unsupported in Ruby 1.8.7.
276
+ - Bug fixes:
277
+ - Allow Nokogiri 1.5.x again; 1.6.x is unsupported in Ruby 1.8.7.
260
278
 
261
279
  ### 2.4.0
262
280
 
263
281
  [full changelog](https://github.com/Mange/roadie/compare/v2.3.4...v2.4.0)
264
282
 
265
- * Enhancements:
266
- * Support Rails 4.0, with the help of:
267
- * [Ryunosuke SATO (tricknotes)](https://github.com/tricknotes)
268
- * [Dylan Markow](https://github.com/dmarkow)
269
- * Keep `!important` when outputting styles to help combat web mail styles being `!important`
270
- * Support `:nth-child`, `:last-child`, etc.
271
- * To make this work, Roadie have to catch errors from Nokogiri and ignore them. A warning will be printed when this happens so users can open issues with the project and tests can be expanded.
272
- * Support for custom inliner (#58) — [Harish Shetty (kandadaboggu)](https://github.com/kandadaboggu) with friends
273
- * Bug fixes:
274
- * Don't crash when URL options have protocols with "://" in them (#52).
275
- * Other:
276
- * Be more specific on which versions are required; require newer `css_parser`
277
- * Officially support MRI 2.0.0
278
- * Add experimental support for JRuby
279
- * Remove documentation that talks about passing CSS filenames as symbols; unsupported in Rails 4. (Thanks to [PikachuEXE](https://github.com/PikachuEXE))
283
+ - Enhancements:
284
+ - Support Rails 4.0, with the help of:
285
+ - [Ryunosuke SATO (tricknotes)](https://github.com/tricknotes)
286
+ - [Dylan Markow](https://github.com/dmarkow)
287
+ - Keep `!important` when outputting styles to help combat web mail styles being `!important`
288
+ - Support `:nth-child`, `:last-child`, etc.
289
+ - To make this work, Roadie have to catch errors from Nokogiri and ignore them. A warning will be printed when this happens so users can open issues with the project and tests can be expanded.
290
+ - Support for custom inliner (#58) — [Harish Shetty (kandadaboggu)](https://github.com/kandadaboggu) with friends
291
+ - Bug fixes:
292
+ - Don't crash when URL options have protocols with "://" in them (#52).
293
+ - Other:
294
+ - Be more specific on which versions are required; require newer `css_parser`
295
+ - Officially support MRI 2.0.0
296
+ - Add experimental support for JRuby
297
+ - Remove documentation that talks about passing CSS filenames as symbols; unsupported in Rails 4. (Thanks to [PikachuEXE](https://github.com/PikachuEXE))
280
298
 
281
299
  ### 2.3.4
282
300
 
283
301
  [full changelog](https://github.com/Mange/roadie/compare/v2.3.3...v2.3.4)
284
302
 
285
- * Enhancements:
286
- * Add `config.roadie.enabled` that can be set to `false` to disable Roadie completely.
287
- * Bug fixes:
288
- * Proc objects to the `:css` option is now run in the context of the mailer instance, mirroring similar options from ActionMailer.
289
- * Fix some tests that would always pass
290
- * Improve JRuby compatibility
291
- * Update Gemfile.lock and fix issues with newer gem versions
303
+ - Enhancements:
304
+ - Add `config.roadie.enabled` that can be set to `false` to disable Roadie completely.
305
+ - Bug fixes:
306
+ - Proc objects to the `:css` option is now run in the context of the mailer instance, mirroring similar options from ActionMailer.
307
+ - Fix some tests that would always pass
308
+ - Improve JRuby compatibility
309
+ - Update Gemfile.lock and fix issues with newer gem versions
292
310
 
293
311
  ### 2.3.3
294
312
 
295
313
  [full changelog](https://github.com/Mange/roadie/compare/v2.3.2...v2.3.3)
296
314
 
297
- * Enhancements:
298
- * Allow proc objects to the `:css` option
299
- * Bug fixes:
300
- * Ignore HTML comments and CDATA sections in CSS (support TinyMCE)
315
+ - Enhancements:
316
+ - Allow proc objects to the `:css` option
317
+ - Bug fixes:
318
+ - Ignore HTML comments and CDATA sections in CSS (support TinyMCE)
301
319
 
302
320
  ### 2.3.2
303
321
 
304
322
  [full changelog](https://github.com/Mange/roadie/compare/v2.3.1...v2.3.2)
305
323
 
306
- * Bug fixes:
307
- * Don't fail on selectors which start with @ (#28) — [Roman Shterenzon (romanbsd)](https://github.com/romanbsd)
324
+ - Bug fixes:
325
+ - Don't fail on selectors which start with @ (#28) — [Roman Shterenzon (romanbsd)](https://github.com/romanbsd)
308
326
 
309
327
  ### 2.3.1
310
328
 
311
329
  [full changelog](https://github.com/Mange/roadie/compare/v2.3.0...v2.3.1)
312
330
 
313
- * Bug fixes:
314
- * Does not work with Rails 3.0 unless provider set specifically (#23)
331
+ - Bug fixes:
332
+ - Does not work with Rails 3.0 unless provider set specifically (#23)
315
333
 
316
334
  ### 2.3.0
317
335
 
318
336
  [full changelog](https://github.com/Mange/roadie/compare/v2.3.0.pre1...v2.3.0)
319
337
 
320
- * Nothing, really
338
+ - Nothing, really
321
339
 
322
340
  ### 2.3.0.pre1
323
341
 
324
342
  [full changelog](https://github.com/Mange/roadie/compare/v2.2.0...v2.3.0.pre1)
325
343
 
326
- * Enhancements:
327
- * Support Rails 3.2.pre1 - [Morton Jonuschat (yabawock)](https://github.com/yabawock)
328
- * Sped up the Travis builds
329
- * Official support for Rails 3.0 again
330
- * Dependencies allow 3.0
331
- * Travis builds 3.0 among the others
344
+ - Enhancements:
345
+ - Support Rails 3.2.pre1 - [Morton Jonuschat (yabawock)](https://github.com/yabawock)
346
+ - Sped up the Travis builds
347
+ - Official support for Rails 3.0 again
348
+ - Dependencies allow 3.0
349
+ - Travis builds 3.0 among the others
332
350
 
333
351
  ### 2.2.0
334
352
 
335
353
  [full changelog](https://github.com/Mange/roadie/compare/v2.1.0...v2.2.0)
336
354
 
337
- * Enhancements:
338
- * Support for the `url_options` method inside mailer instances
339
- * You can now dynamically alter the URL options on a per-email basis
355
+ - Enhancements:
356
+ - Support for the `url_options` method inside mailer instances
357
+ - You can now dynamically alter the URL options on a per-email basis
340
358
 
341
359
  ### 2.1.0
342
360
 
343
361
  [full changelog](https://github.com/Mange/roadie/compare/v2.1.0.pre2...v2.1.0)
344
362
 
345
- * Full release!
363
+ - Full release!
346
364
 
347
365
  ### 2.1.0.pre2
348
366
 
349
367
  [full changelog](https://github.com/Mange/roadie/compare/v2.1.0.pre1...v2.1.0.pre2)
350
368
 
351
- * Bug: Roadie broke `url_for` inside mailer views
369
+ - Bug: Roadie broke `url_for` inside mailer views
352
370
 
353
371
  ### 2.1.0.pre1
354
372
 
355
373
  [full changelog](https://github.com/Mange/roadie/compare/v2.0.0...v2.1.0.pre1)
356
374
 
357
- * Enhancements:
358
- * Support normal filesystem instead of only Asset pipeline
359
- * Enable users to create their own way of fetching CSS
360
- * Improve test coverage a bit
361
- * Use a railtie to hook into Rails
362
- * Use real Rails for testing integration
375
+ - Enhancements:
376
+ - Support normal filesystem instead of only Asset pipeline
377
+ - Enable users to create their own way of fetching CSS
378
+ - Improve test coverage a bit
379
+ - Use a railtie to hook into Rails
380
+ - Use real Rails for testing integration
363
381
 
364
382
  ### 2.0.0
365
383
 
366
384
  [full changelog](https://github.com/Mange/roadie/compare/v1.1.3...v2.0.0)
367
385
 
368
- * Enhancements:
369
- * Support the Asset pipeline - [Arttu Tervo (arttu)](https://github.com/arttu)
370
- * Dependencies:
371
- * Requires Rails 3.1 to work. You can keep on using the 1.x series in Rails 3.0
386
+ - Enhancements:
387
+ - Support the Asset pipeline - [Arttu Tervo (arttu)](https://github.com/arttu)
388
+ - Dependencies:
389
+ - Requires Rails 3.1 to work. You can keep on using the 1.x series in Rails 3.0
372
390
 
373
391
  ### 1.1.3
374
392
 
375
393
  [full changelog](https://github.com/Mange/roadie/compare/v1.1.2...v1.1.3)
376
394
 
377
- * Do not add another ".css" to filenames if already present - [Aliaxandr (saks)](https://github.com/saks)
395
+ - Do not add another ".css" to filenames if already present - [Aliaxandr (saks)](https://github.com/saks)
378
396
 
379
397
  ### 1.1.2
380
398
 
381
399
  [full changelog](https://github.com/Mange/roadie/compare/v1.1.1...v1.1.2)
382
400
 
383
- * Support for Rails 3.1.0 and later inside gemspec
401
+ - Support for Rails 3.1.0 and later inside gemspec
384
402
 
385
403
  ### 1.1.1
386
404
 
387
405
  [full changelog](https://github.com/Mange/roadie/compare/v1.1.0...v1.1.1)
388
406
 
389
- * Support for Rails 3.1.x (up to and including RC4)
390
- * Rails 3.0.x is still supported
391
- * Added CI via [Travis CI](http://travis-ci.org)
407
+ - Support for Rails 3.1.x (up to and including RC4)
408
+ - Rails 3.0.x is still supported
409
+ - Added CI via [Travis CI](http://travis-ci.org)
392
410
 
393
411
  ### 1.1.0
394
412
 
395
413
  [full changelog](https://github.com/Mange/roadie/compare/v1.0.1...v1.1.0)
396
414
 
397
- * Enhancements:
398
- * Support for inlining `<link>` elements (thanks to [aliix](https://github.com/aliix))
415
+ - Enhancements:
416
+ - Support for inlining `<link>` elements (thanks to [aliix](https://github.com/aliix))
399
417
 
400
418
  ### 1.0.1
401
419
 
402
420
  [full changelog](https://github.com/Mange/roadie/compare/v1.0.0...v1.0.1)
403
421
 
404
- * Enhancements:
405
- * Full, official support for Ruby 1.9.2 (in addition to 1.8.7)
406
- * Dependencies:
407
- * Explicilty depend on nokogiri >= 1.4.4
422
+ - Enhancements:
423
+ - Full, official support for Ruby 1.9.2 (in addition to 1.8.7)
424
+ - Dependencies:
425
+ - Explicilty depend on nokogiri >= 1.4.4
408
426
 
409
427
  ### 1.0.0
410
428
 
@@ -412,11 +430,11 @@ Complete rewrite of most of the code and a new direction for the gem.
412
430
 
413
431
  Roadie fork!
414
432
 
415
- * Enhancements:
416
- * Support for Rails 3.0
417
- * Code cleanup
418
- * Support `!important`
419
- * Tests
420
- * + some other enhancements
421
- * Deprecations:
422
- * Removed support for Rails 2.x
433
+ - Enhancements:
434
+ - Support for Rails 3.0
435
+ - Code cleanup
436
+ - Support `!important`
437
+ - Tests
438
+ - - some other enhancements
439
+ - Deprecations:
440
+ - Removed support for Rails 2.x
data/Gemfile CHANGED
@@ -4,7 +4,8 @@ source "https://rubygems.org"
4
4
  gemspec
5
5
 
6
6
  # Added here so it does not show up on the Gemspec; I only want it for CI builds
7
- gem "codecov", group: :test, require: false
7
+ gem "simplecov", group: :test, require: false
8
+ gem "simplecov-cobertura", group: :test, require: false
8
9
  # Not actually required to run the tests for the gem, but a real convenience
9
10
  # for local development.
10
11
  gem "standard", group: [:test, :development], require: false
data/README.md CHANGED
@@ -448,12 +448,8 @@ Partial documents does not have a `<!DOCTYPE>`.
448
448
  Build Status
449
449
  ------------
450
450
 
451
- Tested with Github CI using:
452
-
453
- * MRI 2.7
454
- * MRI 3.0
455
- * MRI 3.1
456
- * MRI 3.2
451
+ Tested with Github CI using:
452
+ See [Workflow Matrix](/.github/workflows/main.yml)
457
453
 
458
454
  Let me know if you want any other runtime supported officially.
459
455
 
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ eval_gemfile "../Gemfile"
6
+
7
+ gem "css_parser", "~> 1.4"
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ eval_gemfile "../Gemfile"
6
+
7
+ gem "css_parser", "~> 2.0"
@@ -59,6 +59,7 @@ module Roadie
59
59
  # call in #find_css.
60
60
  "link[rel=stylesheet][href]:not([data-roadie-ignore])"
61
61
  ).freeze
62
+ private_constant :STYLE_ELEMENT_QUERY
62
63
 
63
64
  # Cleans out stupid CDATA and/or HTML comments from the style text
64
65
  # TinyMCE causes this, allegedly
@@ -71,6 +72,7 @@ module Roadie
71
72
  (\]\]>)
72
73
  $)
73
74
  /x.freeze
75
+ private_constant :CLEANING_MATCHER
74
76
 
75
77
  def read_stylesheet(element)
76
78
  if element.name == "style"
data/lib/roadie/errors.rb CHANGED
@@ -23,7 +23,9 @@ module Roadie
23
23
  else
24
24
  ""
25
25
  end
26
- super "Cannot use path \"#{given_path}\" in URL generation.#{cause_message}"
26
+ super(
27
+ "Cannot use path \"#{given_path}\" in URL generation.#{cause_message}"
28
+ )
27
29
  end
28
30
  end
29
31
 
@@ -47,7 +49,7 @@ module Roadie
47
49
  @css_name = css_name
48
50
  @provider = provider
49
51
  @extra_message = message
50
- super build_message
52
+ super(build_message)
51
53
  end
52
54
 
53
55
  protected
@@ -71,7 +71,9 @@ module Roadie
71
71
  :before :after
72
72
  :enabled :disabled :checked
73
73
  :host
74
+ :root
74
75
  ].freeze
76
+ private_constant :BAD_PSEUDO_FUNCTIONS
75
77
 
76
78
  def pseudo_element?
77
79
  selector.include? "::"
@@ -7,6 +7,7 @@ module Roadie
7
7
  # A style block is the combination of a {Selector} and a list of {StyleProperty}.
8
8
  class StyleBlock
9
9
  extend Forwardable
10
+
10
11
  attr_reader :selector, :properties, :media
11
12
 
12
13
  # @param [Selector] selector
@@ -137,6 +137,7 @@ module Roadie
137
137
  end
138
138
 
139
139
  VALID_OPTIONS = Set[:host, :port, :path, :protocol, :scheme].freeze
140
+ private_constant :VALID_OPTIONS
140
141
 
141
142
  def validate_options(options)
142
143
  keys = Set.new(options.keys)
@@ -73,6 +73,7 @@ module Roadie
73
73
  \k'quote' # Closing quote
74
74
  \)
75
75
  }x
76
+ private_constant :CSS_URL_REGEXP
76
77
 
77
78
  def transform_element(element)
78
79
  case element.name
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Roadie
4
- VERSION = "5.2.0"
4
+ VERSION = "5.3.0"
5
5
  end
data/roadie.gemspec CHANGED
@@ -10,20 +10,21 @@ Gem::Specification.new do |s|
10
10
  s.platform = Gem::Platform::RUBY
11
11
  s.authors = ["Magnus Bergmark"]
12
12
  s.email = ["magnus.bergmark@gmail.com"]
13
- s.homepage = "http://github.com/Mange/roadie"
13
+ s.homepage = "https://github.com/Mange/roadie"
14
14
  s.summary = "Making HTML emails comfortable for the Ruby rockstars"
15
15
  s.description = "Roadie tries to make sending HTML emails a little less painful by inlining stylesheets and rewriting relative URLs for you."
16
16
  s.license = "MIT"
17
17
 
18
- s.required_ruby_version = ">= 2.7"
18
+ s.required_ruby_version = ">= 3.3"
19
19
 
20
20
  s.add_dependency "nokogiri", "~> 1.15"
21
- s.add_dependency "css_parser", "~> 1.4"
21
+ s.add_dependency "css_parser", ">= 1.4", "< 3.0"
22
22
 
23
23
  s.add_development_dependency "rake"
24
24
  s.add_development_dependency "rspec", "~> 3.0"
25
25
  s.add_development_dependency "rspec-collection_matchers", "~> 1.0"
26
26
  s.add_development_dependency "webmock", "~> 3.0"
27
+ s.add_development_dependency "standardrb"
27
28
 
28
29
  s.extra_rdoc_files = %w[README.md Changelog.md]
29
30
  s.require_paths = %w[lib]
@@ -67,6 +67,29 @@ describe "Roadie functionality" do
67
67
  expect(styles).to include Roadie::Stylesheet.new("", css).to_s
68
68
  end
69
69
 
70
+ it "does not strip :root pseudo-class" do
71
+ document = Roadie::Document.new <<-HTML
72
+ <html>
73
+ <head>
74
+ <title>Hello world!</title>
75
+ </head>
76
+ <body>
77
+ <h1>Hello world!</h1>
78
+ </body>
79
+ </html>
80
+ HTML
81
+ css = <<-CSS
82
+ :root { --color: red; }
83
+ CSS
84
+ document.add_css css
85
+
86
+ result = parse_html document.transform
87
+ expect(result).to have_selector("html > head > style")
88
+
89
+ styles = result.at_css("html > head > style").text
90
+ expect(styles).to include Roadie::Stylesheet.new("", css).to_s
91
+ end
92
+
70
93
  it "can be configured to skip styles that cannot be inlined" do
71
94
  document = Roadie::Document.new <<-HTML
72
95
  <html>
data/spec/spec_helper.rb CHANGED
@@ -7,8 +7,8 @@ if ENV["CI"]
7
7
  require "simplecov"
8
8
  SimpleCov.start
9
9
 
10
- require "codecov"
11
- SimpleCov.formatter = SimpleCov::Formatter::Codecov
10
+ require "simplecov-cobertura"
11
+ SimpleCov.formatter = SimpleCov::Formatter::CoberturaFormatter
12
12
  end
13
13
 
14
14
  $: << File.dirname(__FILE__) + "/../lib"
metadata CHANGED
@@ -1,11 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: roadie
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.0
4
+ version: 5.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Magnus Bergmark
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
10
  date: 1980-01-01 00:00:00.000000000 Z
@@ -28,16 +27,22 @@ dependencies:
28
27
  name: css_parser
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
- - - "~>"
30
+ - - ">="
32
31
  - !ruby/object:Gem::Version
33
32
  version: '1.4'
33
+ - - "<"
34
+ - !ruby/object:Gem::Version
35
+ version: '3.0'
34
36
  type: :runtime
35
37
  prerelease: false
36
38
  version_requirements: !ruby/object:Gem::Requirement
37
39
  requirements:
38
- - - "~>"
40
+ - - ">="
39
41
  - !ruby/object:Gem::Version
40
42
  version: '1.4'
43
+ - - "<"
44
+ - !ruby/object:Gem::Version
45
+ version: '3.0'
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: rake
43
48
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +99,20 @@ dependencies:
94
99
  - - "~>"
95
100
  - !ruby/object:Gem::Version
96
101
  version: '3.0'
102
+ - !ruby/object:Gem::Dependency
103
+ name: standardrb
104
+ requirement: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
109
+ type: :development
110
+ prerelease: false
111
+ version_requirements: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: '0'
97
116
  description: Roadie tries to make sending HTML emails a little less painful by inlining
98
117
  stylesheets and rewriting relative URLs for you.
99
118
  email:
@@ -101,8 +120,8 @@ email:
101
120
  executables: []
102
121
  extensions: []
103
122
  extra_rdoc_files:
104
- - README.md
105
123
  - Changelog.md
124
+ - README.md
106
125
  files:
107
126
  - ".github/workflows/main.yml"
108
127
  - ".gitignore"
@@ -115,6 +134,8 @@ files:
115
134
  - LICENSE
116
135
  - README.md
117
136
  - Rakefile
137
+ - gemfiles/css_parser_1.gemfile
138
+ - gemfiles/css_parser_2.gemfile
118
139
  - lib/roadie.rb
119
140
  - lib/roadie/asset_provider.rb
120
141
  - lib/roadie/asset_scanner.rb
@@ -178,11 +199,10 @@ files:
178
199
  - spec/support/have_styling_matcher.rb
179
200
  - spec/support/have_xpath_matcher.rb
180
201
  - spec/support/test_provider.rb
181
- homepage: http://github.com/Mange/roadie
202
+ homepage: https://github.com/Mange/roadie
182
203
  licenses:
183
204
  - MIT
184
205
  metadata: {}
185
- post_install_message:
186
206
  rdoc_options: []
187
207
  require_paths:
188
208
  - lib
@@ -190,15 +210,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
190
210
  requirements:
191
211
  - - ">="
192
212
  - !ruby/object:Gem::Version
193
- version: '2.7'
213
+ version: '3.3'
194
214
  required_rubygems_version: !ruby/object:Gem::Requirement
195
215
  requirements:
196
216
  - - ">="
197
217
  - !ruby/object:Gem::Version
198
218
  version: '0'
199
219
  requirements: []
200
- rubygems_version: 3.4.17
201
- signing_key:
220
+ rubygems_version: 3.7.2
202
221
  specification_version: 4
203
222
  summary: Making HTML emails comfortable for the Ruby rockstars
204
223
  test_files: []