html_safe_flash 0.1.0 → 0.2.0

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: 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: []