html_safe_flash 0.1.0 → 0.2.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: 7f9306fee0b449552fa6cc6dd75391a001a1a90d2aa98ac051bac4c3ebfa0d31
4
- data.tar.gz: bf2a425302554f4b1da2c97f5a9250cc55fa12cb27e4cec09e9272a3a02c85e6
3
+ metadata.gz: '01459f09d3320a0324ac6fdfe79fc1e5752e7c64c83568c9fd6538da5fc73abb'
4
+ data.tar.gz: ae4886735f28a6a06a4f07ea09059a9e80d83c6daa56333d844122fb98d256de
5
5
  SHA512:
6
- metadata.gz: 130c82ce8cb75498d6fb8e772ec675683eb73585d2e1d96c85c22eddd621a12b2adc7852a8e6cb66b26b8db189592943e88013e9c6fc5907fa1b4b21310f0ec1
7
- data.tar.gz: fc066c9f401867f04ddc5ecd2b49286c4ee205ce3001cf080f998b154e1c70d6e377ef8a02e43fd83c781e5584c255e19ce02d16cfaf6c047e396330900a3ed8
6
+ metadata.gz: 379b7c1fe6b65ab4f5593e4c14f26856e6da66952b4020c80730727716f503b7bf64cc2eccba9811870805858ba0809ba1feed35ba35f9eb3c163586ef426a3a
7
+ data.tar.gz: bcc3564f374d4d32ff5fbe0b5b5e785576170300b11ff6deb53bc733244da6a6786fad5e874a9f925e1d8d33ccd0a12928ef7a4934c2cf49701c0b782701e033
data/.standard.yml CHANGED
@@ -1,2 +1,2 @@
1
1
  ignore:
2
- - test/unit/rails_flash_hash_test.rb
2
+ - test/rails/flash_hash_test.rb
data/CHANGELOG.md CHANGED
@@ -1,4 +1,6 @@
1
- ## [Unreleased]
1
+ ## [0.2.0] - 2023-04-03
2
+
3
+ - Add support for arrays of `html_safe` strings
2
4
 
3
5
  ## [0.1.0] - 2023-01-08
4
6
 
data/Gemfile CHANGED
@@ -4,8 +4,3 @@ source "https://rubygems.org"
4
4
 
5
5
  # Specify your gem's dependencies in html_safe_flash.gemspec
6
6
  gemspec
7
-
8
- gem "minitest", "~> 5.17"
9
- gem "rake", "~> 13.0"
10
- gem "rubocop-minitest", "~> 0.25"
11
- gem "standard", "~> 1.21"
data/Gemfile.lock CHANGED
@@ -1,73 +1,73 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- html_safe_flash (0.1.0)
4
+ html_safe_flash (0.2.0)
5
5
  rails (>= 6)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- actioncable (7.0.4)
11
- actionpack (= 7.0.4)
12
- activesupport (= 7.0.4)
10
+ actioncable (7.0.4.3)
11
+ actionpack (= 7.0.4.3)
12
+ activesupport (= 7.0.4.3)
13
13
  nio4r (~> 2.0)
14
14
  websocket-driver (>= 0.6.1)
15
- actionmailbox (7.0.4)
16
- actionpack (= 7.0.4)
17
- activejob (= 7.0.4)
18
- activerecord (= 7.0.4)
19
- activestorage (= 7.0.4)
20
- activesupport (= 7.0.4)
15
+ actionmailbox (7.0.4.3)
16
+ actionpack (= 7.0.4.3)
17
+ activejob (= 7.0.4.3)
18
+ activerecord (= 7.0.4.3)
19
+ activestorage (= 7.0.4.3)
20
+ activesupport (= 7.0.4.3)
21
21
  mail (>= 2.7.1)
22
22
  net-imap
23
23
  net-pop
24
24
  net-smtp
25
- actionmailer (7.0.4)
26
- actionpack (= 7.0.4)
27
- actionview (= 7.0.4)
28
- activejob (= 7.0.4)
29
- activesupport (= 7.0.4)
25
+ actionmailer (7.0.4.3)
26
+ actionpack (= 7.0.4.3)
27
+ actionview (= 7.0.4.3)
28
+ activejob (= 7.0.4.3)
29
+ activesupport (= 7.0.4.3)
30
30
  mail (~> 2.5, >= 2.5.4)
31
31
  net-imap
32
32
  net-pop
33
33
  net-smtp
34
34
  rails-dom-testing (~> 2.0)
35
- actionpack (7.0.4)
36
- actionview (= 7.0.4)
37
- activesupport (= 7.0.4)
35
+ actionpack (7.0.4.3)
36
+ actionview (= 7.0.4.3)
37
+ activesupport (= 7.0.4.3)
38
38
  rack (~> 2.0, >= 2.2.0)
39
39
  rack-test (>= 0.6.3)
40
40
  rails-dom-testing (~> 2.0)
41
41
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
42
- actiontext (7.0.4)
43
- actionpack (= 7.0.4)
44
- activerecord (= 7.0.4)
45
- activestorage (= 7.0.4)
46
- activesupport (= 7.0.4)
42
+ actiontext (7.0.4.3)
43
+ actionpack (= 7.0.4.3)
44
+ activerecord (= 7.0.4.3)
45
+ activestorage (= 7.0.4.3)
46
+ activesupport (= 7.0.4.3)
47
47
  globalid (>= 0.6.0)
48
48
  nokogiri (>= 1.8.5)
49
- actionview (7.0.4)
50
- activesupport (= 7.0.4)
49
+ actionview (7.0.4.3)
50
+ activesupport (= 7.0.4.3)
51
51
  builder (~> 3.1)
52
52
  erubi (~> 1.4)
53
53
  rails-dom-testing (~> 2.0)
54
54
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
55
- activejob (7.0.4)
56
- activesupport (= 7.0.4)
55
+ activejob (7.0.4.3)
56
+ activesupport (= 7.0.4.3)
57
57
  globalid (>= 0.3.6)
58
- activemodel (7.0.4)
59
- activesupport (= 7.0.4)
60
- activerecord (7.0.4)
61
- activemodel (= 7.0.4)
62
- activesupport (= 7.0.4)
63
- activestorage (7.0.4)
64
- actionpack (= 7.0.4)
65
- activejob (= 7.0.4)
66
- activerecord (= 7.0.4)
67
- activesupport (= 7.0.4)
58
+ activemodel (7.0.4.3)
59
+ activesupport (= 7.0.4.3)
60
+ activerecord (7.0.4.3)
61
+ activemodel (= 7.0.4.3)
62
+ activesupport (= 7.0.4.3)
63
+ activestorage (7.0.4.3)
64
+ actionpack (= 7.0.4.3)
65
+ activejob (= 7.0.4.3)
66
+ activerecord (= 7.0.4.3)
67
+ activesupport (= 7.0.4.3)
68
68
  marcel (~> 1.0)
69
69
  mini_mime (>= 1.1.0)
70
- activesupport (7.0.4)
70
+ activesupport (7.0.4.3)
71
71
  concurrent-ruby (~> 1.0, >= 1.0.2)
72
72
  i18n (>= 1.6, < 2)
73
73
  minitest (>= 5.1)
@@ -78,20 +78,20 @@ GEM
78
78
  thor (>= 0.14.0)
79
79
  ast (2.4.2)
80
80
  builder (3.2.4)
81
- concurrent-ruby (1.1.10)
81
+ concurrent-ruby (1.2.2)
82
82
  crass (1.0.6)
83
83
  date (3.3.3)
84
84
  erubi (1.12.0)
85
- globalid (1.0.0)
85
+ globalid (1.1.0)
86
86
  activesupport (>= 5.0)
87
87
  i18n (1.12.0)
88
88
  concurrent-ruby (~> 1.0)
89
89
  json (2.6.3)
90
- language_server-protocol (3.17.0.2)
91
- loofah (2.19.1)
90
+ language_server-protocol (3.17.0.3)
91
+ loofah (2.20.0)
92
92
  crass (~> 1.0.2)
93
93
  nokogiri (>= 1.5.9)
94
- mail (2.8.0)
94
+ mail (2.8.1)
95
95
  mini_mime (>= 0.1.1)
96
96
  net-imap
97
97
  net-pop
@@ -100,7 +100,7 @@ GEM
100
100
  method_source (1.0.0)
101
101
  mini_mime (1.1.2)
102
102
  mini_portile2 (2.8.1)
103
- minitest (5.17.0)
103
+ minitest (5.18.0)
104
104
  net-imap (0.3.4)
105
105
  date
106
106
  net-protocol
@@ -110,78 +110,82 @@ GEM
110
110
  timeout
111
111
  net-smtp (0.3.3)
112
112
  net-protocol
113
- nio4r (2.5.8)
114
- nokogiri (1.13.10)
113
+ nio4r (2.5.9)
114
+ nokogiri (1.14.2)
115
115
  mini_portile2 (~> 2.8.0)
116
116
  racc (~> 1.4)
117
+ nokogiri (1.14.2-x86_64-darwin)
118
+ racc (~> 1.4)
119
+ nokogiri (1.14.2-x86_64-linux)
120
+ racc (~> 1.4)
117
121
  parallel (1.22.1)
118
- parser (3.2.0.0)
122
+ parser (3.2.2.0)
119
123
  ast (~> 2.4.1)
120
124
  racc (1.6.2)
121
- rack (2.2.5)
122
- rack-test (2.0.2)
125
+ rack (2.2.6.4)
126
+ rack-test (2.1.0)
123
127
  rack (>= 1.3)
124
- rails (7.0.4)
125
- actioncable (= 7.0.4)
126
- actionmailbox (= 7.0.4)
127
- actionmailer (= 7.0.4)
128
- actionpack (= 7.0.4)
129
- actiontext (= 7.0.4)
130
- actionview (= 7.0.4)
131
- activejob (= 7.0.4)
132
- activemodel (= 7.0.4)
133
- activerecord (= 7.0.4)
134
- activestorage (= 7.0.4)
135
- activesupport (= 7.0.4)
128
+ rails (7.0.4.3)
129
+ actioncable (= 7.0.4.3)
130
+ actionmailbox (= 7.0.4.3)
131
+ actionmailer (= 7.0.4.3)
132
+ actionpack (= 7.0.4.3)
133
+ actiontext (= 7.0.4.3)
134
+ actionview (= 7.0.4.3)
135
+ activejob (= 7.0.4.3)
136
+ activemodel (= 7.0.4.3)
137
+ activerecord (= 7.0.4.3)
138
+ activestorage (= 7.0.4.3)
139
+ activesupport (= 7.0.4.3)
136
140
  bundler (>= 1.15.0)
137
- railties (= 7.0.4)
141
+ railties (= 7.0.4.3)
138
142
  rails-dom-testing (2.0.3)
139
143
  activesupport (>= 4.2.0)
140
144
  nokogiri (>= 1.6)
141
- rails-html-sanitizer (1.4.4)
145
+ rails-html-sanitizer (1.5.0)
142
146
  loofah (~> 2.19, >= 2.19.1)
143
- railties (7.0.4)
144
- actionpack (= 7.0.4)
145
- activesupport (= 7.0.4)
147
+ railties (7.0.4.3)
148
+ actionpack (= 7.0.4.3)
149
+ activesupport (= 7.0.4.3)
146
150
  method_source
147
151
  rake (>= 12.2)
148
152
  thor (~> 1.0)
149
153
  zeitwerk (~> 2.5)
150
154
  rainbow (3.1.1)
151
155
  rake (13.0.6)
152
- regexp_parser (2.6.1)
156
+ regexp_parser (2.7.0)
153
157
  rexml (3.2.5)
154
- rubocop (1.42.0)
158
+ rubocop (1.48.1)
155
159
  json (~> 2.3)
156
160
  parallel (~> 1.10)
157
- parser (>= 3.1.2.1)
161
+ parser (>= 3.2.0.0)
158
162
  rainbow (>= 2.2.2, < 4.0)
159
163
  regexp_parser (>= 1.8, < 3.0)
160
164
  rexml (>= 3.2.5, < 4.0)
161
- rubocop-ast (>= 1.24.1, < 2.0)
165
+ rubocop-ast (>= 1.26.0, < 2.0)
162
166
  ruby-progressbar (~> 1.7)
163
- unicode-display_width (>= 1.4.0, < 3.0)
164
- rubocop-ast (1.24.1)
165
- parser (>= 3.1.1.0)
166
- rubocop-minitest (0.25.1)
167
- rubocop (>= 0.90, < 2.0)
168
- rubocop-performance (1.15.2)
167
+ unicode-display_width (>= 2.4.0, < 3.0)
168
+ rubocop-ast (1.28.0)
169
+ parser (>= 3.2.1.0)
170
+ rubocop-minitest (0.29.0)
171
+ rubocop (>= 1.39, < 2.0)
172
+ rubocop-performance (1.16.0)
169
173
  rubocop (>= 1.7.0, < 2.0)
170
174
  rubocop-ast (>= 0.4.0)
171
- ruby-progressbar (1.11.0)
172
- standard (1.21.1)
175
+ ruby-progressbar (1.13.0)
176
+ standard (1.26.0)
173
177
  language_server-protocol (~> 3.17.0.2)
174
- rubocop (= 1.42.0)
175
- rubocop-performance (= 1.15.2)
178
+ rubocop (~> 1.48.1)
179
+ rubocop-performance (~> 1.16.0)
176
180
  thor (1.2.1)
177
- timeout (0.3.1)
178
- tzinfo (2.0.5)
181
+ timeout (0.3.2)
182
+ tzinfo (2.0.6)
179
183
  concurrent-ruby (~> 1.0)
180
184
  unicode-display_width (2.4.2)
181
185
  websocket-driver (0.7.5)
182
186
  websocket-extensions (>= 0.1.0)
183
187
  websocket-extensions (0.1.5)
184
- zeitwerk (2.6.6)
188
+ zeitwerk (2.6.7)
185
189
 
186
190
  PLATFORMS
187
191
  ruby
@@ -191,10 +195,10 @@ PLATFORMS
191
195
  DEPENDENCIES
192
196
  appraisal
193
197
  html_safe_flash!
194
- minitest (~> 5.17)
195
- rake (~> 13.0)
196
- rubocop-minitest (~> 0.25)
197
- standard (~> 1.21)
198
+ minitest
199
+ rake
200
+ rubocop-minitest
201
+ standard
198
202
 
199
203
  BUNDLED WITH
200
204
  2.4.2
data/README.md CHANGED
@@ -1,10 +1,15 @@
1
1
  # html_safe_flash
2
2
  Use `html_safe` strings naturally in Rails flash messages.
3
3
 
4
- ## Usage
5
- Just store any `html_safe` string in a flash message!
4
+ ## Installation
5
+ Add this line to your application's Gemfile anywhere after `rails`:
6
+
7
+ ```ruby
8
+ gem "html_safe_flash"
9
+ ```
6
10
 
7
- Since Rails 4.1+ (which switched to JSON as the default cookie serializer), code like this does not work as one might expect:
11
+ ## Usage
12
+ Store any `html_safe` string (or an array of them) in the Rails `flash` object:
8
13
 
9
14
  ```ruby
10
15
  class PostsController < ApplicationController
@@ -16,13 +21,8 @@ class PostsController < ApplicationController
16
21
  end
17
22
  ```
18
23
 
19
- Calling `html_safe` on the string returns a `ActiveSupport::SafeBuffer` object.
20
- When Rails serializes it to the session cookie, this object is stored as a normal string, losing its `html_safe?` status when loaded on the next page.
21
-
22
- Some applications work around this issue by rendering every flash message with `html_safe` or `raw`.
23
- This isn't always a problem, but can easily create a cross-site scripting security vulnerability if a message ever includes unescaped user input.
24
-
25
- With this gem installed however, `flash[:success].html_safe?` will return true on the next request because html_safe metadata is tracked internally — `html_safe_flash` patches `ActionDispatch::Flash::FlashHash` to store something like this in the session:
24
+ This gem patches `ActionDispatch::Flash::FlashHash` to track any `html_safe` values internally.
25
+ In the example above, this is the actual flash data stored in the session cookie:
26
26
 
27
27
  ```json
28
28
  {
@@ -31,14 +31,18 @@ With this gem installed however, `flash[:success].html_safe?` will return true o
31
31
  }
32
32
  ```
33
33
 
34
- On the next request, the message is automatically converted back to a `ActiveSupport::SafeBuffer` and the extra metadata is removed.
34
+ On the next request, the `_html_safe_keys` metadata is removed and the `success` message is converted back to an `ActiveSupport::SafeBuffer` automatically.
35
35
 
36
- ## Installation
37
- Add this line to your application's Gemfile after `rails`:
36
+ Without this gem, the code above would not work as one might expect:
37
+ Calling `html_safe` on the message returns a `ActiveSupport::SafeBuffer` object, which becomes a normal string when Rails stores it in the session cookie.
38
+ When the cookie is loaded on the next page, the `html_safe?` state of the message would be lost.
38
39
 
39
- ```ruby
40
- gem "html_safe_flash"
41
- ```
40
+ ## Why?
41
+
42
+ Using `html_safe` like this was possible in old versions of Rails, which serialized cookies using `Marshal`, allowing arbitrary objects like `ActiveSupport::SafeBuffer` to be stored.
43
+ In Rails 4.1 this was changed for security reasons, and cookie data is limited to the basic types supported by the default `JSON` serializer.
44
+
45
+ Without a way to store `html_safe` values, some applications work around the issue by rendering every flash message with `html_safe` or `raw`. This can become a cross-site scripting security vulnerability if a message ever includes unescaped user input.
42
46
 
43
47
  ## License
44
48
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
@@ -2,10 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "minitest", "~> 5.17"
6
- gem "rake", "~> 13.0"
7
- gem "rubocop-minitest", "~> 0.25"
8
- gem "standard", "~> 1.21"
9
5
  gem "rails", "~> 6.1"
10
6
 
11
7
  gemspec path: "../"
@@ -1,66 +1,66 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- html_safe_flash (0.1.0)
4
+ html_safe_flash (0.2.0)
5
5
  rails (>= 6)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- actioncable (6.1.7)
11
- actionpack (= 6.1.7)
12
- activesupport (= 6.1.7)
10
+ actioncable (6.1.7.3)
11
+ actionpack (= 6.1.7.3)
12
+ activesupport (= 6.1.7.3)
13
13
  nio4r (~> 2.0)
14
14
  websocket-driver (>= 0.6.1)
15
- actionmailbox (6.1.7)
16
- actionpack (= 6.1.7)
17
- activejob (= 6.1.7)
18
- activerecord (= 6.1.7)
19
- activestorage (= 6.1.7)
20
- activesupport (= 6.1.7)
15
+ actionmailbox (6.1.7.3)
16
+ actionpack (= 6.1.7.3)
17
+ activejob (= 6.1.7.3)
18
+ activerecord (= 6.1.7.3)
19
+ activestorage (= 6.1.7.3)
20
+ activesupport (= 6.1.7.3)
21
21
  mail (>= 2.7.1)
22
- actionmailer (6.1.7)
23
- actionpack (= 6.1.7)
24
- actionview (= 6.1.7)
25
- activejob (= 6.1.7)
26
- activesupport (= 6.1.7)
22
+ actionmailer (6.1.7.3)
23
+ actionpack (= 6.1.7.3)
24
+ actionview (= 6.1.7.3)
25
+ activejob (= 6.1.7.3)
26
+ activesupport (= 6.1.7.3)
27
27
  mail (~> 2.5, >= 2.5.4)
28
28
  rails-dom-testing (~> 2.0)
29
- actionpack (6.1.7)
30
- actionview (= 6.1.7)
31
- activesupport (= 6.1.7)
29
+ actionpack (6.1.7.3)
30
+ actionview (= 6.1.7.3)
31
+ activesupport (= 6.1.7.3)
32
32
  rack (~> 2.0, >= 2.0.9)
33
33
  rack-test (>= 0.6.3)
34
34
  rails-dom-testing (~> 2.0)
35
35
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
36
- actiontext (6.1.7)
37
- actionpack (= 6.1.7)
38
- activerecord (= 6.1.7)
39
- activestorage (= 6.1.7)
40
- activesupport (= 6.1.7)
36
+ actiontext (6.1.7.3)
37
+ actionpack (= 6.1.7.3)
38
+ activerecord (= 6.1.7.3)
39
+ activestorage (= 6.1.7.3)
40
+ activesupport (= 6.1.7.3)
41
41
  nokogiri (>= 1.8.5)
42
- actionview (6.1.7)
43
- activesupport (= 6.1.7)
42
+ actionview (6.1.7.3)
43
+ activesupport (= 6.1.7.3)
44
44
  builder (~> 3.1)
45
45
  erubi (~> 1.4)
46
46
  rails-dom-testing (~> 2.0)
47
47
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
48
- activejob (6.1.7)
49
- activesupport (= 6.1.7)
48
+ activejob (6.1.7.3)
49
+ activesupport (= 6.1.7.3)
50
50
  globalid (>= 0.3.6)
51
- activemodel (6.1.7)
52
- activesupport (= 6.1.7)
53
- activerecord (6.1.7)
54
- activemodel (= 6.1.7)
55
- activesupport (= 6.1.7)
56
- activestorage (6.1.7)
57
- actionpack (= 6.1.7)
58
- activejob (= 6.1.7)
59
- activerecord (= 6.1.7)
60
- activesupport (= 6.1.7)
51
+ activemodel (6.1.7.3)
52
+ activesupport (= 6.1.7.3)
53
+ activerecord (6.1.7.3)
54
+ activemodel (= 6.1.7.3)
55
+ activesupport (= 6.1.7.3)
56
+ activestorage (6.1.7.3)
57
+ actionpack (= 6.1.7.3)
58
+ activejob (= 6.1.7.3)
59
+ activerecord (= 6.1.7.3)
60
+ activesupport (= 6.1.7.3)
61
61
  marcel (~> 1.0)
62
62
  mini_mime (>= 1.1.0)
63
- activesupport (6.1.7)
63
+ activesupport (6.1.7.3)
64
64
  concurrent-ruby (~> 1.0, >= 1.0.2)
65
65
  i18n (>= 1.6, < 2)
66
66
  minitest (>= 5.1)
@@ -72,20 +72,20 @@ GEM
72
72
  thor (>= 0.14.0)
73
73
  ast (2.4.2)
74
74
  builder (3.2.4)
75
- concurrent-ruby (1.1.10)
75
+ concurrent-ruby (1.2.2)
76
76
  crass (1.0.6)
77
77
  date (3.3.3)
78
78
  erubi (1.12.0)
79
- globalid (1.0.0)
79
+ globalid (1.1.0)
80
80
  activesupport (>= 5.0)
81
81
  i18n (1.12.0)
82
82
  concurrent-ruby (~> 1.0)
83
83
  json (2.6.3)
84
- language_server-protocol (3.17.0.2)
85
- loofah (2.19.1)
84
+ language_server-protocol (3.17.0.3)
85
+ loofah (2.20.0)
86
86
  crass (~> 1.0.2)
87
87
  nokogiri (>= 1.5.9)
88
- mail (2.8.0)
88
+ mail (2.8.1)
89
89
  mini_mime (>= 0.1.1)
90
90
  net-imap
91
91
  net-pop
@@ -94,7 +94,7 @@ GEM
94
94
  method_source (1.0.0)
95
95
  mini_mime (1.1.2)
96
96
  mini_portile2 (2.8.1)
97
- minitest (5.17.0)
97
+ minitest (5.18.0)
98
98
  net-imap (0.3.4)
99
99
  date
100
100
  net-protocol
@@ -104,65 +104,69 @@ GEM
104
104
  timeout
105
105
  net-smtp (0.3.3)
106
106
  net-protocol
107
- nio4r (2.5.8)
108
- nokogiri (1.13.10)
107
+ nio4r (2.5.9)
108
+ nokogiri (1.14.2)
109
109
  mini_portile2 (~> 2.8.0)
110
110
  racc (~> 1.4)
111
+ nokogiri (1.14.2-x86_64-darwin)
112
+ racc (~> 1.4)
113
+ nokogiri (1.14.2-x86_64-linux)
114
+ racc (~> 1.4)
111
115
  parallel (1.22.1)
112
- parser (3.2.0.0)
116
+ parser (3.2.2.0)
113
117
  ast (~> 2.4.1)
114
118
  racc (1.6.2)
115
- rack (2.2.5)
116
- rack-test (2.0.2)
119
+ rack (2.2.6.4)
120
+ rack-test (2.1.0)
117
121
  rack (>= 1.3)
118
- rails (6.1.7)
119
- actioncable (= 6.1.7)
120
- actionmailbox (= 6.1.7)
121
- actionmailer (= 6.1.7)
122
- actionpack (= 6.1.7)
123
- actiontext (= 6.1.7)
124
- actionview (= 6.1.7)
125
- activejob (= 6.1.7)
126
- activemodel (= 6.1.7)
127
- activerecord (= 6.1.7)
128
- activestorage (= 6.1.7)
129
- activesupport (= 6.1.7)
122
+ rails (6.1.7.3)
123
+ actioncable (= 6.1.7.3)
124
+ actionmailbox (= 6.1.7.3)
125
+ actionmailer (= 6.1.7.3)
126
+ actionpack (= 6.1.7.3)
127
+ actiontext (= 6.1.7.3)
128
+ actionview (= 6.1.7.3)
129
+ activejob (= 6.1.7.3)
130
+ activemodel (= 6.1.7.3)
131
+ activerecord (= 6.1.7.3)
132
+ activestorage (= 6.1.7.3)
133
+ activesupport (= 6.1.7.3)
130
134
  bundler (>= 1.15.0)
131
- railties (= 6.1.7)
135
+ railties (= 6.1.7.3)
132
136
  sprockets-rails (>= 2.0.0)
133
137
  rails-dom-testing (2.0.3)
134
138
  activesupport (>= 4.2.0)
135
139
  nokogiri (>= 1.6)
136
- rails-html-sanitizer (1.4.4)
140
+ rails-html-sanitizer (1.5.0)
137
141
  loofah (~> 2.19, >= 2.19.1)
138
- railties (6.1.7)
139
- actionpack (= 6.1.7)
140
- activesupport (= 6.1.7)
142
+ railties (6.1.7.3)
143
+ actionpack (= 6.1.7.3)
144
+ activesupport (= 6.1.7.3)
141
145
  method_source
142
146
  rake (>= 12.2)
143
147
  thor (~> 1.0)
144
148
  rainbow (3.1.1)
145
149
  rake (13.0.6)
146
- regexp_parser (2.6.1)
150
+ regexp_parser (2.7.0)
147
151
  rexml (3.2.5)
148
- rubocop (1.42.0)
152
+ rubocop (1.48.1)
149
153
  json (~> 2.3)
150
154
  parallel (~> 1.10)
151
- parser (>= 3.1.2.1)
155
+ parser (>= 3.2.0.0)
152
156
  rainbow (>= 2.2.2, < 4.0)
153
157
  regexp_parser (>= 1.8, < 3.0)
154
158
  rexml (>= 3.2.5, < 4.0)
155
- rubocop-ast (>= 1.24.1, < 2.0)
159
+ rubocop-ast (>= 1.26.0, < 2.0)
156
160
  ruby-progressbar (~> 1.7)
157
- unicode-display_width (>= 1.4.0, < 3.0)
158
- rubocop-ast (1.24.1)
159
- parser (>= 3.1.1.0)
160
- rubocop-minitest (0.25.1)
161
- rubocop (>= 0.90, < 2.0)
162
- rubocop-performance (1.15.2)
161
+ unicode-display_width (>= 2.4.0, < 3.0)
162
+ rubocop-ast (1.28.0)
163
+ parser (>= 3.2.1.0)
164
+ rubocop-minitest (0.29.0)
165
+ rubocop (>= 1.39, < 2.0)
166
+ rubocop-performance (1.16.0)
163
167
  rubocop (>= 1.7.0, < 2.0)
164
168
  rubocop-ast (>= 0.4.0)
165
- ruby-progressbar (1.11.0)
169
+ ruby-progressbar (1.13.0)
166
170
  sprockets (4.2.0)
167
171
  concurrent-ruby (~> 1.0)
168
172
  rack (>= 2.2.4, < 4)
@@ -170,19 +174,19 @@ GEM
170
174
  actionpack (>= 5.2)
171
175
  activesupport (>= 5.2)
172
176
  sprockets (>= 3.0.0)
173
- standard (1.21.1)
177
+ standard (1.26.0)
174
178
  language_server-protocol (~> 3.17.0.2)
175
- rubocop (= 1.42.0)
176
- rubocop-performance (= 1.15.2)
179
+ rubocop (~> 1.48.1)
180
+ rubocop-performance (~> 1.16.0)
177
181
  thor (1.2.1)
178
- timeout (0.3.1)
179
- tzinfo (2.0.5)
182
+ timeout (0.3.2)
183
+ tzinfo (2.0.6)
180
184
  concurrent-ruby (~> 1.0)
181
185
  unicode-display_width (2.4.2)
182
186
  websocket-driver (0.7.5)
183
187
  websocket-extensions (>= 0.1.0)
184
188
  websocket-extensions (0.1.5)
185
- zeitwerk (2.6.6)
189
+ zeitwerk (2.6.7)
186
190
 
187
191
  PLATFORMS
188
192
  ruby
@@ -192,11 +196,11 @@ PLATFORMS
192
196
  DEPENDENCIES
193
197
  appraisal
194
198
  html_safe_flash!
195
- minitest (~> 5.17)
199
+ minitest
196
200
  rails (~> 6.1)
197
- rake (~> 13.0)
198
- rubocop-minitest (~> 0.25)
199
- standard (~> 1.21)
201
+ rake
202
+ rubocop-minitest
203
+ standard
200
204
 
201
205
  BUNDLED WITH
202
- 2.4.2
206
+ 2.4.5
@@ -2,10 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "minitest", "~> 5.17"
6
- gem "rake", "~> 13.0"
7
- gem "rubocop-minitest", "~> 0.25"
8
- gem "standard", "~> 1.21"
9
5
  gem "rails", "~> 7.0"
10
6
 
11
7
  gemspec path: "../"
@@ -1,73 +1,73 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- html_safe_flash (0.1.0)
4
+ html_safe_flash (0.2.0)
5
5
  rails (>= 6)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- actioncable (7.0.4)
11
- actionpack (= 7.0.4)
12
- activesupport (= 7.0.4)
10
+ actioncable (7.0.4.3)
11
+ actionpack (= 7.0.4.3)
12
+ activesupport (= 7.0.4.3)
13
13
  nio4r (~> 2.0)
14
14
  websocket-driver (>= 0.6.1)
15
- actionmailbox (7.0.4)
16
- actionpack (= 7.0.4)
17
- activejob (= 7.0.4)
18
- activerecord (= 7.0.4)
19
- activestorage (= 7.0.4)
20
- activesupport (= 7.0.4)
15
+ actionmailbox (7.0.4.3)
16
+ actionpack (= 7.0.4.3)
17
+ activejob (= 7.0.4.3)
18
+ activerecord (= 7.0.4.3)
19
+ activestorage (= 7.0.4.3)
20
+ activesupport (= 7.0.4.3)
21
21
  mail (>= 2.7.1)
22
22
  net-imap
23
23
  net-pop
24
24
  net-smtp
25
- actionmailer (7.0.4)
26
- actionpack (= 7.0.4)
27
- actionview (= 7.0.4)
28
- activejob (= 7.0.4)
29
- activesupport (= 7.0.4)
25
+ actionmailer (7.0.4.3)
26
+ actionpack (= 7.0.4.3)
27
+ actionview (= 7.0.4.3)
28
+ activejob (= 7.0.4.3)
29
+ activesupport (= 7.0.4.3)
30
30
  mail (~> 2.5, >= 2.5.4)
31
31
  net-imap
32
32
  net-pop
33
33
  net-smtp
34
34
  rails-dom-testing (~> 2.0)
35
- actionpack (7.0.4)
36
- actionview (= 7.0.4)
37
- activesupport (= 7.0.4)
35
+ actionpack (7.0.4.3)
36
+ actionview (= 7.0.4.3)
37
+ activesupport (= 7.0.4.3)
38
38
  rack (~> 2.0, >= 2.2.0)
39
39
  rack-test (>= 0.6.3)
40
40
  rails-dom-testing (~> 2.0)
41
41
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
42
- actiontext (7.0.4)
43
- actionpack (= 7.0.4)
44
- activerecord (= 7.0.4)
45
- activestorage (= 7.0.4)
46
- activesupport (= 7.0.4)
42
+ actiontext (7.0.4.3)
43
+ actionpack (= 7.0.4.3)
44
+ activerecord (= 7.0.4.3)
45
+ activestorage (= 7.0.4.3)
46
+ activesupport (= 7.0.4.3)
47
47
  globalid (>= 0.6.0)
48
48
  nokogiri (>= 1.8.5)
49
- actionview (7.0.4)
50
- activesupport (= 7.0.4)
49
+ actionview (7.0.4.3)
50
+ activesupport (= 7.0.4.3)
51
51
  builder (~> 3.1)
52
52
  erubi (~> 1.4)
53
53
  rails-dom-testing (~> 2.0)
54
54
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
55
- activejob (7.0.4)
56
- activesupport (= 7.0.4)
55
+ activejob (7.0.4.3)
56
+ activesupport (= 7.0.4.3)
57
57
  globalid (>= 0.3.6)
58
- activemodel (7.0.4)
59
- activesupport (= 7.0.4)
60
- activerecord (7.0.4)
61
- activemodel (= 7.0.4)
62
- activesupport (= 7.0.4)
63
- activestorage (7.0.4)
64
- actionpack (= 7.0.4)
65
- activejob (= 7.0.4)
66
- activerecord (= 7.0.4)
67
- activesupport (= 7.0.4)
58
+ activemodel (7.0.4.3)
59
+ activesupport (= 7.0.4.3)
60
+ activerecord (7.0.4.3)
61
+ activemodel (= 7.0.4.3)
62
+ activesupport (= 7.0.4.3)
63
+ activestorage (7.0.4.3)
64
+ actionpack (= 7.0.4.3)
65
+ activejob (= 7.0.4.3)
66
+ activerecord (= 7.0.4.3)
67
+ activesupport (= 7.0.4.3)
68
68
  marcel (~> 1.0)
69
69
  mini_mime (>= 1.1.0)
70
- activesupport (7.0.4)
70
+ activesupport (7.0.4.3)
71
71
  concurrent-ruby (~> 1.0, >= 1.0.2)
72
72
  i18n (>= 1.6, < 2)
73
73
  minitest (>= 5.1)
@@ -78,20 +78,20 @@ GEM
78
78
  thor (>= 0.14.0)
79
79
  ast (2.4.2)
80
80
  builder (3.2.4)
81
- concurrent-ruby (1.1.10)
81
+ concurrent-ruby (1.2.2)
82
82
  crass (1.0.6)
83
83
  date (3.3.3)
84
84
  erubi (1.12.0)
85
- globalid (1.0.0)
85
+ globalid (1.1.0)
86
86
  activesupport (>= 5.0)
87
87
  i18n (1.12.0)
88
88
  concurrent-ruby (~> 1.0)
89
89
  json (2.6.3)
90
- language_server-protocol (3.17.0.2)
91
- loofah (2.19.1)
90
+ language_server-protocol (3.17.0.3)
91
+ loofah (2.20.0)
92
92
  crass (~> 1.0.2)
93
93
  nokogiri (>= 1.5.9)
94
- mail (2.8.0)
94
+ mail (2.8.1)
95
95
  mini_mime (>= 0.1.1)
96
96
  net-imap
97
97
  net-pop
@@ -100,7 +100,7 @@ GEM
100
100
  method_source (1.0.0)
101
101
  mini_mime (1.1.2)
102
102
  mini_portile2 (2.8.1)
103
- minitest (5.17.0)
103
+ minitest (5.18.0)
104
104
  net-imap (0.3.4)
105
105
  date
106
106
  net-protocol
@@ -110,78 +110,82 @@ GEM
110
110
  timeout
111
111
  net-smtp (0.3.3)
112
112
  net-protocol
113
- nio4r (2.5.8)
114
- nokogiri (1.13.10)
113
+ nio4r (2.5.9)
114
+ nokogiri (1.14.2)
115
115
  mini_portile2 (~> 2.8.0)
116
116
  racc (~> 1.4)
117
+ nokogiri (1.14.2-x86_64-darwin)
118
+ racc (~> 1.4)
119
+ nokogiri (1.14.2-x86_64-linux)
120
+ racc (~> 1.4)
117
121
  parallel (1.22.1)
118
- parser (3.2.0.0)
122
+ parser (3.2.2.0)
119
123
  ast (~> 2.4.1)
120
124
  racc (1.6.2)
121
- rack (2.2.5)
122
- rack-test (2.0.2)
125
+ rack (2.2.6.4)
126
+ rack-test (2.1.0)
123
127
  rack (>= 1.3)
124
- rails (7.0.4)
125
- actioncable (= 7.0.4)
126
- actionmailbox (= 7.0.4)
127
- actionmailer (= 7.0.4)
128
- actionpack (= 7.0.4)
129
- actiontext (= 7.0.4)
130
- actionview (= 7.0.4)
131
- activejob (= 7.0.4)
132
- activemodel (= 7.0.4)
133
- activerecord (= 7.0.4)
134
- activestorage (= 7.0.4)
135
- activesupport (= 7.0.4)
128
+ rails (7.0.4.3)
129
+ actioncable (= 7.0.4.3)
130
+ actionmailbox (= 7.0.4.3)
131
+ actionmailer (= 7.0.4.3)
132
+ actionpack (= 7.0.4.3)
133
+ actiontext (= 7.0.4.3)
134
+ actionview (= 7.0.4.3)
135
+ activejob (= 7.0.4.3)
136
+ activemodel (= 7.0.4.3)
137
+ activerecord (= 7.0.4.3)
138
+ activestorage (= 7.0.4.3)
139
+ activesupport (= 7.0.4.3)
136
140
  bundler (>= 1.15.0)
137
- railties (= 7.0.4)
141
+ railties (= 7.0.4.3)
138
142
  rails-dom-testing (2.0.3)
139
143
  activesupport (>= 4.2.0)
140
144
  nokogiri (>= 1.6)
141
- rails-html-sanitizer (1.4.4)
145
+ rails-html-sanitizer (1.5.0)
142
146
  loofah (~> 2.19, >= 2.19.1)
143
- railties (7.0.4)
144
- actionpack (= 7.0.4)
145
- activesupport (= 7.0.4)
147
+ railties (7.0.4.3)
148
+ actionpack (= 7.0.4.3)
149
+ activesupport (= 7.0.4.3)
146
150
  method_source
147
151
  rake (>= 12.2)
148
152
  thor (~> 1.0)
149
153
  zeitwerk (~> 2.5)
150
154
  rainbow (3.1.1)
151
155
  rake (13.0.6)
152
- regexp_parser (2.6.1)
156
+ regexp_parser (2.7.0)
153
157
  rexml (3.2.5)
154
- rubocop (1.42.0)
158
+ rubocop (1.48.1)
155
159
  json (~> 2.3)
156
160
  parallel (~> 1.10)
157
- parser (>= 3.1.2.1)
161
+ parser (>= 3.2.0.0)
158
162
  rainbow (>= 2.2.2, < 4.0)
159
163
  regexp_parser (>= 1.8, < 3.0)
160
164
  rexml (>= 3.2.5, < 4.0)
161
- rubocop-ast (>= 1.24.1, < 2.0)
165
+ rubocop-ast (>= 1.26.0, < 2.0)
162
166
  ruby-progressbar (~> 1.7)
163
- unicode-display_width (>= 1.4.0, < 3.0)
164
- rubocop-ast (1.24.1)
165
- parser (>= 3.1.1.0)
166
- rubocop-minitest (0.25.1)
167
- rubocop (>= 0.90, < 2.0)
168
- rubocop-performance (1.15.2)
167
+ unicode-display_width (>= 2.4.0, < 3.0)
168
+ rubocop-ast (1.28.0)
169
+ parser (>= 3.2.1.0)
170
+ rubocop-minitest (0.29.0)
171
+ rubocop (>= 1.39, < 2.0)
172
+ rubocop-performance (1.16.0)
169
173
  rubocop (>= 1.7.0, < 2.0)
170
174
  rubocop-ast (>= 0.4.0)
171
- ruby-progressbar (1.11.0)
172
- standard (1.21.1)
175
+ ruby-progressbar (1.13.0)
176
+ standard (1.26.0)
173
177
  language_server-protocol (~> 3.17.0.2)
174
- rubocop (= 1.42.0)
175
- rubocop-performance (= 1.15.2)
178
+ rubocop (~> 1.48.1)
179
+ rubocop-performance (~> 1.16.0)
176
180
  thor (1.2.1)
177
- timeout (0.3.1)
178
- tzinfo (2.0.5)
181
+ timeout (0.3.2)
182
+ tzinfo (2.0.6)
179
183
  concurrent-ruby (~> 1.0)
180
184
  unicode-display_width (2.4.2)
181
185
  websocket-driver (0.7.5)
182
186
  websocket-extensions (>= 0.1.0)
183
187
  websocket-extensions (0.1.5)
184
- zeitwerk (2.6.6)
188
+ zeitwerk (2.6.7)
185
189
 
186
190
  PLATFORMS
187
191
  ruby
@@ -191,11 +195,11 @@ PLATFORMS
191
195
  DEPENDENCIES
192
196
  appraisal
193
197
  html_safe_flash!
194
- minitest (~> 5.17)
198
+ minitest
195
199
  rails (~> 7.0)
196
- rake (~> 13.0)
197
- rubocop-minitest (~> 0.25)
198
- standard (~> 1.21)
200
+ rake
201
+ rubocop-minitest
202
+ standard
199
203
 
200
204
  BUNDLED WITH
201
- 2.4.2
205
+ 2.4.5
@@ -2,10 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "minitest", "~> 5.17"
6
- gem "rake", "~> 13.0"
7
- gem "rubocop-minitest", "~> 0.25"
8
- gem "standard", "~> 1.21"
9
5
  gem "rails", github: "rails/rails"
10
6
 
11
7
  gemspec path: "../"
@@ -1,6 +1,6 @@
1
1
  GIT
2
2
  remote: https://github.com/rails/rails.git
3
- revision: ed65dfffc109034364ea5f504bc2f74b30f91b7d
3
+ revision: a1a026fb08065c59438545015997bb084987a5a5
4
4
  specs:
5
5
  actioncable (7.1.0.alpha)
6
6
  actionpack (= 7.1.0.alpha)
@@ -93,7 +93,7 @@ GIT
93
93
  PATH
94
94
  remote: ..
95
95
  specs:
96
- html_safe_flash (0.1.0)
96
+ html_safe_flash (0.2.0)
97
97
  rails (>= 6)
98
98
 
99
99
  GEM
@@ -105,21 +105,21 @@ GEM
105
105
  thor (>= 0.14.0)
106
106
  ast (2.4.2)
107
107
  builder (3.2.4)
108
- concurrent-ruby (1.1.10)
109
- connection_pool (2.3.0)
108
+ concurrent-ruby (1.2.2)
109
+ connection_pool (2.4.0)
110
110
  crass (1.0.6)
111
111
  date (3.3.3)
112
112
  erubi (1.12.0)
113
- globalid (1.0.0)
113
+ globalid (1.1.0)
114
114
  activesupport (>= 5.0)
115
115
  i18n (1.12.0)
116
116
  concurrent-ruby (~> 1.0)
117
117
  json (2.6.3)
118
- language_server-protocol (3.17.0.2)
119
- loofah (2.19.1)
118
+ language_server-protocol (3.17.0.3)
119
+ loofah (2.20.0)
120
120
  crass (~> 1.0.2)
121
121
  nokogiri (>= 1.5.9)
122
- mail (2.8.0)
122
+ mail (2.8.1)
123
123
  mini_mime (>= 0.1.1)
124
124
  net-imap
125
125
  net-pop
@@ -127,7 +127,7 @@ GEM
127
127
  marcel (1.0.2)
128
128
  mini_mime (1.1.2)
129
129
  mini_portile2 (2.8.1)
130
- minitest (5.17.0)
130
+ minitest (5.18.0)
131
131
  net-imap (0.3.4)
132
132
  date
133
133
  net-protocol
@@ -137,57 +137,61 @@ GEM
137
137
  timeout
138
138
  net-smtp (0.3.3)
139
139
  net-protocol
140
- nio4r (2.5.8)
141
- nokogiri (1.13.10)
140
+ nio4r (2.5.9)
141
+ nokogiri (1.14.2)
142
142
  mini_portile2 (~> 2.8.0)
143
143
  racc (~> 1.4)
144
+ nokogiri (1.14.2-x86_64-darwin)
145
+ racc (~> 1.4)
146
+ nokogiri (1.14.2-x86_64-linux)
147
+ racc (~> 1.4)
144
148
  parallel (1.22.1)
145
- parser (3.2.0.0)
149
+ parser (3.2.2.0)
146
150
  ast (~> 2.4.1)
147
151
  racc (1.6.2)
148
- rack (2.2.5)
149
- rack-test (2.0.2)
152
+ rack (2.2.6.4)
153
+ rack-test (2.1.0)
150
154
  rack (>= 1.3)
151
155
  rails-dom-testing (2.0.3)
152
156
  activesupport (>= 4.2.0)
153
157
  nokogiri (>= 1.6)
154
- rails-html-sanitizer (1.4.4)
158
+ rails-html-sanitizer (1.5.0)
155
159
  loofah (~> 2.19, >= 2.19.1)
156
160
  rainbow (3.1.1)
157
161
  rake (13.0.6)
158
- regexp_parser (2.6.1)
162
+ regexp_parser (2.7.0)
159
163
  rexml (3.2.5)
160
- rubocop (1.42.0)
164
+ rubocop (1.48.1)
161
165
  json (~> 2.3)
162
166
  parallel (~> 1.10)
163
- parser (>= 3.1.2.1)
167
+ parser (>= 3.2.0.0)
164
168
  rainbow (>= 2.2.2, < 4.0)
165
169
  regexp_parser (>= 1.8, < 3.0)
166
170
  rexml (>= 3.2.5, < 4.0)
167
- rubocop-ast (>= 1.24.1, < 2.0)
171
+ rubocop-ast (>= 1.26.0, < 2.0)
168
172
  ruby-progressbar (~> 1.7)
169
- unicode-display_width (>= 1.4.0, < 3.0)
170
- rubocop-ast (1.24.1)
171
- parser (>= 3.1.1.0)
172
- rubocop-minitest (0.25.1)
173
- rubocop (>= 0.90, < 2.0)
174
- rubocop-performance (1.15.2)
173
+ unicode-display_width (>= 2.4.0, < 3.0)
174
+ rubocop-ast (1.28.0)
175
+ parser (>= 3.2.1.0)
176
+ rubocop-minitest (0.29.0)
177
+ rubocop (>= 1.39, < 2.0)
178
+ rubocop-performance (1.16.0)
175
179
  rubocop (>= 1.7.0, < 2.0)
176
180
  rubocop-ast (>= 0.4.0)
177
- ruby-progressbar (1.11.0)
178
- standard (1.21.1)
181
+ ruby-progressbar (1.13.0)
182
+ standard (1.26.0)
179
183
  language_server-protocol (~> 3.17.0.2)
180
- rubocop (= 1.42.0)
181
- rubocop-performance (= 1.15.2)
184
+ rubocop (~> 1.48.1)
185
+ rubocop-performance (~> 1.16.0)
182
186
  thor (1.2.1)
183
- timeout (0.3.1)
184
- tzinfo (2.0.5)
187
+ timeout (0.3.2)
188
+ tzinfo (2.0.6)
185
189
  concurrent-ruby (~> 1.0)
186
190
  unicode-display_width (2.4.2)
187
191
  websocket-driver (0.7.5)
188
192
  websocket-extensions (>= 0.1.0)
189
193
  websocket-extensions (0.1.5)
190
- zeitwerk (2.6.6)
194
+ zeitwerk (2.6.7)
191
195
 
192
196
  PLATFORMS
193
197
  ruby
@@ -197,11 +201,11 @@ PLATFORMS
197
201
  DEPENDENCIES
198
202
  appraisal
199
203
  html_safe_flash!
200
- minitest (~> 5.17)
204
+ minitest
201
205
  rails!
202
- rake (~> 13.0)
203
- rubocop-minitest (~> 0.25)
204
- standard (~> 1.21)
206
+ rake
207
+ rubocop-minitest
208
+ standard
205
209
 
206
210
  BUNDLED WITH
207
- 2.4.2
211
+ 2.4.5
@@ -7,7 +7,7 @@ Gem::Specification.new do |spec|
7
7
  spec.version = HtmlSafeFlash::VERSION
8
8
  spec.authors = ["Milo Winningham"]
9
9
  spec.email = ["milo@winningham.net"]
10
- spec.summary = "Allows normal usage of html_safe strings in Rails flash messages"
10
+ spec.summary = "Use html_safe strings naturally in Rails flash messages"
11
11
  spec.homepage = "https://github.com/quadule/html_safe_flash"
12
12
  spec.license = "MIT"
13
13
 
@@ -29,4 +29,8 @@ Gem::Specification.new do |spec|
29
29
  spec.add_dependency "rails", ">= 6"
30
30
 
31
31
  spec.add_development_dependency "appraisal"
32
+ spec.add_development_dependency "minitest"
33
+ spec.add_development_dependency "rake"
34
+ spec.add_development_dependency "rubocop-minitest"
35
+ spec.add_development_dependency "standard"
32
36
  end
@@ -1,28 +1,21 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "active_support/concern"
4
- require "active_support/core_ext/array/wrap"
5
- require "active_support/core_ext/module/attribute_accessors_per_thread"
6
- require "active_support/core_ext/object/try"
7
4
 
8
5
  module HtmlSafeFlash
9
6
  module FlashHashExtension
10
7
  extend ActiveSupport::Concern
11
8
 
12
- prepended do
13
- thread_mattr_accessor :handle_html_safe_flash, instance_writer: false, default: true
14
- end
15
-
16
9
  class_methods do
17
10
  def from_session_value(*)
18
11
  super.tap do |flash|
19
- flash.send(:deserialize_html_safe_values) if handle_html_safe_flash
12
+ flash.send(:deserialize_html_safe_values)
20
13
  end
21
14
  end
22
15
  end
23
16
 
24
17
  def to_session_value
25
- serialize_html_safe_values if handle_html_safe_flash
18
+ serialize_html_safe_values
26
19
  super
27
20
  end
28
21
 
@@ -31,17 +24,16 @@ module HtmlSafeFlash
31
24
  HTML_SAFE_KEYS = "_html_safe_keys"
32
25
 
33
26
  def deserialize_html_safe_values
34
- Array.wrap(@flashes.delete(HTML_SAFE_KEYS)).each do |key|
35
- value = @flashes[key]
36
- if value.respond_to?(:html_safe)
37
- @flashes[key] = value.html_safe
38
- end
27
+ safe_keys = @flashes.delete(HTML_SAFE_KEYS)
28
+ safe_values = @flashes.slice(*safe_keys)
29
+ safe_values.each do |key, value|
30
+ @flashes[key] = html_safe_value_or_array(value)
39
31
  end
40
32
  end
41
33
 
42
34
  def serialize_html_safe_values
43
35
  safe_keys = @flashes.except(*@discard).filter_map do |key, value|
44
- key if value.is_a?(ActiveSupport::SafeBuffer) && value.html_safe?
36
+ key if html_safe_string?(value) || html_safe_array?(value)
45
37
  end
46
38
 
47
39
  if safe_keys.empty?
@@ -50,5 +42,25 @@ module HtmlSafeFlash
50
42
  @flashes[HTML_SAFE_KEYS] = safe_keys
51
43
  end
52
44
  end
45
+
46
+ def html_safe_value_or_array(value)
47
+ if value.respond_to?(:html_safe)
48
+ value.html_safe
49
+ elsif value.is_a?(Array)
50
+ value.map do |item|
51
+ item.respond_to?(:html_safe) ? item.html_safe : item
52
+ end
53
+ else
54
+ value
55
+ end
56
+ end
57
+
58
+ def html_safe_array?(value)
59
+ value.is_a?(Array) && value.any? && value.all?(&method(:html_safe_string?))
60
+ end
61
+
62
+ def html_safe_string?(value)
63
+ value.is_a?(ActiveSupport::SafeBuffer) && value.html_safe?
64
+ end
53
65
  end
54
66
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module HtmlSafeFlash
4
- VERSION = "0.1.0"
4
+ VERSION = "0.2.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: html_safe_flash
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Milo Winningham
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-09 00:00:00.000000000 Z
11
+ date: 2023-04-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -38,6 +38,62 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop-minitest
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: standard
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
41
97
  description:
42
98
  email:
43
99
  - milo@winningham.net
@@ -89,8 +145,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
89
145
  - !ruby/object:Gem::Version
90
146
  version: '0'
91
147
  requirements: []
92
- rubygems_version: 3.3.7
148
+ rubygems_version: 3.4.10
93
149
  signing_key:
94
150
  specification_version: 4
95
- summary: Allows normal usage of html_safe strings in Rails flash messages
151
+ summary: Use html_safe strings naturally in Rails flash messages
96
152
  test_files: []