roadie 5.1.0 → 5.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 39c01590157057fcedad04740a1594a45f18150d74c7e8fe071dd3aea6908e1f
4
- data.tar.gz: 490cc578b42057ca635ce613d8e50b05401b0a07597761f70423467aa99aa673
3
+ metadata.gz: bf21805d618315993a32ce718e78c756c82627d3139c5ad9823e539d183c244f
4
+ data.tar.gz: 2d440a7a8f27d4ab08b4f5795222b329863816f4c55c593b217488ef0b97b5b0
5
5
  SHA512:
6
- metadata.gz: d71f85f1aba91c711351972b65074835f690f62d0cd4a0feb663f67df89a86d8acddc855fe7be4e23601fe3b0508c1558f6c18cc260c69c1ad5b1b1857ad04e2
7
- data.tar.gz: 1d708c10a62800d44efbe825601546a8713b953f81a2549d91a23e74e26048839adc418d38c38bbd08bd885bc6504a3a07c5cca46f94d3ad147d347f3086ffaa
6
+ metadata.gz: 2c411ae8897ebbcf2e57dea6c1dd265c8d4c6e5ed43ca9dc20b085cb3cac084e7e92189ae2f621609a406621e7ebea4676d13d6ef38dde88394bd004a57d836e
7
+ data.tar.gz: cedc2284f27ab48522989550440235af8c39c86ff4d6f437d722b971d4356f36db674a116c3427d71374a7075d358bb478c759f5178125e6ae53e0c38072892a
@@ -11,15 +11,19 @@ on:
11
11
  jobs:
12
12
  base:
13
13
  name: Ruby ${{ matrix.ruby }}
14
- runs-on: ubuntu-20.04
14
+ runs-on: ubuntu-latest
15
15
  strategy:
16
16
  fail-fast: false
17
17
  matrix:
18
- ruby: ["2.6", "2.7", "3.0", "3.1"]
18
+ ruby:
19
+ - "2.7"
20
+ - "3.0"
21
+ - "3.1"
22
+ - "3.2"
19
23
 
20
24
  steps:
21
25
  - name: Checkout code
22
- uses: actions/checkout@v2
26
+ uses: actions/checkout@v4
23
27
 
24
28
  # This setup is not compatible with the way Travis CI was
25
29
  # setup, so the cache will only work for the root folder.
@@ -32,15 +36,21 @@ jobs:
32
36
  - name: Rake
33
37
  run: bundle exec rake
34
38
 
35
- - uses: codecov/codecov-action@v2
39
+ - uses: codecov/codecov-action@v3
36
40
 
37
41
  lint:
38
42
  runs-on: ubuntu-latest
39
43
  steps:
44
+ - name: Checkout code
45
+ uses: actions/checkout@v4
46
+
47
+ # This setup is not compatible with the way Travis CI was
48
+ # setup, so the cache will only work for the root folder.
49
+ - name: Setup Ruby
50
+ uses: ruby/setup-ruby@v1
51
+ with:
52
+ ruby-version: "3.2"
53
+ bundler-cache: true
54
+
40
55
  - name: standardrb
41
- env:
42
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
43
- uses: amoeba/standardrb-action@v2
44
- permissions:
45
- checks: write
46
- contents: read
56
+ run: bundle exec standardrb
data/.rubocop.yml CHANGED
@@ -1,5 +1,9 @@
1
- AllCops:
2
- DisabledByDefault: true
1
+ require:
2
+ - standard
3
+
4
+ inherit_gem:
5
+ standard: config/base.yml
3
6
 
4
- Style/FrozenStringLiteralComment:
5
- Enabled: true
7
+ AllCops:
8
+ SuggestExtensions: false
9
+ TargetRubyVersion: 2.7
data/.solargraph.yml CHANGED
@@ -8,9 +8,5 @@ exclude:
8
8
  - ".bundle/**/*"
9
9
  require: []
10
10
  domains: []
11
- plugins:
12
- - solargraph-standardrb
13
- reporters:
14
- - standardrb
15
11
  require_paths: []
16
12
  max_files: 5000
data/.standard.yml ADDED
@@ -0,0 +1 @@
1
+ ruby_version: 2.7
data/Changelog.md CHANGED
@@ -1,19 +1,35 @@
1
1
  ### dev
2
2
 
3
- [full changelog](https://github.com/Mange/roadie/compare/v5.1.0...master)
3
+ [full changelog](https://github.com/Mange/roadie/compare/v5.2.1...master)
4
+
5
+ Nothing yet.
6
+
7
+ ### dev
8
+
9
+ [full changelog](https://github.com/Mange/roadie/compare/v5.2.0...v5.2.1)
10
+
11
+ - 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)
12
+
13
+ ### 5.2.0
14
+
15
+ [full changelog](https://github.com/Mange/roadie/compare/v5.1.0...v5.2.0)
16
+
17
+ - Upgrade to Nokogiri `~>` 1.15.
18
+ - Drop support for Ruby 2.6.
19
+ - Add official support for Ruby 3.2.
4
20
 
5
21
  ### 5.1.0
6
22
 
7
23
  [full changelog](https://github.com/Mange/roadie/compare/v5.0.1...v5.1.0)
8
24
 
9
- * Support passing serialization options to Nokogiri with `serialization_options=` method -
25
+ - Support passing serialization options to Nokogiri with `serialization_options=` method -
10
26
  [Dmytro Savochkin](https://github.com/dmytro-savochkin). (#171)
11
27
 
12
28
  ### 5.0.1
13
29
 
14
30
  [full changelog](https://github.com/Mange/roadie/compare/v5.0.0...v5.0.1)
15
31
 
16
- * Don't try to inline [the `:host`
32
+ - Don't try to inline [the `:host`
17
33
  pseudo-class](https://developer.mozilla.org/en-US/docs/Web/CSS/:host) -
18
34
  [viamin (Bart Agapinan)](https://github.com/viamin). (#170)
19
35
 
@@ -21,28 +37,28 @@
21
37
 
22
38
  [full changelog](https://github.com/Mange/roadie/compare/v4.0.0...v5.0.0)
23
39
 
24
- * Drop support for Ruby 2.4 and Ruby 2.5
25
- * Drop support for JRuby and Rubinius
26
- * Test with Ruby 2.7 - [aried3r (Anton Rieder)](https://github.com/aried3r) (#167)
27
- * Test with Ruby 3.0 and Ruby 3.1
28
- * Add standardrb as code formatter
29
- * Drop support for callbacks that accepts only a single argument.
30
- * Change signature of `Roadie::CssNotFound` and `Roadie::ProvidersFailed`.
40
+ - Drop support for Ruby 2.4 and Ruby 2.5
41
+ - Drop support for JRuby and Rubinius
42
+ - Test with Ruby 2.7 - [aried3r (Anton Rieder)](https://github.com/aried3r) (#167)
43
+ - Test with Ruby 3.0 and Ruby 3.1
44
+ - Add standardrb as code formatter
45
+ - Drop support for callbacks that accepts only a single argument.
46
+ - Change signature of `Roadie::CssNotFound` and `Roadie::ProvidersFailed`.
31
47
 
32
48
  ### 4.0.0
33
49
 
34
50
  [full changelog](https://github.com/Mange/roadie/compare/v3.5.1...v4.0.0)
35
51
 
36
- * Drop support for Ruby 2.1, 2.2, and 2.3 and
52
+ - Drop support for Ruby 2.1, 2.2, and 2.3 and
37
53
  add support for frozen string literals and Ruby 2.6 - [adamkiczula (Adam
38
54
  Kiczula)](https://github.com/adamkiczula) (#164)
39
- * `Roadie::Stylesheet#each_inlinable_block` is now removed.
55
+ - `Roadie::Stylesheet#each_inlinable_block` is now removed.
40
56
 
41
57
  ### 3.5.1
42
58
 
43
59
  [full changelog](https://github.com/Mange/roadie/compare/v3.5.0...v3.5.1)
44
60
 
45
- * Gracefully handle empty string email body, such as those provided by
61
+ - Gracefully handle empty string email body, such as those provided by
46
62
  `ActionMailer::Base::NullMail` objects - [adamkiczula (Adam
47
63
  Kiczula)](https://github.com/adamkiczula) (#163).
48
64
 
@@ -50,14 +66,15 @@
50
66
 
51
67
  [full changelog](https://github.com/Mange/roadie/compare/v3.4.0...v3.5.0)
52
68
 
53
- * Drop support for Nokogiri before 1.8.
69
+ - Drop support for Nokogiri before 1.8.
54
70
 
55
71
  ### 3.4.0
56
72
 
57
73
  [full changelog](https://github.com/Mange/roadie/compare/v3.3.0...v3.4.0)
58
74
 
59
- * Enhancements
60
- * Better support for media queries - [BroiSatse (Stanislaw
75
+ - Enhancements
76
+
77
+ - Better support for media queries - [BroiSatse (Stanislaw
61
78
  Klajn)](https://github.com/BroiSatse) and [jeznag (Jeremy
62
79
  Nagel)](https://github.com/jeznag) (#157).
63
80
 
@@ -67,7 +84,7 @@
67
84
  might change specificity), but this behavior can be disabled by setting
68
85
  `merge_media_queries` to `false`.
69
86
 
70
- * Remove Guard as a development dependency. Tests run fast anyway, and I
87
+ - Remove Guard as a development dependency. Tests run fast anyway, and I
71
88
  never liked that this tool "infected" the dependencies of the project when
72
89
  it should remain a user-specific tool unless the project wants to enforce
73
90
  it.
@@ -76,138 +93,140 @@
76
93
 
77
94
  [full changelog](https://github.com/Mange/roadie/compare/v3.2.2...v3.3.0)
78
95
 
79
- * Enhancements
80
- * Allow transforming to XHTML instead of HTML - [Zhivko Draganov](https://github.com/zdraganov) (#144).
81
- * Support partial HTML documents (fragments) - #147
82
- * With the help of [andfx](https://github.com/andfx) - #115
83
- * With the help of [Frida Sjoholm](https://github.com/FridaSjoholm) - #146
84
- * Skip URL rewriting on elements with `data-roadie-ignore` - #154.
85
- * With the help of [Hamed Asghari](https://github.com/hasghari) - #138.
86
- * Bug fixes:
87
- * Apply correct string encoding / charset in `NetHttpProvider` - [Jeremy Nagel](https://github.com/jeznag) (#152).
96
+ - Enhancements
97
+ - Allow transforming to XHTML instead of HTML - [Zhivko Draganov](https://github.com/zdraganov) (#144).
98
+ - Support partial HTML documents (fragments) - #147
99
+ - With the help of [andfx](https://github.com/andfx) - #115
100
+ - With the help of [Frida Sjoholm](https://github.com/FridaSjoholm) - #146
101
+ - Skip URL rewriting on elements with `data-roadie-ignore` - #154.
102
+ - With the help of [Hamed Asghari](https://github.com/hasghari) - #138.
103
+ - Bug fixes:
104
+ - Apply correct string encoding / charset in `NetHttpProvider` - [Jeremy Nagel](https://github.com/jeznag) (#152).
88
105
 
89
106
  ### 3.2.2
90
107
 
91
108
  [full changelog](https://github.com/Mange/roadie/compare/v3.2.1...v3.2.2)
92
109
 
93
- * Enhancements
94
- * Support Nokogiri 1.x.
95
- * Support `css_parser` 1.x.
96
- * Make tests pass on Ruby 2.4.0 (upgrade Webmock).
110
+ - Enhancements
111
+ - Support Nokogiri 1.x.
112
+ - Support `css_parser` 1.x.
113
+ - Make tests pass on Ruby 2.4.0 (upgrade Webmock).
97
114
 
98
115
  ### 3.2.1
99
116
 
100
117
  [full changelog](https://github.com/Mange/roadie/compare/v3.2.0...v3.2.1)
101
118
 
102
- * Enhancements
103
- * Support Nokogiri 1.7.x.
119
+ - Enhancements
120
+ - Support Nokogiri 1.7.x.
104
121
 
105
122
  ### 3.2.0
106
123
 
107
124
  [full changelog](https://github.com/Mange/roadie/compare/v3.1.1...v3.2.0)
108
125
 
109
- * Deprecations:
110
- * Dropped support for MRI 1.9.3.
111
- * Dropped support for MRI 2.0.
112
- * Upgrades:
113
- * Use `css_parser` 1.4.x instead of 1.3.x.
114
- * Bug fixes:
115
- * Strip UTF-8 BOM (Byte Order Mark) from stylesheets before parsing / concatenating - [Bartłomiej Wójtowicz](https://github.com/qbart) (#128)
116
- * Enhancements:
117
- * Build against Ruby MRI 2.3.0 too.
118
- * Don't add extra whitespace between table cells.
126
+ - Deprecations:
127
+ - Dropped support for MRI 1.9.3.
128
+ - Dropped support for MRI 2.0.
129
+ - Upgrades:
130
+ - Use `css_parser` 1.4.x instead of 1.3.x.
131
+ - Bug fixes:
132
+ - Strip UTF-8 BOM (Byte Order Mark) from stylesheets before parsing / concatenating - [Bartłomiej Wójtowicz](https://github.com/qbart) (#128)
133
+ - Enhancements:
134
+ - Build against Ruby MRI 2.3.0 too.
135
+ - Don't add extra whitespace between table cells.
119
136
 
120
137
  ### 3.1.1
121
138
 
122
139
  [full changelog](https://github.com/Mange/roadie/compare/v3.1.0...v3.1.1)
123
140
 
124
- * Enhancements:
125
- * Duplicate style properties are now removed when inlining.
126
- * This means that `color: green; color: red; color: green` will now be `color: red; color: green`.
127
- * The size of your emails should be the same, or smaller.
141
+ - Enhancements:
142
+ - Duplicate style properties are now removed when inlining.
143
+ - This means that `color: green; color: red; color: green` will now be `color: red; color: green`.
144
+ - The size of your emails should be the same, or smaller.
128
145
 
129
146
  ### 3.1.0
130
147
 
131
148
  [full changelog](https://github.com/Mange/roadie/compare/v3.1.0.rc1...v3.1.0)
132
149
 
133
- * Enchancements:
134
- * `NetHttpProvider` validates the whitelist hostnames; passing an invalid hostname will raise `ArgumentError`.
135
- * `NetHttpProvider` supports scheme-less URLs (`//foo.com/`), defaulting to `https`.
150
+ - Enchancements:
151
+ - `NetHttpProvider` validates the whitelist hostnames; passing an invalid hostname will raise `ArgumentError`.
152
+ - `NetHttpProvider` supports scheme-less URLs (`//foo.com/`), defaulting to `https`.
136
153
 
137
154
  ### 3.1.0.rc1
138
155
 
139
156
  [full changelog](https://github.com/Mange/roadie/compare/v3.0.5...v3.1.0.rc1)
140
157
 
141
- * Enhancements:
142
- * Allow user to specify asset providers for referenced assets with full URLs and inline them (#107)
143
- * Pass `Document` instance to transformation callbacks (#86)
144
- * Made `nokogiri` dependency more forgiving.
145
- * 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.
146
- * Output better errors when no assets can be found.
147
- * The error will now show which providers were tried and in which order, along with the error message from the specific providers.
148
- * `Roadie::FilesystemProvider` shows the given path when inspected.
149
- * `data-roadie-ignore` attributes will now be removed from markup; hiding "development markers" in the final email.
150
- * Add a `Roadie::CachedProvider` asset provider that wraps other providers and cache them.
151
- * Add a `Roadie::PathRewriterProvider` asset provider that rewrites asset names for other providers.
152
- * This saves you from having to create custom providers if you require small tweaks to the lookup in order to use an official provider.
153
- * **Deprecations:**
154
- * `Roadie::Stylesheet#each_inlinable_block` is now deprecated. You can iterate and filter the `blocks` at your own discresion.
158
+ - Enhancements:
159
+ - Allow user to specify asset providers for referenced assets with full URLs and inline them (#107)
160
+ - Pass `Document` instance to transformation callbacks (#86)
161
+ - Made `nokogiri` dependency more forgiving.
162
+ - 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.
163
+ - Output better errors when no assets can be found.
164
+ - The error will now show which providers were tried and in which order, along with the error message from the specific providers.
165
+ - `Roadie::FilesystemProvider` shows the given path when inspected.
166
+ - `data-roadie-ignore` attributes will now be removed from markup; hiding "development markers" in the final email.
167
+ - Add a `Roadie::CachedProvider` asset provider that wraps other providers and cache them.
168
+ - Add a `Roadie::PathRewriterProvider` asset provider that rewrites asset names for other providers.
169
+ - This saves you from having to create custom providers if you require small tweaks to the lookup in order to use an official provider.
170
+ - **Deprecations:**
171
+ - `Roadie::Stylesheet#each_inlinable_block` is now deprecated. You can iterate and filter the `blocks` at your own discresion.
155
172
 
156
173
  ### 3.0.5
157
174
 
158
175
  [full changelog](https://github.com/Mange/roadie/compare/v3.0.4...v3.0.5)
159
176
 
160
- * Bug fixes:
161
- * Don't try to inline external stylesheets. (#106)
162
- * Don't generate absolute URLs for anchor links. (Mange/roadie-rails#40)
177
+ - Bug fixes:
178
+ - Don't try to inline external stylesheets. (#106)
179
+ - Don't generate absolute URLs for anchor links. (Mange/roadie-rails#40)
163
180
 
164
181
  ### 3.0.4
165
182
 
166
183
  [full changelog](https://github.com/Mange/roadie/compare/v3.0.3...v3.0.4)
167
184
 
168
- * Bug fixes:
169
- * Schemeless URLs was accepted as-is, which isn't supported in a lot of email clients. (#104)
185
+ - Bug fixes:
186
+ - Schemeless URLs was accepted as-is, which isn't supported in a lot of email clients. (#104)
170
187
 
171
188
  ### 3.0.3
172
189
 
173
190
  [full changelog](https://github.com/Mange/roadie/compare/v3.0.2...v3.0.3)
174
191
 
175
- * Bug fixes:
176
- * CSS was mutated when parsed, breaking caches and memoized sources - [Brendan Mulholland (bmulholland)](https://github.com/bmulholland) (Mange/roadie-rails#32)
192
+ - Bug fixes:
193
+ - CSS was mutated when parsed, breaking caches and memoized sources - [Brendan Mulholland (bmulholland)](https://github.com/bmulholland) (Mange/roadie-rails#32)
177
194
 
178
195
  ### 3.0.2
179
196
 
180
197
  [full changelog](https://github.com/Mange/roadie/compare/v3.0.1...v3.0.2)
181
198
 
182
- * Bug fixes:
183
- * Some `data:` URLs could cause exceptions. (#97)
184
- * Correctly parse properties with semicolons in their values - [Aidan Feldman (afeld)](https://github.com/afeld) (#100)
199
+ - Bug fixes:
200
+ - Some `data:` URLs could cause exceptions. (#97)
201
+ - Correctly parse properties with semicolons in their values - [Aidan Feldman (afeld)](https://github.com/afeld) (#100)
185
202
 
186
203
  ### 3.0.1
187
204
 
188
205
  [full changelog](https://github.com/Mange/roadie/compare/v3.0.0...v3.0.1)
189
206
 
190
- * Enhancements:
191
- * `CssNotFound` can take a provider which will be shown in error messages.
192
- * Bug fixes:
193
- * URL rewriter no longer raises on absolute URLs that cannot be parsed by `URI`. Absolute URLs are completely ignored.
194
- * URL rewriter supports urls without a scheme (like `//assets.myapp.com/foo`).
195
- * URL rewriter no longer crashes on absolute URLs without a path (like `myapp://`).
207
+ - Enhancements:
208
+ - `CssNotFound` can take a provider which will be shown in error messages.
209
+ - Bug fixes:
210
+ - URL rewriter no longer raises on absolute URLs that cannot be parsed by `URI`. Absolute URLs are completely ignored.
211
+ - URL rewriter supports urls without a scheme (like `//assets.myapp.com/foo`).
212
+ - URL rewriter no longer crashes on absolute URLs without a path (like `myapp://`).
196
213
 
197
214
  ### 3.0.0
198
215
 
199
216
  [full changelog](https://github.com/Mange/roadie/compare/v3.0.0.pre1...v3.0.0)
200
217
 
201
- * Enhancements:
202
- * `Roadie::ProviderList` responds to `#empty?` and `#last`
203
- * `Roadie::FilesystemProvider` ignores query string in filename.
218
+ - Enhancements:
219
+
220
+ - `Roadie::ProviderList` responds to `#empty?` and `#last`
221
+ - `Roadie::FilesystemProvider` ignores query string in filename.
222
+
223
+ Older versions of Rails generated `<link>` tags with query strings in their URLs, like such:
224
+ `/stylesheets/email.css?1380694096`
204
225
 
205
- Older versions of Rails generated `<link>` tags with query strings in their URLs, like such:
206
- `/stylesheets/email.css?1380694096`
207
- * Blacklist `:enabled`, `:disabled` and `:checked` pseudo functions - [Tyler Hunt (tylerhunt)](https://github.com/tylerhunt).
208
- * Add MRI 2.1.2 to Travis build matrix - [Grey Baker (greysteil)](https://github.com/greysteil).
209
- * Try to detect an upgrade from Roadie 2 and mention how to make it work with the new version.
210
- * Styles emitted in the `style` attribute should now be ordered as they were in the source CSS.
226
+ - Blacklist `:enabled`, `:disabled` and `:checked` pseudo functions - [Tyler Hunt (tylerhunt)](https://github.com/tylerhunt).
227
+ - Add MRI 2.1.2 to Travis build matrix - [Grey Baker (greysteil)](https://github.com/greysteil).
228
+ - Try to detect an upgrade from Roadie 2 and mention how to make it work with the new version.
229
+ - Styles emitted in the `style` attribute should now be ordered as they were in the source CSS.
211
230
 
212
231
  ### 3.0.0.pre1
213
232
 
@@ -215,188 +234,188 @@
215
234
 
216
235
  Complete rewrite of most of the code and a new direction for the gem.
217
236
 
218
- * Breaking changes:
219
- * Removed Rails support into a separate Gem (`roadie-rails`).
220
- * Removed Sprockets dependency and AssetPipelineProvider.
221
- * Changed the entire public API.
222
- * Changed the API of custom providers.
223
- * Dropped support for Ruby 1.8.7.
224
- * Change `data-immutable` to `data-roadie-ignore`.
225
- * New features:
226
- * Rewriting the URLs of `img[src]`.
227
- * A way to inject stylesheets without having to adjust template.
228
- * A before callback to compliment the after callback.
229
- * Enhancements:
230
- * Better support for stylesheets using CSS fallbacks.
237
+ - Breaking changes:
238
+ - Removed Rails support into a separate Gem (`roadie-rails`).
239
+ - Removed Sprockets dependency and AssetPipelineProvider.
240
+ - Changed the entire public API.
241
+ - Changed the API of custom providers.
242
+ - Dropped support for Ruby 1.8.7.
243
+ - Change `data-immutable` to `data-roadie-ignore`.
244
+ - New features:
245
+ - Rewriting the URLs of `img[src]`.
246
+ - A way to inject stylesheets without having to adjust template.
247
+ - A before callback to compliment the after callback.
248
+ - Enhancements:
249
+ - Better support for stylesheets using CSS fallbacks.
231
250
  This means that styles like this is now inlined: `width: 5em; width: 3rem;`, while Roadie would previously remove the first of the two.
232
251
  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.
233
- * Using HTML5 doctype instead of XHTML
234
- * Full support for JRuby
235
- * Experimental support for Rubinius
252
+ - Using HTML5 doctype instead of XHTML
253
+ - Full support for JRuby
254
+ - Experimental support for Rubinius
236
255
 
237
256
  ### 2.4.2
238
257
 
239
258
  [full changelog](https://github.com/Mange/roadie/compare/v2.4.1...v2.4.2)
240
259
 
241
- * Bug fixes:
242
- * Fix Nokogiri version to allow only 1.5.x on ruby 1.8.7
243
- * Blacklist :before, :after, :-ms-input-placeholder, :-moz-placeholder selectors – [Brian Bauer (bbauer)][https://github.com/bbauer].
244
- * Build failed on 1.8.7 due to a change in `css_parser`
260
+ - Bug fixes:
261
+ - Fix Nokogiri version to allow only 1.5.x on ruby 1.8.7
262
+ - Blacklist :before, :after, :-ms-input-placeholder, :-moz-placeholder selectors – [Brian Bauer (bbauer)][https://github.com/bbauer].
263
+ - Build failed on 1.8.7 due to a change in `css_parser`
245
264
 
246
265
  ### 2.4.1
247
266
 
248
267
  [full changelog](https://github.com/Mange/roadie/compare/v2.4.0...v2.4.1)
249
268
 
250
- * Bug fixes:
251
- * Allow Nokogiri 1.5.x again; 1.6.x is unsupported in Ruby 1.8.7.
269
+ - Bug fixes:
270
+ - Allow Nokogiri 1.5.x again; 1.6.x is unsupported in Ruby 1.8.7.
252
271
 
253
272
  ### 2.4.0
254
273
 
255
274
  [full changelog](https://github.com/Mange/roadie/compare/v2.3.4...v2.4.0)
256
275
 
257
- * Enhancements:
258
- * Support Rails 4.0, with the help of:
259
- * [Ryunosuke SATO (tricknotes)](https://github.com/tricknotes)
260
- * [Dylan Markow](https://github.com/dmarkow)
261
- * Keep `!important` when outputting styles to help combat web mail styles being `!important`
262
- * Support `:nth-child`, `:last-child`, etc.
263
- * 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.
264
- * Support for custom inliner (#58) — [Harish Shetty (kandadaboggu)](https://github.com/kandadaboggu) with friends
265
- * Bug fixes:
266
- * Don't crash when URL options have protocols with "://" in them (#52).
267
- * Other:
268
- * Be more specific on which versions are required; require newer `css_parser`
269
- * Officially support MRI 2.0.0
270
- * Add experimental support for JRuby
271
- * Remove documentation that talks about passing CSS filenames as symbols; unsupported in Rails 4. (Thanks to [PikachuEXE](https://github.com/PikachuEXE))
276
+ - Enhancements:
277
+ - Support Rails 4.0, with the help of:
278
+ - [Ryunosuke SATO (tricknotes)](https://github.com/tricknotes)
279
+ - [Dylan Markow](https://github.com/dmarkow)
280
+ - Keep `!important` when outputting styles to help combat web mail styles being `!important`
281
+ - Support `:nth-child`, `:last-child`, etc.
282
+ - 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.
283
+ - Support for custom inliner (#58) — [Harish Shetty (kandadaboggu)](https://github.com/kandadaboggu) with friends
284
+ - Bug fixes:
285
+ - Don't crash when URL options have protocols with "://" in them (#52).
286
+ - Other:
287
+ - Be more specific on which versions are required; require newer `css_parser`
288
+ - Officially support MRI 2.0.0
289
+ - Add experimental support for JRuby
290
+ - Remove documentation that talks about passing CSS filenames as symbols; unsupported in Rails 4. (Thanks to [PikachuEXE](https://github.com/PikachuEXE))
272
291
 
273
292
  ### 2.3.4
274
293
 
275
294
  [full changelog](https://github.com/Mange/roadie/compare/v2.3.3...v2.3.4)
276
295
 
277
- * Enhancements:
278
- * Add `config.roadie.enabled` that can be set to `false` to disable Roadie completely.
279
- * Bug fixes:
280
- * Proc objects to the `:css` option is now run in the context of the mailer instance, mirroring similar options from ActionMailer.
281
- * Fix some tests that would always pass
282
- * Improve JRuby compatibility
283
- * Update Gemfile.lock and fix issues with newer gem versions
296
+ - Enhancements:
297
+ - Add `config.roadie.enabled` that can be set to `false` to disable Roadie completely.
298
+ - Bug fixes:
299
+ - Proc objects to the `:css` option is now run in the context of the mailer instance, mirroring similar options from ActionMailer.
300
+ - Fix some tests that would always pass
301
+ - Improve JRuby compatibility
302
+ - Update Gemfile.lock and fix issues with newer gem versions
284
303
 
285
304
  ### 2.3.3
286
305
 
287
306
  [full changelog](https://github.com/Mange/roadie/compare/v2.3.2...v2.3.3)
288
307
 
289
- * Enhancements:
290
- * Allow proc objects to the `:css` option
291
- * Bug fixes:
292
- * Ignore HTML comments and CDATA sections in CSS (support TinyMCE)
308
+ - Enhancements:
309
+ - Allow proc objects to the `:css` option
310
+ - Bug fixes:
311
+ - Ignore HTML comments and CDATA sections in CSS (support TinyMCE)
293
312
 
294
313
  ### 2.3.2
295
314
 
296
315
  [full changelog](https://github.com/Mange/roadie/compare/v2.3.1...v2.3.2)
297
316
 
298
- * Bug fixes:
299
- * Don't fail on selectors which start with @ (#28) — [Roman Shterenzon (romanbsd)](https://github.com/romanbsd)
317
+ - Bug fixes:
318
+ - Don't fail on selectors which start with @ (#28) — [Roman Shterenzon (romanbsd)](https://github.com/romanbsd)
300
319
 
301
320
  ### 2.3.1
302
321
 
303
322
  [full changelog](https://github.com/Mange/roadie/compare/v2.3.0...v2.3.1)
304
323
 
305
- * Bug fixes:
306
- * Does not work with Rails 3.0 unless provider set specifically (#23)
324
+ - Bug fixes:
325
+ - Does not work with Rails 3.0 unless provider set specifically (#23)
307
326
 
308
327
  ### 2.3.0
309
328
 
310
329
  [full changelog](https://github.com/Mange/roadie/compare/v2.3.0.pre1...v2.3.0)
311
330
 
312
- * Nothing, really
331
+ - Nothing, really
313
332
 
314
333
  ### 2.3.0.pre1
315
334
 
316
335
  [full changelog](https://github.com/Mange/roadie/compare/v2.2.0...v2.3.0.pre1)
317
336
 
318
- * Enhancements:
319
- * Support Rails 3.2.pre1 - [Morton Jonuschat (yabawock)](https://github.com/yabawock)
320
- * Sped up the Travis builds
321
- * Official support for Rails 3.0 again
322
- * Dependencies allow 3.0
323
- * Travis builds 3.0 among the others
337
+ - Enhancements:
338
+ - Support Rails 3.2.pre1 - [Morton Jonuschat (yabawock)](https://github.com/yabawock)
339
+ - Sped up the Travis builds
340
+ - Official support for Rails 3.0 again
341
+ - Dependencies allow 3.0
342
+ - Travis builds 3.0 among the others
324
343
 
325
344
  ### 2.2.0
326
345
 
327
346
  [full changelog](https://github.com/Mange/roadie/compare/v2.1.0...v2.2.0)
328
347
 
329
- * Enhancements:
330
- * Support for the `url_options` method inside mailer instances
331
- * You can now dynamically alter the URL options on a per-email basis
348
+ - Enhancements:
349
+ - Support for the `url_options` method inside mailer instances
350
+ - You can now dynamically alter the URL options on a per-email basis
332
351
 
333
352
  ### 2.1.0
334
353
 
335
354
  [full changelog](https://github.com/Mange/roadie/compare/v2.1.0.pre2...v2.1.0)
336
355
 
337
- * Full release!
356
+ - Full release!
338
357
 
339
358
  ### 2.1.0.pre2
340
359
 
341
360
  [full changelog](https://github.com/Mange/roadie/compare/v2.1.0.pre1...v2.1.0.pre2)
342
361
 
343
- * Bug: Roadie broke `url_for` inside mailer views
362
+ - Bug: Roadie broke `url_for` inside mailer views
344
363
 
345
364
  ### 2.1.0.pre1
346
365
 
347
366
  [full changelog](https://github.com/Mange/roadie/compare/v2.0.0...v2.1.0.pre1)
348
367
 
349
- * Enhancements:
350
- * Support normal filesystem instead of only Asset pipeline
351
- * Enable users to create their own way of fetching CSS
352
- * Improve test coverage a bit
353
- * Use a railtie to hook into Rails
354
- * Use real Rails for testing integration
368
+ - Enhancements:
369
+ - Support normal filesystem instead of only Asset pipeline
370
+ - Enable users to create their own way of fetching CSS
371
+ - Improve test coverage a bit
372
+ - Use a railtie to hook into Rails
373
+ - Use real Rails for testing integration
355
374
 
356
375
  ### 2.0.0
357
376
 
358
377
  [full changelog](https://github.com/Mange/roadie/compare/v1.1.3...v2.0.0)
359
378
 
360
- * Enhancements:
361
- * Support the Asset pipeline - [Arttu Tervo (arttu)](https://github.com/arttu)
362
- * Dependencies:
363
- * Requires Rails 3.1 to work. You can keep on using the 1.x series in Rails 3.0
379
+ - Enhancements:
380
+ - Support the Asset pipeline - [Arttu Tervo (arttu)](https://github.com/arttu)
381
+ - Dependencies:
382
+ - Requires Rails 3.1 to work. You can keep on using the 1.x series in Rails 3.0
364
383
 
365
384
  ### 1.1.3
366
385
 
367
386
  [full changelog](https://github.com/Mange/roadie/compare/v1.1.2...v1.1.3)
368
387
 
369
- * Do not add another ".css" to filenames if already present - [Aliaxandr (saks)](https://github.com/saks)
388
+ - Do not add another ".css" to filenames if already present - [Aliaxandr (saks)](https://github.com/saks)
370
389
 
371
390
  ### 1.1.2
372
391
 
373
392
  [full changelog](https://github.com/Mange/roadie/compare/v1.1.1...v1.1.2)
374
393
 
375
- * Support for Rails 3.1.0 and later inside gemspec
394
+ - Support for Rails 3.1.0 and later inside gemspec
376
395
 
377
396
  ### 1.1.1
378
397
 
379
398
  [full changelog](https://github.com/Mange/roadie/compare/v1.1.0...v1.1.1)
380
399
 
381
- * Support for Rails 3.1.x (up to and including RC4)
382
- * Rails 3.0.x is still supported
383
- * Added CI via [Travis CI](http://travis-ci.org)
400
+ - Support for Rails 3.1.x (up to and including RC4)
401
+ - Rails 3.0.x is still supported
402
+ - Added CI via [Travis CI](http://travis-ci.org)
384
403
 
385
404
  ### 1.1.0
386
405
 
387
406
  [full changelog](https://github.com/Mange/roadie/compare/v1.0.1...v1.1.0)
388
407
 
389
- * Enhancements:
390
- * Support for inlining `<link>` elements (thanks to [aliix](https://github.com/aliix))
408
+ - Enhancements:
409
+ - Support for inlining `<link>` elements (thanks to [aliix](https://github.com/aliix))
391
410
 
392
411
  ### 1.0.1
393
412
 
394
413
  [full changelog](https://github.com/Mange/roadie/compare/v1.0.0...v1.0.1)
395
414
 
396
- * Enhancements:
397
- * Full, official support for Ruby 1.9.2 (in addition to 1.8.7)
398
- * Dependencies:
399
- * Explicilty depend on nokogiri >= 1.4.4
415
+ - Enhancements:
416
+ - Full, official support for Ruby 1.9.2 (in addition to 1.8.7)
417
+ - Dependencies:
418
+ - Explicilty depend on nokogiri >= 1.4.4
400
419
 
401
420
  ### 1.0.0
402
421
 
@@ -404,11 +423,11 @@ Complete rewrite of most of the code and a new direction for the gem.
404
423
 
405
424
  Roadie fork!
406
425
 
407
- * Enhancements:
408
- * Support for Rails 3.0
409
- * Code cleanup
410
- * Support `!important`
411
- * Tests
412
- * + some other enhancements
413
- * Deprecations:
414
- * Removed support for Rails 2.x
426
+ - Enhancements:
427
+ - Support for Rails 3.0
428
+ - Code cleanup
429
+ - Support `!important`
430
+ - Tests
431
+ - - some other enhancements
432
+ - Deprecations:
433
+ - Removed support for Rails 2.x
data/Gemfile CHANGED
@@ -8,3 +8,4 @@ gem "codecov", group: :test, require: false
8
8
  # Not actually required to run the tests for the gem, but a real convenience
9
9
  # for local development.
10
10
  gem "standard", group: [:test, :development], require: false
11
+ gem "solargraph", group: [:test, :development], require: false
data/README.md CHANGED
@@ -54,7 +54,7 @@ Install & Usage
54
54
  [Add this gem to your Gemfile as recommended by Rubygems](http://rubygems.org/gems/roadie) and run `bundle install`.
55
55
 
56
56
  ```ruby
57
- gem 'roadie', '~> 4.0'
57
+ gem 'roadie', '~> 5.2'
58
58
  ```
59
59
 
60
60
  You can then create a new instance of a Roadie document:
@@ -450,10 +450,10 @@ Build Status
450
450
 
451
451
  Tested with Github CI using:
452
452
 
453
- * MRI 2.6
454
453
  * MRI 2.7
455
454
  * MRI 3.0
456
455
  * MRI 3.1
456
+ * MRI 3.2
457
457
 
458
458
  Let me know if you want any other runtime supported officially.
459
459
 
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
@@ -8,6 +8,7 @@ module Roadie
8
8
  # should take place.
9
9
  class NullUrlRewriter
10
10
  def initialize(generator = nil)
11
+ # Intentionally left blank.
11
12
  end
12
13
 
13
14
  def transform_dom(dom)
@@ -71,6 +71,7 @@ module Roadie
71
71
  :before :after
72
72
  :enabled :disabled :checked
73
73
  :host
74
+ :root
74
75
  ].freeze
75
76
 
76
77
  def pseudo_element?
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Roadie
4
- VERSION = "5.1.0"
4
+ VERSION = "5.2.1"
5
5
  end
data/roadie.gemspec CHANGED
@@ -15,19 +15,19 @@ Gem::Specification.new do |s|
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.6"
18
+ s.required_ruby_version = ">= 2.7"
19
19
 
20
- s.add_dependency "nokogiri", "~> 1.8"
20
+ s.add_dependency "nokogiri", "~> 1.15"
21
21
  s.add_dependency "css_parser", "~> 1.4"
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]
30
31
 
31
32
  s.files = `git ls-files`.split("\n")
32
- s.test_files = `git ls-files -- spec/*`.split("\n")
33
33
  end
@@ -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>
@@ -251,8 +274,7 @@ describe "Roadie functionality" do
251
274
  result = parse_html document.transform
252
275
 
253
276
  expect(result.at_css("a.one")["href"]).to eq("https://myapp.com/rails/app/about_us")
254
- # Nokogiri still treats the attribute as an URL and escapes it.
255
- expect(result.at_css("a.two")["href"]).to eq("%24UNSUBSCRIBE_URL")
277
+ expect(result.at_css("a.two")["href"]).to eq("$UNSUBSCRIBE_URL")
256
278
 
257
279
  expect(result).to have_styling("color" => "green").at_selector("a.one")
258
280
  expect(result).to have_styling("color" => "green").at_selector("a.two")
@@ -39,7 +39,7 @@ module Roadie
39
39
  context "when one of media queries includes feature condition" do
40
40
  it "returns false" do
41
41
  selector = double "Selector", inlinable?: "maybe"
42
- expect(StyleBlock.new(selector, [], [:all, :'screen (min-width: 300px)']).inlinable?).to be(false)
42
+ expect(StyleBlock.new(selector, [], [:all, :"screen (min-width: 300px)"]).inlinable?).to be(false)
43
43
  end
44
44
  end
45
45
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: roadie
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.1.0
4
+ version: 5.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Magnus Bergmark
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-19 00:00:00.000000000 Z
11
+ date: 1980-01-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.8'
19
+ version: '1.15'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.8'
26
+ version: '1.15'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: css_parser
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '3.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: standardrb
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
97
111
  description: Roadie tries to make sending HTML emails a little less painful by inlining
98
112
  stylesheets and rewriting relative URLs for you.
99
113
  email:
@@ -104,11 +118,11 @@ extra_rdoc_files:
104
118
  - README.md
105
119
  - Changelog.md
106
120
  files:
107
- - ".autotest"
108
121
  - ".github/workflows/main.yml"
109
122
  - ".gitignore"
110
123
  - ".rubocop.yml"
111
124
  - ".solargraph.yml"
125
+ - ".standard.yml"
112
126
  - ".yardopts"
113
127
  - Changelog.md
114
128
  - Gemfile
@@ -190,50 +204,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
190
204
  requirements:
191
205
  - - ">="
192
206
  - !ruby/object:Gem::Version
193
- version: '2.6'
207
+ version: '2.7'
194
208
  required_rubygems_version: !ruby/object:Gem::Requirement
195
209
  requirements:
196
210
  - - ">="
197
211
  - !ruby/object:Gem::Version
198
212
  version: '0'
199
213
  requirements: []
200
- rubygems_version: 3.3.7
214
+ rubygems_version: 3.5.5
201
215
  signing_key:
202
216
  specification_version: 4
203
217
  summary: Making HTML emails comfortable for the Ruby rockstars
204
- test_files:
205
- - spec/fixtures/big_em.css
206
- - spec/fixtures/stylesheets/green.css
207
- - spec/hash_as_cache_store_spec.rb
208
- - spec/integration_spec.rb
209
- - spec/lib/roadie/asset_scanner_spec.rb
210
- - spec/lib/roadie/cached_provider_spec.rb
211
- - spec/lib/roadie/css_not_found_spec.rb
212
- - spec/lib/roadie/deduplicator_spec.rb
213
- - spec/lib/roadie/document_spec.rb
214
- - spec/lib/roadie/filesystem_provider_spec.rb
215
- - spec/lib/roadie/inliner_spec.rb
216
- - spec/lib/roadie/markup_improver_spec.rb
217
- - spec/lib/roadie/net_http_provider_spec.rb
218
- - spec/lib/roadie/null_provider_spec.rb
219
- - spec/lib/roadie/null_url_rewriter_spec.rb
220
- - spec/lib/roadie/path_rewriter_provider_spec.rb
221
- - spec/lib/roadie/provider_list_spec.rb
222
- - spec/lib/roadie/selector_spec.rb
223
- - spec/lib/roadie/style_attribute_builder_spec.rb
224
- - spec/lib/roadie/style_block_spec.rb
225
- - spec/lib/roadie/style_property_spec.rb
226
- - spec/lib/roadie/stylesheet_spec.rb
227
- - spec/lib/roadie/test_provider_spec.rb
228
- - spec/lib/roadie/url_generator_spec.rb
229
- - spec/lib/roadie/url_rewriter_spec.rb
230
- - spec/lib/roadie/utils_spec.rb
231
- - spec/shared_examples/asset_provider.rb
232
- - spec/shared_examples/url_rewriter.rb
233
- - spec/spec_helper.rb
234
- - spec/support/have_attribute_matcher.rb
235
- - spec/support/have_node_matcher.rb
236
- - spec/support/have_selector_matcher.rb
237
- - spec/support/have_styling_matcher.rb
238
- - spec/support/have_xpath_matcher.rb
239
- - spec/support/test_provider.rb
218
+ test_files: []
data/.autotest DELETED
@@ -1,10 +0,0 @@
1
- # Override autotest default magic to rerun all tests every time a
2
- # change is detected on the file system.
3
- class Autotest
4
- def get_to_green
5
- begin
6
- rerun_all_tests
7
- wait_for_changes unless all_good
8
- end until all_good
9
- end
10
- end