preserve 1.0.0 → 2.0.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.
Files changed (203) hide show
  1. checksums.yaml +4 -4
  2. data/{MIT-LICENSE → LICENSE} +0 -0
  3. data/README.md +50 -32
  4. data/Rakefile +1 -1
  5. data/lib/preserve.rb +6 -29
  6. data/lib/preserve/callback.rb +72 -0
  7. data/lib/preserve/compatibility.rb +18 -0
  8. data/lib/preserve/extension.rb +16 -0
  9. data/lib/preserve/session_key.rb +27 -0
  10. data/lib/preserve/version.rb +1 -1
  11. data/spec/dummy/common/app/controllers/admin/parameters_controller.rb +7 -0
  12. data/spec/dummy/common/app/controllers/application_controller.rb +7 -0
  13. data/spec/dummy/common/app/controllers/parameters_controller.rb +9 -0
  14. data/spec/dummy/common/config/routes.rb +7 -0
  15. data/spec/dummy/rails-3/README.rdoc +261 -0
  16. data/spec/dummy/rails-3/Rakefile +7 -0
  17. data/spec/dummy/rails-3/app/assets/javascripts/application.js +15 -0
  18. data/spec/dummy/rails-3/app/assets/stylesheets/application.css +13 -0
  19. data/spec/dummy/rails-3/app/controllers/admin/parameters_controller.rb +1 -0
  20. data/spec/dummy/rails-3/app/controllers/application_controller.rb +1 -0
  21. data/spec/dummy/rails-3/app/controllers/parameters_controller.rb +1 -0
  22. data/spec/dummy/{app → rails-3/app}/helpers/application_helper.rb +0 -0
  23. data/spec/dummy/rails-3/app/views/layouts/application.html.erb +14 -0
  24. data/spec/dummy/rails-3/config.ru +4 -0
  25. data/spec/dummy/rails-3/config/application.rb +65 -0
  26. data/spec/dummy/rails-3/config/boot.rb +10 -0
  27. data/spec/dummy/rails-3/config/database.yml +25 -0
  28. data/spec/dummy/rails-3/config/environment.rb +5 -0
  29. data/spec/dummy/rails-3/config/environments/development.rb +37 -0
  30. data/spec/dummy/rails-3/config/environments/production.rb +67 -0
  31. data/spec/dummy/rails-3/config/environments/test.rb +37 -0
  32. data/spec/dummy/{config → rails-3/config}/initializers/backtrace_silencers.rb +0 -0
  33. data/spec/dummy/rails-3/config/initializers/inflections.rb +15 -0
  34. data/spec/dummy/rails-3/config/initializers/mime_types.rb +5 -0
  35. data/spec/dummy/rails-3/config/initializers/secret_token.rb +7 -0
  36. data/spec/dummy/rails-3/config/initializers/session_store.rb +8 -0
  37. data/spec/dummy/rails-3/config/initializers/wrap_parameters.rb +14 -0
  38. data/spec/dummy/rails-3/config/locales/en.yml +5 -0
  39. data/spec/dummy/rails-3/config/routes.rb +1 -0
  40. data/spec/dummy/{db → rails-3/db}/test.sqlite3 +0 -0
  41. data/spec/dummy/rails-3/log/development.log +5 -0
  42. data/spec/dummy/rails-3/log/test.log +7777 -0
  43. data/spec/dummy/rails-3/public/404.html +26 -0
  44. data/spec/dummy/rails-3/public/422.html +26 -0
  45. data/spec/dummy/rails-3/public/500.html +25 -0
  46. data/spec/dummy/{public → rails-3/public}/favicon.ico +0 -0
  47. data/spec/dummy/rails-3/script/rails +6 -0
  48. data/spec/dummy/{README.rdoc → rails-4/README.rdoc} +0 -0
  49. data/spec/dummy/{Rakefile → rails-4/Rakefile} +0 -0
  50. data/spec/dummy/{app → rails-4/app}/assets/javascripts/application.js +0 -0
  51. data/spec/dummy/{app → rails-4/app}/assets/stylesheets/application.css +0 -0
  52. data/spec/dummy/rails-4/app/controllers/admin/parameters_controller.rb +1 -0
  53. data/spec/dummy/rails-4/app/controllers/application_controller.rb +1 -0
  54. data/spec/dummy/rails-4/app/controllers/parameters_controller.rb +1 -0
  55. data/spec/dummy/rails-4/app/helpers/application_helper.rb +2 -0
  56. data/spec/dummy/{app → rails-4/app}/views/layouts/application.html.erb +0 -0
  57. data/spec/dummy/{bin → rails-4/bin}/bundle +0 -0
  58. data/spec/dummy/{bin → rails-4/bin}/rails +0 -0
  59. data/spec/dummy/{bin → rails-4/bin}/rake +0 -0
  60. data/spec/dummy/{bin → rails-4/bin}/setup +0 -0
  61. data/spec/dummy/{config.ru → rails-4/config.ru} +0 -0
  62. data/spec/dummy/{config → rails-4/config}/application.rb +1 -0
  63. data/spec/dummy/{config → rails-4/config}/boot.rb +0 -0
  64. data/spec/dummy/{config → rails-4/config}/database.yml +0 -0
  65. data/spec/dummy/{config → rails-4/config}/environment.rb +0 -0
  66. data/spec/dummy/{config → rails-4/config}/environments/development.rb +0 -0
  67. data/spec/dummy/{config → rails-4/config}/environments/production.rb +0 -0
  68. data/spec/dummy/{config → rails-4/config}/environments/test.rb +0 -0
  69. data/spec/dummy/{config → rails-4/config}/initializers/assets.rb +0 -0
  70. data/spec/dummy/rails-4/config/initializers/backtrace_silencers.rb +7 -0
  71. data/spec/dummy/{config → rails-4/config}/initializers/cookies_serializer.rb +0 -0
  72. data/spec/dummy/{config → rails-4/config}/initializers/filter_parameter_logging.rb +0 -0
  73. data/spec/dummy/{config → rails-4/config}/initializers/inflections.rb +0 -0
  74. data/spec/dummy/{config → rails-4/config}/initializers/mime_types.rb +0 -0
  75. data/spec/dummy/{config → rails-4/config}/initializers/session_store.rb +0 -0
  76. data/spec/dummy/rails-4/config/initializers/to_time_preserves_timezone.rb +10 -0
  77. data/spec/dummy/{config → rails-4/config}/initializers/wrap_parameters.rb +0 -0
  78. data/spec/dummy/{config → rails-4/config}/locales/en.yml +0 -0
  79. data/spec/dummy/rails-4/config/routes.rb +1 -0
  80. data/spec/dummy/{config → rails-4/config}/secrets.yml +2 -2
  81. data/spec/dummy/{public → rails-4/public}/404.html +0 -0
  82. data/spec/dummy/{public → rails-4/public}/422.html +0 -0
  83. data/spec/dummy/{public → rails-4/public}/500.html +0 -0
  84. data/spec/dummy/rails-4/public/favicon.ico +0 -0
  85. data/spec/dummy/rails-5/Rakefile +6 -0
  86. data/spec/dummy/rails-5/app/assets/config/manifest.js +3 -0
  87. data/spec/dummy/rails-5/app/assets/javascripts/application.js +15 -0
  88. data/spec/dummy/rails-5/app/assets/javascripts/cable.js +13 -0
  89. data/spec/dummy/rails-5/app/assets/stylesheets/application.css +15 -0
  90. data/spec/dummy/rails-5/app/channels/application_cable/channel.rb +4 -0
  91. data/spec/dummy/rails-5/app/channels/application_cable/connection.rb +4 -0
  92. data/spec/dummy/rails-5/app/controllers/admin/parameters_controller.rb +1 -0
  93. data/spec/dummy/rails-5/app/controllers/application_controller.rb +1 -0
  94. data/spec/dummy/rails-5/app/controllers/parameters_controller.rb +1 -0
  95. data/spec/dummy/rails-5/app/helpers/application_helper.rb +2 -0
  96. data/spec/dummy/rails-5/app/jobs/application_job.rb +2 -0
  97. data/spec/dummy/rails-5/app/mailers/application_mailer.rb +4 -0
  98. data/spec/dummy/rails-5/app/models/application_record.rb +3 -0
  99. data/spec/dummy/rails-5/app/views/layouts/application.html.erb +15 -0
  100. data/spec/dummy/rails-5/app/views/layouts/mailer.html.erb +13 -0
  101. data/spec/dummy/rails-5/app/views/layouts/mailer.text.erb +1 -0
  102. data/spec/dummy/rails-5/bin/bundle +3 -0
  103. data/spec/dummy/rails-5/bin/rails +4 -0
  104. data/spec/dummy/rails-5/bin/rake +4 -0
  105. data/spec/dummy/rails-5/bin/setup +36 -0
  106. data/spec/dummy/rails-5/bin/update +31 -0
  107. data/spec/dummy/rails-5/bin/yarn +11 -0
  108. data/spec/dummy/rails-5/config.ru +5 -0
  109. data/spec/dummy/rails-5/config/application.rb +19 -0
  110. data/spec/dummy/rails-5/config/boot.rb +5 -0
  111. data/spec/dummy/rails-5/config/cable.yml +10 -0
  112. data/spec/dummy/rails-5/config/database.yml +25 -0
  113. data/spec/dummy/rails-5/config/environment.rb +5 -0
  114. data/spec/dummy/rails-5/config/environments/development.rb +61 -0
  115. data/spec/dummy/rails-5/config/environments/production.rb +94 -0
  116. data/spec/dummy/rails-5/config/environments/test.rb +46 -0
  117. data/spec/dummy/rails-5/config/initializers/application_controller_renderer.rb +8 -0
  118. data/spec/dummy/rails-5/config/initializers/assets.rb +14 -0
  119. data/spec/dummy/rails-5/config/initializers/backtrace_silencers.rb +7 -0
  120. data/spec/dummy/rails-5/config/initializers/content_security_policy.rb +25 -0
  121. data/spec/dummy/rails-5/config/initializers/cookies_serializer.rb +5 -0
  122. data/spec/dummy/rails-5/config/initializers/filter_parameter_logging.rb +4 -0
  123. data/spec/dummy/rails-5/config/initializers/inflections.rb +16 -0
  124. data/spec/dummy/rails-5/config/initializers/mime_types.rb +4 -0
  125. data/spec/dummy/rails-5/config/initializers/wrap_parameters.rb +14 -0
  126. data/spec/dummy/rails-5/config/locales/en.yml +33 -0
  127. data/spec/dummy/rails-5/config/puma.rb +37 -0
  128. data/spec/dummy/rails-5/config/routes.rb +1 -0
  129. data/spec/dummy/rails-5/config/spring.rb +6 -0
  130. data/spec/dummy/rails-5/config/storage.yml +34 -0
  131. data/spec/dummy/rails-5/db/test.sqlite3 +0 -0
  132. data/spec/dummy/rails-5/log/test.log +119 -0
  133. data/spec/dummy/rails-5/package.json +5 -0
  134. data/spec/dummy/rails-5/public/404.html +67 -0
  135. data/spec/dummy/rails-5/public/422.html +67 -0
  136. data/spec/dummy/rails-5/public/500.html +66 -0
  137. data/spec/dummy/rails-5/public/apple-touch-icon-precomposed.png +0 -0
  138. data/spec/dummy/rails-5/public/apple-touch-icon.png +0 -0
  139. data/spec/dummy/rails-5/public/favicon.ico +0 -0
  140. data/spec/dummy/rails-5/tmp/development_secret.txt +1 -0
  141. data/spec/dummy/rails-6/Rakefile +6 -0
  142. data/spec/dummy/rails-6/app/assets/config/manifest.js +2 -0
  143. data/spec/dummy/rails-6/app/assets/stylesheets/application.css +15 -0
  144. data/spec/dummy/rails-6/app/channels/application_cable/channel.rb +4 -0
  145. data/spec/dummy/rails-6/app/channels/application_cable/connection.rb +4 -0
  146. data/spec/dummy/rails-6/app/controllers/admin/parameters_controller.rb +1 -0
  147. data/spec/dummy/rails-6/app/controllers/application_controller.rb +1 -0
  148. data/spec/dummy/rails-6/app/controllers/parameters_controller.rb +1 -0
  149. data/spec/dummy/rails-6/app/helpers/application_helper.rb +2 -0
  150. data/spec/dummy/rails-6/app/javascript/packs/application.js +15 -0
  151. data/spec/dummy/rails-6/app/jobs/application_job.rb +7 -0
  152. data/spec/dummy/rails-6/app/mailers/application_mailer.rb +4 -0
  153. data/spec/dummy/rails-6/app/models/application_record.rb +3 -0
  154. data/spec/dummy/rails-6/app/views/layouts/application.html.erb +14 -0
  155. data/spec/dummy/rails-6/app/views/layouts/mailer.html.erb +13 -0
  156. data/spec/dummy/rails-6/app/views/layouts/mailer.text.erb +1 -0
  157. data/spec/dummy/rails-6/bin/rails +4 -0
  158. data/spec/dummy/rails-6/bin/rake +4 -0
  159. data/spec/dummy/rails-6/bin/setup +33 -0
  160. data/spec/dummy/rails-6/config.ru +5 -0
  161. data/spec/dummy/rails-6/config/application.rb +19 -0
  162. data/spec/dummy/rails-6/config/boot.rb +5 -0
  163. data/spec/dummy/rails-6/config/cable.yml +10 -0
  164. data/spec/dummy/rails-6/config/database.yml +25 -0
  165. data/spec/dummy/rails-6/config/environment.rb +5 -0
  166. data/spec/dummy/rails-6/config/environments/development.rb +62 -0
  167. data/spec/dummy/rails-6/config/environments/production.rb +112 -0
  168. data/spec/dummy/rails-6/config/environments/test.rb +49 -0
  169. data/spec/dummy/rails-6/config/initializers/application_controller_renderer.rb +8 -0
  170. data/spec/dummy/rails-6/config/initializers/assets.rb +12 -0
  171. data/spec/dummy/rails-6/config/initializers/backtrace_silencers.rb +7 -0
  172. data/spec/dummy/rails-6/config/initializers/content_security_policy.rb +28 -0
  173. data/spec/dummy/rails-6/config/initializers/cookies_serializer.rb +5 -0
  174. data/spec/dummy/rails-6/config/initializers/filter_parameter_logging.rb +4 -0
  175. data/spec/dummy/rails-6/config/initializers/inflections.rb +16 -0
  176. data/spec/dummy/rails-6/config/initializers/mime_types.rb +4 -0
  177. data/spec/dummy/rails-6/config/initializers/wrap_parameters.rb +14 -0
  178. data/spec/dummy/rails-6/config/locales/en.yml +33 -0
  179. data/spec/dummy/rails-6/config/puma.rb +38 -0
  180. data/spec/dummy/rails-6/config/routes.rb +1 -0
  181. data/spec/dummy/rails-6/config/spring.rb +6 -0
  182. data/spec/dummy/rails-6/config/storage.yml +34 -0
  183. data/spec/dummy/rails-6/db/development.sqlite3 +0 -0
  184. data/spec/dummy/rails-6/db/test.sqlite3 +0 -0
  185. data/spec/dummy/rails-6/log/development.log +2332 -0
  186. data/spec/dummy/rails-6/log/test.log +16735 -0
  187. data/spec/dummy/rails-6/public/404.html +67 -0
  188. data/spec/dummy/rails-6/public/422.html +67 -0
  189. data/spec/dummy/rails-6/public/500.html +66 -0
  190. data/spec/dummy/rails-6/public/apple-touch-icon-precomposed.png +0 -0
  191. data/spec/dummy/rails-6/public/apple-touch-icon.png +0 -0
  192. data/spec/dummy/rails-6/public/favicon.ico +0 -0
  193. data/spec/dummy/rails-6/tmp/development_secret.txt +1 -0
  194. data/spec/preserve/session_key_spec.rb +31 -0
  195. data/spec/preserve_spec.rb +78 -20
  196. data/spec/spec_helper.rb +11 -5
  197. data/spec/support/legacy_helpers.rb +7 -0
  198. data/spec/support/request_helpers.rb +14 -2
  199. metadata +425 -83
  200. data/spec/dummy/app/controllers/application_controller.rb +0 -5
  201. data/spec/dummy/app/controllers/parameters_controller.rb +0 -19
  202. data/spec/dummy/config/routes.rb +0 -3
  203. data/spec/dummy/log/test.log +0 -6954
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ .rails-default-error-page {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ .rails-default-error-page div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ .rails-default-error-page div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ .rails-default-error-page h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ .rails-default-error-page div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body class="rails-default-error-page">
58
+ <!-- This file lives in public/404.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The page you were looking for doesn't exist.</h1>
62
+ <p>You may have mistyped the address or the page may have moved.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ .rails-default-error-page {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ .rails-default-error-page div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ .rails-default-error-page div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ .rails-default-error-page h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ .rails-default-error-page div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body class="rails-default-error-page">
58
+ <!-- This file lives in public/422.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The change you wanted was rejected.</h1>
62
+ <p>Maybe you tried to change something you didn't have access to.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,66 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ .rails-default-error-page {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ .rails-default-error-page div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ .rails-default-error-page div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ .rails-default-error-page h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ .rails-default-error-page div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body class="rails-default-error-page">
58
+ <!-- This file lives in public/500.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>We're sorry, but something went wrong.</h1>
62
+ </div>
63
+ <p>If you are the application owner check the logs for more information.</p>
64
+ </div>
65
+ </body>
66
+ </html>
File without changes
@@ -0,0 +1 @@
1
+ beea9da0c274c2bf1678ed230b384d1bf0e9ab1948c546bead7a5072ec93dcd3f7847d087a7a7a8fa4fd6c7758c97ac8ed3235aa6c5ec07d507740a42c7ba327
@@ -0,0 +1,31 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe Preserve::SessionKey do
4
+ let(:controller_class) { ParametersController }
5
+ let(:parameter_key) { :status }
6
+
7
+ subject { described_class.new(controller_class, parameter_key) }
8
+
9
+ it 'builds a session key' do
10
+ key = 'preserve_bf3517c011c4bb3e6e9382f538357766ea91ae7b'
11
+ expect(subject.build).to eq(key)
12
+ end
13
+
14
+ context 'with a nested parameter' do
15
+ let(:parameter_key) { %i[sort column] }
16
+
17
+ it 'builds a session key' do
18
+ key = 'preserve_e120e537974f1046d8b1c4e869e69df30f8e862f'
19
+ expect(subject.build).to eq(key)
20
+ end
21
+ end
22
+
23
+ context 'with a namespaced controller' do
24
+ let(:controller_class) { Admin::ParametersController }
25
+
26
+ it 'builds a session key' do
27
+ key = 'preserve_8e9fa91c76a09b7483fc229526d59d652637daab'
28
+ expect(subject.build).to eq(key)
29
+ end
30
+ end
31
+ end
@@ -1,53 +1,111 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  RSpec.describe Preserve, type: :request do
4
+ before(:each) do
5
+ reset_callbacks(ParametersController)
6
+ reset_callbacks(Admin::ParametersController)
7
+ end
8
+
4
9
  it 'persists a parameter value' do
5
- get parameters_path, per_page: '20'
10
+ ParametersController.preserve(:status)
11
+
12
+ get parameters_path, params: { status: 'active' }
6
13
  get parameters_path
7
14
 
8
- expect(json_response[:per_page]).to eq('20')
15
+ expect(json_response[:status]).to eq('active')
9
16
  end
10
17
 
11
18
  it 'updates a parameter value' do
12
- get parameters_path, per_page: '20'
13
- get parameters_path, per_page: '10'
19
+ ParametersController.preserve(:status)
20
+
21
+ get parameters_path, params: { status: 'active' }
22
+ get parameters_path, params: { status: 'inactive' }
23
+ get parameters_path
14
24
 
15
- expect(json_response[:per_page]).to eq('10')
25
+ expect(json_response[:status]).to eq('inactive')
16
26
  end
17
27
 
18
28
  it 'handles multiple parameters' do
19
- get parameters_path, page: '5', per_page: '20'
29
+ ParametersController.preserve(:page, :per_page)
30
+
31
+ get parameters_path, params: { page: '2', per_page: '20' }
20
32
  get parameters_path
21
33
 
22
- expect(json_response[:page]).to eq('5')
34
+ expect(json_response[:page]).to eq('2')
23
35
  expect(json_response[:per_page]).to eq('20')
24
36
  end
25
37
 
26
- it 'handles action restrictions' do
27
- post parameters_path, per_page: '20'
38
+ it 'applies action restrictions' do
39
+ ParametersController.preserve(:status, only: :index)
40
+
41
+ post parameters_path, params: { status: 'active' }
28
42
  post parameters_path
29
43
 
30
- expect(json_response[:per_page]).to be_nil
44
+ expect(json_response[:status]).to eq(nil)
45
+ end
46
+
47
+ it 'supports controller inheritance' do
48
+ ApplicationController.preserve(:locale)
49
+
50
+ get parameters_path, params: { locale: 'en' }
51
+ get parameters_path
52
+
53
+ expect(json_response[:locale]).to eq('en')
54
+
55
+ get admin_parameters_path
56
+
57
+ expect(json_response[:locale]).to eq('en')
58
+ end
59
+
60
+ it 'handles nested parameters' do
61
+ ParametersController.preserve(%i[sort column])
62
+
63
+ params = { sort: { column: 'name', direction: 'desc' } }
64
+
65
+ get parameters_path, params: params
66
+ get parameters_path
67
+
68
+ expect(json_response[:sort][:column]).to eq('name')
69
+ expect(json_response[:sort][:direction]).to eq(nil)
70
+ end
71
+
72
+ it 'sets a default parameter value' do
73
+ ParametersController.preserve(:status, default: 'active')
74
+
75
+ get parameters_path
76
+
77
+ expect(json_response[:status]).to eq('active')
78
+
79
+ get parameters_path, params: { status: 'inactive' }
80
+
81
+ expect(json_response[:status]).to eq('inactive')
31
82
  end
32
83
 
33
84
  it 'handles a blank parameter value' do
34
- get parameters_path, status: 'active'
35
- get parameters_path, status: ''
85
+ ParametersController.preserve(:status, allow_blank: true)
86
+
87
+ get parameters_path, params: { status: 'active' }
88
+ get parameters_path, params: { status: '' }
36
89
 
37
90
  expect(json_response[:status]).to eq('')
38
91
  end
39
92
 
40
- it 'handles a session key prefix' do
41
- get parameters_path, order: 'created_at'
93
+ it 'prevents collisions in namespaced controllers' do
94
+ ParametersController.preserve(:status)
95
+ Admin::ParametersController.preserve(:status)
42
96
 
43
- key = :preserved_parameters_order
44
- expect(session[key]).to eq('created_at')
97
+ get admin_parameters_path, params: { status: 'active' }
98
+ get parameters_path
99
+
100
+ expect(json_response[:status]).to eq(nil)
45
101
  end
46
102
 
47
- it 'supports controller inheritance' do
48
- get parameters_path, locale: 'en'
49
- get parameters_path
103
+ context 'without a preserve callback' do
104
+ it "doesn't persist parameter values" do
105
+ get parameters_path, params: { status: 'active' }
106
+ get parameters_path
50
107
 
51
- expect(json_response[:locale]).to eq('en')
108
+ expect(json_response[:status]).to eq(nil)
109
+ end
52
110
  end
53
111
  end
@@ -1,14 +1,20 @@
1
1
  ENV['RAILS_ENV'] ||= 'test'
2
2
 
3
- require File.expand_path('../dummy/config/environment.rb', __FILE__)
3
+ require 'bundler/setup'
4
+ require 'coveralls'
5
+ require 'rails'
4
6
 
5
- require 'rspec/rails'
7
+ Coveralls.wear!
8
+
9
+ version = Rails::VERSION::MAJOR
10
+ dummy_root = File.expand_path("dummy/rails-#{version}", __dir__)
6
11
 
7
- Rails.backtrace_cleaner.remove_silencers!
12
+ require "#{dummy_root}/config/environment.rb"
13
+ require 'rspec/rails'
8
14
 
9
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
15
+ Dir["#{__dir__}/support/**/*.rb"].each { |f| require f }
10
16
 
11
17
  RSpec.configure do |config|
12
- config.color = true
13
18
  config.include RequestHelpers, type: :request
19
+ config.include LegacyHelpers, type: :request if version < 5
14
20
  end
@@ -0,0 +1,7 @@
1
+ module LegacyHelpers
2
+ %i[get post patch put delete head].each do |verb|
3
+ define_method(verb) do |path, options = {}|
4
+ super(path, options[:params], options[:headers])
5
+ end
6
+ end
7
+ end
@@ -1,7 +1,19 @@
1
1
  module RequestHelpers
2
2
  def json_response
3
- @json_response ||= begin
4
- JSON.parse(response.body).with_indifferent_access
3
+ JSON.parse(response.body).with_indifferent_access
4
+ end
5
+
6
+ def reset_callbacks(controller)
7
+ controller.reset_callbacks(:process_action)
8
+ reset_callback_runners(controller) if Rails::VERSION::MAJOR == 3
9
+ end
10
+
11
+ def reset_callback_runners(controller)
12
+ controller.class_eval do
13
+ action_methods.each do |action_name|
14
+ name = __callback_runner_name(action_name, :process_action)
15
+ undef_method(name) if method_defined?(name)
16
+ end
5
17
  end
6
18
  end
7
19
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: preserve
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bartosz Pieńkowski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-19 00:00:00.000000000 Z
11
+ date: 2020-09-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
14
+ name: actionpack
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '3.0'
19
+ version: '3.2'
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: '3.0'
26
+ version: '3.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: appraisal
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +38,48 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '2.2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.16'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.16'
55
+ - !ruby/object:Gem::Dependency
56
+ name: coveralls
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.8'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.8'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rails
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '6.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '6.0'
41
83
  - !ruby/object:Gem::Dependency
42
84
  name: rspec-rails
43
85
  requirement: !ruby/object:Gem::Requirement
@@ -72,14 +114,14 @@ dependencies:
72
114
  requirements:
73
115
  - - "~>"
74
116
  - !ruby/object:Gem::Version
75
- version: 1.3.13
117
+ version: '1.3'
76
118
  type: :development
77
119
  prerelease: false
78
120
  version_requirements: !ruby/object:Gem::Requirement
79
121
  requirements:
80
122
  - - "~>"
81
123
  - !ruby/object:Gem::Version
82
- version: 1.3.13
124
+ version: '1.3'
83
125
  description: Preserve is a Rails plugin which stores selected parameters in the session
84
126
  to make them available in subsequent requests.
85
127
  email: pienkowb@gmail.com
@@ -87,50 +129,202 @@ executables: []
87
129
  extensions: []
88
130
  extra_rdoc_files: []
89
131
  files:
90
- - MIT-LICENSE
132
+ - LICENSE
91
133
  - README.md
92
134
  - Rakefile
93
135
  - lib/preserve.rb
136
+ - lib/preserve/callback.rb
137
+ - lib/preserve/compatibility.rb
138
+ - lib/preserve/extension.rb
139
+ - lib/preserve/session_key.rb
94
140
  - lib/preserve/version.rb
95
- - spec/dummy/README.rdoc
96
- - spec/dummy/Rakefile
97
- - spec/dummy/app/assets/javascripts/application.js
98
- - spec/dummy/app/assets/stylesheets/application.css
99
- - spec/dummy/app/controllers/application_controller.rb
100
- - spec/dummy/app/controllers/parameters_controller.rb
101
- - spec/dummy/app/helpers/application_helper.rb
102
- - spec/dummy/app/views/layouts/application.html.erb
103
- - spec/dummy/bin/bundle
104
- - spec/dummy/bin/rails
105
- - spec/dummy/bin/rake
106
- - spec/dummy/bin/setup
107
- - spec/dummy/config.ru
108
- - spec/dummy/config/application.rb
109
- - spec/dummy/config/boot.rb
110
- - spec/dummy/config/database.yml
111
- - spec/dummy/config/environment.rb
112
- - spec/dummy/config/environments/development.rb
113
- - spec/dummy/config/environments/production.rb
114
- - spec/dummy/config/environments/test.rb
115
- - spec/dummy/config/initializers/assets.rb
116
- - spec/dummy/config/initializers/backtrace_silencers.rb
117
- - spec/dummy/config/initializers/cookies_serializer.rb
118
- - spec/dummy/config/initializers/filter_parameter_logging.rb
119
- - spec/dummy/config/initializers/inflections.rb
120
- - spec/dummy/config/initializers/mime_types.rb
121
- - spec/dummy/config/initializers/session_store.rb
122
- - spec/dummy/config/initializers/wrap_parameters.rb
123
- - spec/dummy/config/locales/en.yml
124
- - spec/dummy/config/routes.rb
125
- - spec/dummy/config/secrets.yml
126
- - spec/dummy/db/test.sqlite3
127
- - spec/dummy/log/test.log
128
- - spec/dummy/public/404.html
129
- - spec/dummy/public/422.html
130
- - spec/dummy/public/500.html
131
- - spec/dummy/public/favicon.ico
141
+ - spec/dummy/common/app/controllers/admin/parameters_controller.rb
142
+ - spec/dummy/common/app/controllers/application_controller.rb
143
+ - spec/dummy/common/app/controllers/parameters_controller.rb
144
+ - spec/dummy/common/config/routes.rb
145
+ - spec/dummy/rails-3/README.rdoc
146
+ - spec/dummy/rails-3/Rakefile
147
+ - spec/dummy/rails-3/app/assets/javascripts/application.js
148
+ - spec/dummy/rails-3/app/assets/stylesheets/application.css
149
+ - spec/dummy/rails-3/app/controllers/admin/parameters_controller.rb
150
+ - spec/dummy/rails-3/app/controllers/application_controller.rb
151
+ - spec/dummy/rails-3/app/controllers/parameters_controller.rb
152
+ - spec/dummy/rails-3/app/helpers/application_helper.rb
153
+ - spec/dummy/rails-3/app/views/layouts/application.html.erb
154
+ - spec/dummy/rails-3/config.ru
155
+ - spec/dummy/rails-3/config/application.rb
156
+ - spec/dummy/rails-3/config/boot.rb
157
+ - spec/dummy/rails-3/config/database.yml
158
+ - spec/dummy/rails-3/config/environment.rb
159
+ - spec/dummy/rails-3/config/environments/development.rb
160
+ - spec/dummy/rails-3/config/environments/production.rb
161
+ - spec/dummy/rails-3/config/environments/test.rb
162
+ - spec/dummy/rails-3/config/initializers/backtrace_silencers.rb
163
+ - spec/dummy/rails-3/config/initializers/inflections.rb
164
+ - spec/dummy/rails-3/config/initializers/mime_types.rb
165
+ - spec/dummy/rails-3/config/initializers/secret_token.rb
166
+ - spec/dummy/rails-3/config/initializers/session_store.rb
167
+ - spec/dummy/rails-3/config/initializers/wrap_parameters.rb
168
+ - spec/dummy/rails-3/config/locales/en.yml
169
+ - spec/dummy/rails-3/config/routes.rb
170
+ - spec/dummy/rails-3/db/test.sqlite3
171
+ - spec/dummy/rails-3/log/development.log
172
+ - spec/dummy/rails-3/log/test.log
173
+ - spec/dummy/rails-3/public/404.html
174
+ - spec/dummy/rails-3/public/422.html
175
+ - spec/dummy/rails-3/public/500.html
176
+ - spec/dummy/rails-3/public/favicon.ico
177
+ - spec/dummy/rails-3/script/rails
178
+ - spec/dummy/rails-4/README.rdoc
179
+ - spec/dummy/rails-4/Rakefile
180
+ - spec/dummy/rails-4/app/assets/javascripts/application.js
181
+ - spec/dummy/rails-4/app/assets/stylesheets/application.css
182
+ - spec/dummy/rails-4/app/controllers/admin/parameters_controller.rb
183
+ - spec/dummy/rails-4/app/controllers/application_controller.rb
184
+ - spec/dummy/rails-4/app/controllers/parameters_controller.rb
185
+ - spec/dummy/rails-4/app/helpers/application_helper.rb
186
+ - spec/dummy/rails-4/app/views/layouts/application.html.erb
187
+ - spec/dummy/rails-4/bin/bundle
188
+ - spec/dummy/rails-4/bin/rails
189
+ - spec/dummy/rails-4/bin/rake
190
+ - spec/dummy/rails-4/bin/setup
191
+ - spec/dummy/rails-4/config.ru
192
+ - spec/dummy/rails-4/config/application.rb
193
+ - spec/dummy/rails-4/config/boot.rb
194
+ - spec/dummy/rails-4/config/database.yml
195
+ - spec/dummy/rails-4/config/environment.rb
196
+ - spec/dummy/rails-4/config/environments/development.rb
197
+ - spec/dummy/rails-4/config/environments/production.rb
198
+ - spec/dummy/rails-4/config/environments/test.rb
199
+ - spec/dummy/rails-4/config/initializers/assets.rb
200
+ - spec/dummy/rails-4/config/initializers/backtrace_silencers.rb
201
+ - spec/dummy/rails-4/config/initializers/cookies_serializer.rb
202
+ - spec/dummy/rails-4/config/initializers/filter_parameter_logging.rb
203
+ - spec/dummy/rails-4/config/initializers/inflections.rb
204
+ - spec/dummy/rails-4/config/initializers/mime_types.rb
205
+ - spec/dummy/rails-4/config/initializers/session_store.rb
206
+ - spec/dummy/rails-4/config/initializers/to_time_preserves_timezone.rb
207
+ - spec/dummy/rails-4/config/initializers/wrap_parameters.rb
208
+ - spec/dummy/rails-4/config/locales/en.yml
209
+ - spec/dummy/rails-4/config/routes.rb
210
+ - spec/dummy/rails-4/config/secrets.yml
211
+ - spec/dummy/rails-4/public/404.html
212
+ - spec/dummy/rails-4/public/422.html
213
+ - spec/dummy/rails-4/public/500.html
214
+ - spec/dummy/rails-4/public/favicon.ico
215
+ - spec/dummy/rails-5/Rakefile
216
+ - spec/dummy/rails-5/app/assets/config/manifest.js
217
+ - spec/dummy/rails-5/app/assets/javascripts/application.js
218
+ - spec/dummy/rails-5/app/assets/javascripts/cable.js
219
+ - spec/dummy/rails-5/app/assets/stylesheets/application.css
220
+ - spec/dummy/rails-5/app/channels/application_cable/channel.rb
221
+ - spec/dummy/rails-5/app/channels/application_cable/connection.rb
222
+ - spec/dummy/rails-5/app/controllers/admin/parameters_controller.rb
223
+ - spec/dummy/rails-5/app/controllers/application_controller.rb
224
+ - spec/dummy/rails-5/app/controllers/parameters_controller.rb
225
+ - spec/dummy/rails-5/app/helpers/application_helper.rb
226
+ - spec/dummy/rails-5/app/jobs/application_job.rb
227
+ - spec/dummy/rails-5/app/mailers/application_mailer.rb
228
+ - spec/dummy/rails-5/app/models/application_record.rb
229
+ - spec/dummy/rails-5/app/views/layouts/application.html.erb
230
+ - spec/dummy/rails-5/app/views/layouts/mailer.html.erb
231
+ - spec/dummy/rails-5/app/views/layouts/mailer.text.erb
232
+ - spec/dummy/rails-5/bin/bundle
233
+ - spec/dummy/rails-5/bin/rails
234
+ - spec/dummy/rails-5/bin/rake
235
+ - spec/dummy/rails-5/bin/setup
236
+ - spec/dummy/rails-5/bin/update
237
+ - spec/dummy/rails-5/bin/yarn
238
+ - spec/dummy/rails-5/config.ru
239
+ - spec/dummy/rails-5/config/application.rb
240
+ - spec/dummy/rails-5/config/boot.rb
241
+ - spec/dummy/rails-5/config/cable.yml
242
+ - spec/dummy/rails-5/config/database.yml
243
+ - spec/dummy/rails-5/config/environment.rb
244
+ - spec/dummy/rails-5/config/environments/development.rb
245
+ - spec/dummy/rails-5/config/environments/production.rb
246
+ - spec/dummy/rails-5/config/environments/test.rb
247
+ - spec/dummy/rails-5/config/initializers/application_controller_renderer.rb
248
+ - spec/dummy/rails-5/config/initializers/assets.rb
249
+ - spec/dummy/rails-5/config/initializers/backtrace_silencers.rb
250
+ - spec/dummy/rails-5/config/initializers/content_security_policy.rb
251
+ - spec/dummy/rails-5/config/initializers/cookies_serializer.rb
252
+ - spec/dummy/rails-5/config/initializers/filter_parameter_logging.rb
253
+ - spec/dummy/rails-5/config/initializers/inflections.rb
254
+ - spec/dummy/rails-5/config/initializers/mime_types.rb
255
+ - spec/dummy/rails-5/config/initializers/wrap_parameters.rb
256
+ - spec/dummy/rails-5/config/locales/en.yml
257
+ - spec/dummy/rails-5/config/puma.rb
258
+ - spec/dummy/rails-5/config/routes.rb
259
+ - spec/dummy/rails-5/config/spring.rb
260
+ - spec/dummy/rails-5/config/storage.yml
261
+ - spec/dummy/rails-5/db/test.sqlite3
262
+ - spec/dummy/rails-5/log/test.log
263
+ - spec/dummy/rails-5/package.json
264
+ - spec/dummy/rails-5/public/404.html
265
+ - spec/dummy/rails-5/public/422.html
266
+ - spec/dummy/rails-5/public/500.html
267
+ - spec/dummy/rails-5/public/apple-touch-icon-precomposed.png
268
+ - spec/dummy/rails-5/public/apple-touch-icon.png
269
+ - spec/dummy/rails-5/public/favicon.ico
270
+ - spec/dummy/rails-5/tmp/development_secret.txt
271
+ - spec/dummy/rails-6/Rakefile
272
+ - spec/dummy/rails-6/app/assets/config/manifest.js
273
+ - spec/dummy/rails-6/app/assets/stylesheets/application.css
274
+ - spec/dummy/rails-6/app/channels/application_cable/channel.rb
275
+ - spec/dummy/rails-6/app/channels/application_cable/connection.rb
276
+ - spec/dummy/rails-6/app/controllers/admin/parameters_controller.rb
277
+ - spec/dummy/rails-6/app/controllers/application_controller.rb
278
+ - spec/dummy/rails-6/app/controllers/parameters_controller.rb
279
+ - spec/dummy/rails-6/app/helpers/application_helper.rb
280
+ - spec/dummy/rails-6/app/javascript/packs/application.js
281
+ - spec/dummy/rails-6/app/jobs/application_job.rb
282
+ - spec/dummy/rails-6/app/mailers/application_mailer.rb
283
+ - spec/dummy/rails-6/app/models/application_record.rb
284
+ - spec/dummy/rails-6/app/views/layouts/application.html.erb
285
+ - spec/dummy/rails-6/app/views/layouts/mailer.html.erb
286
+ - spec/dummy/rails-6/app/views/layouts/mailer.text.erb
287
+ - spec/dummy/rails-6/bin/rails
288
+ - spec/dummy/rails-6/bin/rake
289
+ - spec/dummy/rails-6/bin/setup
290
+ - spec/dummy/rails-6/config.ru
291
+ - spec/dummy/rails-6/config/application.rb
292
+ - spec/dummy/rails-6/config/boot.rb
293
+ - spec/dummy/rails-6/config/cable.yml
294
+ - spec/dummy/rails-6/config/database.yml
295
+ - spec/dummy/rails-6/config/environment.rb
296
+ - spec/dummy/rails-6/config/environments/development.rb
297
+ - spec/dummy/rails-6/config/environments/production.rb
298
+ - spec/dummy/rails-6/config/environments/test.rb
299
+ - spec/dummy/rails-6/config/initializers/application_controller_renderer.rb
300
+ - spec/dummy/rails-6/config/initializers/assets.rb
301
+ - spec/dummy/rails-6/config/initializers/backtrace_silencers.rb
302
+ - spec/dummy/rails-6/config/initializers/content_security_policy.rb
303
+ - spec/dummy/rails-6/config/initializers/cookies_serializer.rb
304
+ - spec/dummy/rails-6/config/initializers/filter_parameter_logging.rb
305
+ - spec/dummy/rails-6/config/initializers/inflections.rb
306
+ - spec/dummy/rails-6/config/initializers/mime_types.rb
307
+ - spec/dummy/rails-6/config/initializers/wrap_parameters.rb
308
+ - spec/dummy/rails-6/config/locales/en.yml
309
+ - spec/dummy/rails-6/config/puma.rb
310
+ - spec/dummy/rails-6/config/routes.rb
311
+ - spec/dummy/rails-6/config/spring.rb
312
+ - spec/dummy/rails-6/config/storage.yml
313
+ - spec/dummy/rails-6/db/development.sqlite3
314
+ - spec/dummy/rails-6/db/test.sqlite3
315
+ - spec/dummy/rails-6/log/development.log
316
+ - spec/dummy/rails-6/log/test.log
317
+ - spec/dummy/rails-6/public/404.html
318
+ - spec/dummy/rails-6/public/422.html
319
+ - spec/dummy/rails-6/public/500.html
320
+ - spec/dummy/rails-6/public/apple-touch-icon-precomposed.png
321
+ - spec/dummy/rails-6/public/apple-touch-icon.png
322
+ - spec/dummy/rails-6/public/favicon.ico
323
+ - spec/dummy/rails-6/tmp/development_secret.txt
324
+ - spec/preserve/session_key_spec.rb
132
325
  - spec/preserve_spec.rb
133
326
  - spec/spec_helper.rb
327
+ - spec/support/legacy_helpers.rb
134
328
  - spec/support/request_helpers.rb
135
329
  homepage: https://github.com/pienkowb/preserve
136
330
  licenses:
@@ -151,48 +345,196 @@ required_rubygems_version: !ruby/object:Gem::Requirement
151
345
  - !ruby/object:Gem::Version
152
346
  version: '0'
153
347
  requirements: []
154
- rubygems_version: 3.0.6
348
+ rubygems_version: 3.1.2
155
349
  signing_key:
156
350
  specification_version: 4
157
351
  summary: Persist parameter values between requests
158
352
  test_files:
159
353
  - spec/spec_helper.rb
160
- - spec/dummy/app/controllers/application_controller.rb
161
- - spec/dummy/app/controllers/parameters_controller.rb
162
- - spec/dummy/app/views/layouts/application.html.erb
163
- - spec/dummy/app/assets/javascripts/application.js
164
- - spec/dummy/app/assets/stylesheets/application.css
165
- - spec/dummy/app/helpers/application_helper.rb
166
- - spec/dummy/bin/rake
167
- - spec/dummy/bin/setup
168
- - spec/dummy/bin/bundle
169
- - spec/dummy/bin/rails
170
- - spec/dummy/config/secrets.yml
171
- - spec/dummy/config/routes.rb
172
- - spec/dummy/config/locales/en.yml
173
- - spec/dummy/config/environments/production.rb
174
- - spec/dummy/config/environments/development.rb
175
- - spec/dummy/config/environments/test.rb
176
- - spec/dummy/config/environment.rb
177
- - spec/dummy/config/application.rb
178
- - spec/dummy/config/database.yml
179
- - spec/dummy/config/boot.rb
180
- - spec/dummy/config/initializers/backtrace_silencers.rb
181
- - spec/dummy/config/initializers/mime_types.rb
182
- - spec/dummy/config/initializers/filter_parameter_logging.rb
183
- - spec/dummy/config/initializers/session_store.rb
184
- - spec/dummy/config/initializers/wrap_parameters.rb
185
- - spec/dummy/config/initializers/assets.rb
186
- - spec/dummy/config/initializers/cookies_serializer.rb
187
- - spec/dummy/config/initializers/inflections.rb
188
- - spec/dummy/config.ru
189
- - spec/dummy/Rakefile
190
- - spec/dummy/public/favicon.ico
191
- - spec/dummy/public/422.html
192
- - spec/dummy/public/500.html
193
- - spec/dummy/public/404.html
194
- - spec/dummy/db/test.sqlite3
195
- - spec/dummy/log/test.log
196
- - spec/dummy/README.rdoc
354
+ - spec/dummy/rails-6/app/mailers/application_mailer.rb
355
+ - spec/dummy/rails-6/app/models/application_record.rb
356
+ - spec/dummy/rails-6/app/javascript/packs/application.js
357
+ - spec/dummy/rails-6/app/jobs/application_job.rb
358
+ - spec/dummy/rails-6/app/controllers/application_controller.rb
359
+ - spec/dummy/rails-6/app/controllers/admin/parameters_controller.rb
360
+ - spec/dummy/rails-6/app/controllers/parameters_controller.rb
361
+ - spec/dummy/rails-6/app/views/layouts/application.html.erb
362
+ - spec/dummy/rails-6/app/views/layouts/mailer.html.erb
363
+ - spec/dummy/rails-6/app/views/layouts/mailer.text.erb
364
+ - spec/dummy/rails-6/app/assets/config/manifest.js
365
+ - spec/dummy/rails-6/app/assets/stylesheets/application.css
366
+ - spec/dummy/rails-6/app/helpers/application_helper.rb
367
+ - spec/dummy/rails-6/app/channels/application_cable/connection.rb
368
+ - spec/dummy/rails-6/app/channels/application_cable/channel.rb
369
+ - spec/dummy/rails-6/bin/rake
370
+ - spec/dummy/rails-6/bin/setup
371
+ - spec/dummy/rails-6/bin/rails
372
+ - spec/dummy/rails-6/config/routes.rb
373
+ - spec/dummy/rails-6/config/locales/en.yml
374
+ - spec/dummy/rails-6/config/cable.yml
375
+ - spec/dummy/rails-6/config/environments/production.rb
376
+ - spec/dummy/rails-6/config/environments/development.rb
377
+ - spec/dummy/rails-6/config/environments/test.rb
378
+ - spec/dummy/rails-6/config/spring.rb
379
+ - spec/dummy/rails-6/config/environment.rb
380
+ - spec/dummy/rails-6/config/storage.yml
381
+ - spec/dummy/rails-6/config/application.rb
382
+ - spec/dummy/rails-6/config/puma.rb
383
+ - spec/dummy/rails-6/config/database.yml
384
+ - spec/dummy/rails-6/config/boot.rb
385
+ - spec/dummy/rails-6/config/initializers/application_controller_renderer.rb
386
+ - spec/dummy/rails-6/config/initializers/backtrace_silencers.rb
387
+ - spec/dummy/rails-6/config/initializers/mime_types.rb
388
+ - spec/dummy/rails-6/config/initializers/filter_parameter_logging.rb
389
+ - spec/dummy/rails-6/config/initializers/wrap_parameters.rb
390
+ - spec/dummy/rails-6/config/initializers/assets.rb
391
+ - spec/dummy/rails-6/config/initializers/cookies_serializer.rb
392
+ - spec/dummy/rails-6/config/initializers/content_security_policy.rb
393
+ - spec/dummy/rails-6/config/initializers/inflections.rb
394
+ - spec/dummy/rails-6/config.ru
395
+ - spec/dummy/rails-6/Rakefile
396
+ - spec/dummy/rails-6/public/favicon.ico
397
+ - spec/dummy/rails-6/public/422.html
398
+ - spec/dummy/rails-6/public/apple-touch-icon.png
399
+ - spec/dummy/rails-6/public/500.html
400
+ - spec/dummy/rails-6/public/404.html
401
+ - spec/dummy/rails-6/public/apple-touch-icon-precomposed.png
402
+ - spec/dummy/rails-6/db/test.sqlite3
403
+ - spec/dummy/rails-6/db/development.sqlite3
404
+ - spec/dummy/rails-6/log/test.log
405
+ - spec/dummy/rails-6/log/development.log
406
+ - spec/dummy/rails-6/tmp/development_secret.txt
407
+ - spec/dummy/common/app/controllers/application_controller.rb
408
+ - spec/dummy/common/app/controllers/admin/parameters_controller.rb
409
+ - spec/dummy/common/app/controllers/parameters_controller.rb
410
+ - spec/dummy/common/config/routes.rb
411
+ - spec/dummy/rails-5/app/mailers/application_mailer.rb
412
+ - spec/dummy/rails-5/app/models/application_record.rb
413
+ - spec/dummy/rails-5/app/jobs/application_job.rb
414
+ - spec/dummy/rails-5/app/controllers/application_controller.rb
415
+ - spec/dummy/rails-5/app/controllers/admin/parameters_controller.rb
416
+ - spec/dummy/rails-5/app/controllers/parameters_controller.rb
417
+ - spec/dummy/rails-5/app/views/layouts/application.html.erb
418
+ - spec/dummy/rails-5/app/views/layouts/mailer.html.erb
419
+ - spec/dummy/rails-5/app/views/layouts/mailer.text.erb
420
+ - spec/dummy/rails-5/app/assets/config/manifest.js
421
+ - spec/dummy/rails-5/app/assets/javascripts/cable.js
422
+ - spec/dummy/rails-5/app/assets/javascripts/application.js
423
+ - spec/dummy/rails-5/app/assets/stylesheets/application.css
424
+ - spec/dummy/rails-5/app/helpers/application_helper.rb
425
+ - spec/dummy/rails-5/app/channels/application_cable/connection.rb
426
+ - spec/dummy/rails-5/app/channels/application_cable/channel.rb
427
+ - spec/dummy/rails-5/bin/update
428
+ - spec/dummy/rails-5/bin/rake
429
+ - spec/dummy/rails-5/bin/setup
430
+ - spec/dummy/rails-5/bin/bundle
431
+ - spec/dummy/rails-5/bin/yarn
432
+ - spec/dummy/rails-5/bin/rails
433
+ - spec/dummy/rails-5/config/routes.rb
434
+ - spec/dummy/rails-5/config/locales/en.yml
435
+ - spec/dummy/rails-5/config/cable.yml
436
+ - spec/dummy/rails-5/config/environments/production.rb
437
+ - spec/dummy/rails-5/config/environments/development.rb
438
+ - spec/dummy/rails-5/config/environments/test.rb
439
+ - spec/dummy/rails-5/config/spring.rb
440
+ - spec/dummy/rails-5/config/environment.rb
441
+ - spec/dummy/rails-5/config/storage.yml
442
+ - spec/dummy/rails-5/config/application.rb
443
+ - spec/dummy/rails-5/config/puma.rb
444
+ - spec/dummy/rails-5/config/database.yml
445
+ - spec/dummy/rails-5/config/boot.rb
446
+ - spec/dummy/rails-5/config/initializers/application_controller_renderer.rb
447
+ - spec/dummy/rails-5/config/initializers/backtrace_silencers.rb
448
+ - spec/dummy/rails-5/config/initializers/mime_types.rb
449
+ - spec/dummy/rails-5/config/initializers/filter_parameter_logging.rb
450
+ - spec/dummy/rails-5/config/initializers/wrap_parameters.rb
451
+ - spec/dummy/rails-5/config/initializers/assets.rb
452
+ - spec/dummy/rails-5/config/initializers/cookies_serializer.rb
453
+ - spec/dummy/rails-5/config/initializers/content_security_policy.rb
454
+ - spec/dummy/rails-5/config/initializers/inflections.rb
455
+ - spec/dummy/rails-5/config.ru
456
+ - spec/dummy/rails-5/Rakefile
457
+ - spec/dummy/rails-5/public/favicon.ico
458
+ - spec/dummy/rails-5/public/422.html
459
+ - spec/dummy/rails-5/public/apple-touch-icon.png
460
+ - spec/dummy/rails-5/public/500.html
461
+ - spec/dummy/rails-5/public/404.html
462
+ - spec/dummy/rails-5/public/apple-touch-icon-precomposed.png
463
+ - spec/dummy/rails-5/package.json
464
+ - spec/dummy/rails-5/db/test.sqlite3
465
+ - spec/dummy/rails-5/log/test.log
466
+ - spec/dummy/rails-5/tmp/development_secret.txt
467
+ - spec/dummy/rails-3/app/controllers/application_controller.rb
468
+ - spec/dummy/rails-3/app/controllers/admin/parameters_controller.rb
469
+ - spec/dummy/rails-3/app/controllers/parameters_controller.rb
470
+ - spec/dummy/rails-3/app/views/layouts/application.html.erb
471
+ - spec/dummy/rails-3/app/assets/javascripts/application.js
472
+ - spec/dummy/rails-3/app/assets/stylesheets/application.css
473
+ - spec/dummy/rails-3/app/helpers/application_helper.rb
474
+ - spec/dummy/rails-3/config/routes.rb
475
+ - spec/dummy/rails-3/config/locales/en.yml
476
+ - spec/dummy/rails-3/config/environments/production.rb
477
+ - spec/dummy/rails-3/config/environments/development.rb
478
+ - spec/dummy/rails-3/config/environments/test.rb
479
+ - spec/dummy/rails-3/config/environment.rb
480
+ - spec/dummy/rails-3/config/application.rb
481
+ - spec/dummy/rails-3/config/database.yml
482
+ - spec/dummy/rails-3/config/boot.rb
483
+ - spec/dummy/rails-3/config/initializers/backtrace_silencers.rb
484
+ - spec/dummy/rails-3/config/initializers/mime_types.rb
485
+ - spec/dummy/rails-3/config/initializers/session_store.rb
486
+ - spec/dummy/rails-3/config/initializers/wrap_parameters.rb
487
+ - spec/dummy/rails-3/config/initializers/secret_token.rb
488
+ - spec/dummy/rails-3/config/initializers/inflections.rb
489
+ - spec/dummy/rails-3/config.ru
490
+ - spec/dummy/rails-3/script/rails
491
+ - spec/dummy/rails-3/Rakefile
492
+ - spec/dummy/rails-3/public/favicon.ico
493
+ - spec/dummy/rails-3/public/422.html
494
+ - spec/dummy/rails-3/public/500.html
495
+ - spec/dummy/rails-3/public/404.html
496
+ - spec/dummy/rails-3/db/test.sqlite3
497
+ - spec/dummy/rails-3/log/test.log
498
+ - spec/dummy/rails-3/log/development.log
499
+ - spec/dummy/rails-3/README.rdoc
500
+ - spec/dummy/rails-4/app/controllers/application_controller.rb
501
+ - spec/dummy/rails-4/app/controllers/admin/parameters_controller.rb
502
+ - spec/dummy/rails-4/app/controllers/parameters_controller.rb
503
+ - spec/dummy/rails-4/app/views/layouts/application.html.erb
504
+ - spec/dummy/rails-4/app/assets/javascripts/application.js
505
+ - spec/dummy/rails-4/app/assets/stylesheets/application.css
506
+ - spec/dummy/rails-4/app/helpers/application_helper.rb
507
+ - spec/dummy/rails-4/bin/rake
508
+ - spec/dummy/rails-4/bin/setup
509
+ - spec/dummy/rails-4/bin/bundle
510
+ - spec/dummy/rails-4/bin/rails
511
+ - spec/dummy/rails-4/config/secrets.yml
512
+ - spec/dummy/rails-4/config/routes.rb
513
+ - spec/dummy/rails-4/config/locales/en.yml
514
+ - spec/dummy/rails-4/config/environments/production.rb
515
+ - spec/dummy/rails-4/config/environments/development.rb
516
+ - spec/dummy/rails-4/config/environments/test.rb
517
+ - spec/dummy/rails-4/config/environment.rb
518
+ - spec/dummy/rails-4/config/application.rb
519
+ - spec/dummy/rails-4/config/database.yml
520
+ - spec/dummy/rails-4/config/boot.rb
521
+ - spec/dummy/rails-4/config/initializers/backtrace_silencers.rb
522
+ - spec/dummy/rails-4/config/initializers/mime_types.rb
523
+ - spec/dummy/rails-4/config/initializers/filter_parameter_logging.rb
524
+ - spec/dummy/rails-4/config/initializers/session_store.rb
525
+ - spec/dummy/rails-4/config/initializers/wrap_parameters.rb
526
+ - spec/dummy/rails-4/config/initializers/assets.rb
527
+ - spec/dummy/rails-4/config/initializers/cookies_serializer.rb
528
+ - spec/dummy/rails-4/config/initializers/to_time_preserves_timezone.rb
529
+ - spec/dummy/rails-4/config/initializers/inflections.rb
530
+ - spec/dummy/rails-4/config.ru
531
+ - spec/dummy/rails-4/Rakefile
532
+ - spec/dummy/rails-4/public/favicon.ico
533
+ - spec/dummy/rails-4/public/422.html
534
+ - spec/dummy/rails-4/public/500.html
535
+ - spec/dummy/rails-4/public/404.html
536
+ - spec/dummy/rails-4/README.rdoc
537
+ - spec/support/legacy_helpers.rb
197
538
  - spec/support/request_helpers.rb
198
539
  - spec/preserve_spec.rb
540
+ - spec/preserve/session_key_spec.rb