rails-rfc6570 3.1.0 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (261) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +2 -1
  4. data/lib/rails/rfc6570/version.rb +1 -1
  5. data/rails-rfc6570.gemspec +2 -2
  6. data/spec/spec_helper.rb +8 -5
  7. data/vendor/bundle/ruby/3.3.0/bundler/gems/rubocop-config-943facea9d8f/LICENSE +21 -0
  8. data/vendor/bundle/ruby/3.3.0/bundler/gems/rubocop-config-943facea9d8f/README.md +23 -0
  9. data/vendor/bundle/ruby/3.3.0/bundler/gems/rubocop-config-943facea9d8f/rubocop-config.gemspec +31 -0
  10. data/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.1/CHANGELOG.md +154 -0
  11. data/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.1/MIT-LICENSE +21 -0
  12. data/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.1/README.rdoc +57 -0
  13. data/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.1/CHANGELOG.md +113 -0
  14. data/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.1/MIT-LICENSE +21 -0
  15. data/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.1/README.rdoc +40 -0
  16. data/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.1/CHANGELOG.md +258 -0
  17. data/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.1/MIT-LICENSE +20 -0
  18. data/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.1/README.rdoc +40 -0
  19. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/CHANGELOG.md +301 -0
  20. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/LICENSE.txt +202 -0
  21. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/README.md +121 -0
  22. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/addressable.gemspec +28 -0
  23. data/vendor/bundle/ruby/3.3.0/gems/appraisal-2.5.0/MIT-LICENSE +21 -0
  24. data/vendor/bundle/ruby/3.3.0/gems/appraisal-2.5.0/README.md +243 -0
  25. data/vendor/bundle/ruby/3.3.0/gems/appraisal-2.5.0/appraisal.gemspec +29 -0
  26. data/vendor/bundle/ruby/3.3.0/gems/ast-2.4.2/LICENSE.MIT +20 -0
  27. data/vendor/bundle/ruby/3.3.0/gems/ast-2.4.2/README.YARD.md +12 -0
  28. data/vendor/bundle/ruby/3.3.0/gems/benchmark-ips-2.13.0/LICENSE +20 -0
  29. data/vendor/bundle/ruby/3.3.0/gems/benchmark-ips-2.13.0/README.md +279 -0
  30. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-3.1.8/LICENSE +56 -0
  31. data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-3.1.8/bigdecimal.gemspec +57 -0
  32. data/vendor/bundle/ruby/3.3.0/gems/builder-3.3.0/MIT-LICENSE +20 -0
  33. data/vendor/bundle/ruby/3.3.0/gems/builder-3.3.0/README.md +258 -0
  34. data/vendor/bundle/ruby/3.3.0/gems/builder-3.3.0/builder.gemspec +49 -0
  35. data/vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/CHANGELOG.md +934 -0
  36. data/vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/LICENSE +23 -0
  37. data/vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/README.md +199 -0
  38. data/vendor/bundle/ruby/3.3.0/gems/coderay-1.1.3/MIT-LICENSE +22 -0
  39. data/vendor/bundle/ruby/3.3.0/gems/coderay-1.1.3/README_INDEX.rdoc +123 -0
  40. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.4/CHANGELOG.md +593 -0
  41. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.4/LICENSE.txt +21 -0
  42. data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.4/README.md +407 -0
  43. data/vendor/bundle/ruby/3.3.0/gems/connection_pool-2.4.1/LICENSE +20 -0
  44. data/vendor/bundle/ruby/3.3.0/gems/connection_pool-2.4.1/README.md +135 -0
  45. data/vendor/bundle/ruby/3.3.0/gems/connection_pool-2.4.1/connection_pool.gemspec +24 -0
  46. data/vendor/bundle/ruby/3.3.0/gems/crass-1.0.6/LICENSE +18 -0
  47. data/vendor/bundle/ruby/3.3.0/gems/crass-1.0.6/README.md +192 -0
  48. data/vendor/bundle/ruby/3.3.0/gems/crass-1.0.6/crass.gemspec +31 -0
  49. data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.5.1/README.rdoc +84 -0
  50. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/LICENSE +21 -0
  51. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/README.md +409 -0
  52. data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/docile.gemspec +36 -0
  53. data/vendor/bundle/ruby/3.3.0/gems/drb-2.2.1/LICENSE.txt +22 -0
  54. data/vendor/bundle/ruby/3.3.0/gems/drb-2.2.1/drb.gemspec +41 -0
  55. data/vendor/bundle/ruby/3.3.0/gems/erubi-1.13.0/CHANGELOG +107 -0
  56. data/vendor/bundle/ruby/3.3.0/gems/erubi-1.13.0/MIT-LICENSE +21 -0
  57. data/vendor/bundle/ruby/3.3.0/gems/erubi-1.13.0/README.rdoc +151 -0
  58. data/vendor/bundle/ruby/3.3.0/gems/i18n-1.14.5/MIT-LICENSE +20 -0
  59. data/vendor/bundle/ruby/3.3.0/gems/i18n-1.14.5/README.md +127 -0
  60. data/vendor/bundle/ruby/3.3.0/gems/io-console-0.7.2/LICENSE.txt +22 -0
  61. data/vendor/bundle/ruby/3.3.0/gems/io-console-0.7.2/README.md +46 -0
  62. data/vendor/bundle/ruby/3.3.0/gems/irb-1.14.0/LICENSE.txt +22 -0
  63. data/vendor/bundle/ruby/3.3.0/gems/irb-1.14.0/README.md +405 -0
  64. data/vendor/bundle/ruby/3.3.0/gems/irb-1.14.0/irb.gemspec +46 -0
  65. data/vendor/bundle/ruby/3.3.0/gems/json-2.7.2/LICENSE +56 -0
  66. data/vendor/bundle/ruby/3.3.0/gems/json-2.7.2/README.md +416 -0
  67. data/vendor/bundle/ruby/3.3.0/gems/json-2.7.2/json.gemspec +68 -0
  68. data/vendor/bundle/ruby/3.3.0/gems/language_server-protocol-3.17.0.3/LICENSE.txt +21 -0
  69. data/vendor/bundle/ruby/3.3.0/gems/language_server-protocol-3.17.0.3/README.md +88 -0
  70. data/vendor/bundle/ruby/3.3.0/gems/loofah-2.22.0/CHANGELOG.md +566 -0
  71. data/vendor/bundle/ruby/3.3.0/gems/loofah-2.22.0/MIT-LICENSE.txt +23 -0
  72. data/vendor/bundle/ruby/3.3.0/gems/loofah-2.22.0/README.md +363 -0
  73. data/vendor/bundle/ruby/3.3.0/gems/method_source-1.1.0/CHANGELOG.md +15 -0
  74. data/vendor/bundle/ruby/3.3.0/gems/method_source-1.1.0/LICENSE +22 -0
  75. data/vendor/bundle/ruby/3.3.0/gems/method_source-1.1.0/README.markdown +101 -0
  76. data/vendor/bundle/ruby/3.3.0/gems/method_source-1.1.0/method_source.gemspec +19 -0
  77. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.25.1/README.rdoc +835 -0
  78. data/vendor/bundle/ruby/3.3.0/gems/nokogiri-1.16.7-x86_64-linux/LICENSE-DEPENDENCIES.md +2224 -0
  79. data/vendor/bundle/ruby/3.3.0/gems/nokogiri-1.16.7-x86_64-linux/LICENSE.md +9 -0
  80. data/vendor/bundle/ruby/3.3.0/gems/nokogiri-1.16.7-x86_64-linux/README.md +290 -0
  81. data/vendor/bundle/ruby/3.3.0/gems/parallel-1.26.3/MIT-LICENSE.txt +20 -0
  82. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.4.2/LICENSE.txt +25 -0
  83. data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.4.2/parser.gemspec +43 -0
  84. data/vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/CHANGELOG.md +1141 -0
  85. data/vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/LICENSE +25 -0
  86. data/vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/README.md +466 -0
  87. data/vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/lib/pry/slop/LICENSE +20 -0
  88. data/vendor/bundle/ruby/3.3.0/gems/pry-byebug-3.10.1/CHANGELOG.md +230 -0
  89. data/vendor/bundle/ruby/3.3.0/gems/pry-byebug-3.10.1/LICENSE +20 -0
  90. data/vendor/bundle/ruby/3.3.0/gems/pry-byebug-3.10.1/README.md +189 -0
  91. data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.1/CHANGELOG.md +491 -0
  92. data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.1/LICENSE.txt +22 -0
  93. data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.1/README.md +222 -0
  94. data/vendor/bundle/ruby/3.3.0/gems/racc-1.8.1/README.ja.rdoc +58 -0
  95. data/vendor/bundle/ruby/3.3.0/gems/racc-1.8.1/README.rdoc +60 -0
  96. data/vendor/bundle/ruby/3.3.0/gems/rack-3.1.7/CHANGELOG.md +994 -0
  97. data/vendor/bundle/ruby/3.3.0/gems/rack-3.1.7/MIT-LICENSE +20 -0
  98. data/vendor/bundle/ruby/3.3.0/gems/rack-3.1.7/README.md +328 -0
  99. data/vendor/bundle/ruby/3.3.0/gems/rack-test-2.1.0/MIT-LICENSE.txt +20 -0
  100. data/vendor/bundle/ruby/3.3.0/gems/rack-test-2.1.0/README.md +139 -0
  101. data/vendor/bundle/ruby/3.3.0/gems/rails-dom-testing-2.2.0/MIT-LICENSE +23 -0
  102. data/vendor/bundle/ruby/3.3.0/gems/rails-dom-testing-2.2.0/README.md +91 -0
  103. data/vendor/bundle/ruby/3.3.0/gems/rails-html-sanitizer-1.6.0/CHANGELOG.md +201 -0
  104. data/vendor/bundle/ruby/3.3.0/gems/rails-html-sanitizer-1.6.0/MIT-LICENSE +23 -0
  105. data/vendor/bundle/ruby/3.3.0/gems/rails-html-sanitizer-1.6.0/README.md +271 -0
  106. data/vendor/bundle/ruby/3.3.0/gems/railties-7.2.1/CHANGELOG.md +361 -0
  107. data/vendor/bundle/ruby/3.3.0/gems/railties-7.2.1/MIT-LICENSE +20 -0
  108. data/vendor/bundle/ruby/3.3.0/gems/railties-7.2.1/README.rdoc +39 -0
  109. data/vendor/bundle/ruby/3.3.0/gems/railties-7.2.1/lib/rails/generators/rails/app/templates/README.md.tt +24 -0
  110. data/vendor/bundle/ruby/3.3.0/gems/railties-7.2.1/lib/rails/generators/rails/plugin/templates/%name%.gemspec.tt +28 -0
  111. data/vendor/bundle/ruby/3.3.0/gems/railties-7.2.1/lib/rails/generators/rails/plugin/templates/MIT-LICENSE.tt +20 -0
  112. data/vendor/bundle/ruby/3.3.0/gems/railties-7.2.1/lib/rails/generators/rails/plugin/templates/README.md.tt +28 -0
  113. data/vendor/bundle/ruby/3.3.0/gems/rainbow-3.1.1/LICENSE +20 -0
  114. data/vendor/bundle/ruby/3.3.0/gems/rainbow-3.1.1/README.markdown +227 -0
  115. data/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/MIT-LICENSE +21 -0
  116. data/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/README.rdoc +155 -0
  117. data/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/rake.gemspec +101 -0
  118. data/vendor/bundle/ruby/3.3.0/gems/rake-release-1.3.0/LICENSE +21 -0
  119. data/vendor/bundle/ruby/3.3.0/gems/rake-release-1.3.0/README.md +107 -0
  120. data/vendor/bundle/ruby/3.3.0/gems/rake-release-1.3.0/rake-release.gemspec +23 -0
  121. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.7.0/LICENSE.rdoc +57 -0
  122. data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.7.0/README.rdoc +129 -0
  123. data/vendor/bundle/ruby/3.3.0/gems/regexp_parser-2.9.2/LICENSE +22 -0
  124. data/vendor/bundle/ruby/3.3.0/gems/regexp_parser-2.9.2/regexp_parser.gemspec +34 -0
  125. data/vendor/bundle/ruby/3.3.0/gems/reline-0.5.9/README.md +94 -0
  126. data/vendor/bundle/ruby/3.3.0/gems/rexml-3.3.6/LICENSE.txt +22 -0
  127. data/vendor/bundle/ruby/3.3.0/gems/rexml-3.3.6/README.md +57 -0
  128. data/vendor/bundle/ruby/3.3.0/gems/rspec-3.13.0/LICENSE.md +27 -0
  129. data/vendor/bundle/ruby/3.3.0/gems/rspec-3.13.0/README.md +47 -0
  130. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.0/LICENSE.md +26 -0
  131. data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.0/README.md +389 -0
  132. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.2/LICENSE.md +25 -0
  133. data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.2/README.md +326 -0
  134. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.1/LICENSE.md +25 -0
  135. data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.1/README.md +465 -0
  136. data/vendor/bundle/ruby/3.3.0/gems/rspec-rails-6.1.4/LICENSE.md +25 -0
  137. data/vendor/bundle/ruby/3.3.0/gems/rspec-rails-6.1.4/README.md +381 -0
  138. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.1/LICENSE.md +23 -0
  139. data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.1/README.md +40 -0
  140. data/vendor/bundle/ruby/3.3.0/gems/rubocop-1.65.1/LICENSE.txt +20 -0
  141. data/vendor/bundle/ruby/3.3.0/gems/rubocop-1.65.1/README.md +251 -0
  142. data/vendor/bundle/ruby/3.3.0/gems/rubocop-ast-1.32.1/LICENSE.txt +20 -0
  143. data/vendor/bundle/ruby/3.3.0/gems/rubocop-ast-1.32.1/README.md +56 -0
  144. data/vendor/bundle/ruby/3.3.0/gems/rubocop-capybara-2.21.0/CHANGELOG.md +85 -0
  145. data/vendor/bundle/ruby/3.3.0/gems/rubocop-capybara-2.21.0/MIT-LICENSE.md +21 -0
  146. data/vendor/bundle/ruby/3.3.0/gems/rubocop-capybara-2.21.0/README.md +88 -0
  147. data/vendor/bundle/ruby/3.3.0/gems/rubocop-factory_bot-2.26.1/CHANGELOG.md +116 -0
  148. data/vendor/bundle/ruby/3.3.0/gems/rubocop-factory_bot-2.26.1/MIT-LICENSE.md +21 -0
  149. data/vendor/bundle/ruby/3.3.0/gems/rubocop-factory_bot-2.26.1/README.md +88 -0
  150. data/vendor/bundle/ruby/3.3.0/gems/rubocop-performance-1.21.1/LICENSE.txt +20 -0
  151. data/vendor/bundle/ruby/3.3.0/gems/rubocop-performance-1.21.1/README.md +97 -0
  152. data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec-3.0.4/CHANGELOG.md +1028 -0
  153. data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec-3.0.4/MIT-LICENSE.md +21 -0
  154. data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec-3.0.4/README.md +109 -0
  155. data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec_rails-2.30.0/CHANGELOG.md +84 -0
  156. data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec_rails-2.30.0/MIT-LICENSE.md +21 -0
  157. data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec_rails-2.30.0/README.md +90 -0
  158. data/vendor/bundle/ruby/3.3.0/gems/ruby-progressbar-1.13.0/LICENSE.txt +19 -0
  159. data/vendor/bundle/ruby/3.3.0/gems/ruby-progressbar-1.13.0/README.md +131 -0
  160. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/CHANGELOG.md +191 -0
  161. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/LICENSE +20 -0
  162. data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/README.md +974 -0
  163. data/vendor/bundle/ruby/3.3.0/gems/simplecov-cobertura-2.1.0/LICENSE +202 -0
  164. data/vendor/bundle/ruby/3.3.0/gems/simplecov-cobertura-2.1.0/README.md +62 -0
  165. data/vendor/bundle/ruby/3.3.0/gems/simplecov-cobertura-2.1.0/simplecov-cobertura.gemspec +29 -0
  166. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.12.3/CHANGELOG.md +81 -0
  167. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.12.3/LICENSE +20 -0
  168. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.12.3/README.md +30 -0
  169. data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.12.3/simplecov-html.gemspec +23 -0
  170. data/vendor/bundle/ruby/3.3.0/gems/simplecov_json_formatter-0.1.4/CHANGELOG.md +13 -0
  171. data/vendor/bundle/ruby/3.3.0/gems/simplecov_json_formatter-0.1.4/README.md +29 -0
  172. data/vendor/bundle/ruby/3.3.0/gems/strscan-3.1.0/LICENSE.txt +22 -0
  173. data/vendor/bundle/ruby/3.3.0/gems/thor-1.3.1/LICENSE.md +20 -0
  174. data/vendor/bundle/ruby/3.3.0/gems/thor-1.3.1/README.md +45 -0
  175. data/vendor/bundle/ruby/3.3.0/gems/thor-1.3.1/thor.gemspec +33 -0
  176. data/vendor/bundle/ruby/3.3.0/gems/tzinfo-2.0.6/LICENSE +19 -0
  177. data/vendor/bundle/ruby/3.3.0/gems/tzinfo-2.0.6/README.md +406 -0
  178. data/vendor/bundle/ruby/3.3.0/gems/unicode-display_width-2.5.0/CHANGELOG.md +196 -0
  179. data/vendor/bundle/ruby/3.3.0/gems/unicode-display_width-2.5.0/MIT-LICENSE.txt +22 -0
  180. data/vendor/bundle/ruby/3.3.0/gems/unicode-display_width-2.5.0/README.md +171 -0
  181. data/vendor/bundle/ruby/3.3.0/gems/useragent-0.16.10/LICENSE +20 -0
  182. data/vendor/bundle/ruby/3.3.0/gems/useragent-0.16.10/README.md +42 -0
  183. data/vendor/bundle/ruby/3.3.0/gems/webrick-1.8.1/LICENSE.txt +22 -0
  184. data/vendor/bundle/ruby/3.3.0/gems/webrick-1.8.1/README.md +61 -0
  185. data/vendor/bundle/ruby/3.3.0/gems/webrick-1.8.1/webrick.gemspec +70 -0
  186. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.6.17/MIT-LICENSE +20 -0
  187. data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.6.17/README.md +1494 -0
  188. data/vendor/bundle/ruby/3.3.0/specifications/actionpack-7.2.1.gemspec +37 -0
  189. data/vendor/bundle/ruby/3.3.0/specifications/actionview-7.2.1.gemspec +33 -0
  190. data/vendor/bundle/ruby/3.3.0/specifications/activesupport-7.2.1.gemspec +36 -0
  191. data/vendor/bundle/ruby/3.3.0/specifications/addressable-2.8.7.gemspec +30 -0
  192. data/vendor/bundle/ruby/3.3.0/specifications/appraisal-2.5.0.gemspec +31 -0
  193. data/vendor/bundle/ruby/3.3.0/specifications/ast-2.4.2.gemspec +30 -0
  194. data/vendor/bundle/ruby/3.3.0/specifications/benchmark-ips-2.13.0.gemspec +28 -0
  195. data/vendor/bundle/ruby/3.3.0/specifications/bigdecimal-3.1.8.gemspec +25 -0
  196. data/vendor/bundle/ruby/3.3.0/specifications/builder-3.3.0.gemspec +22 -0
  197. data/vendor/bundle/ruby/3.3.0/specifications/byebug-11.1.3.gemspec +31 -0
  198. data/vendor/bundle/ruby/3.3.0/specifications/coderay-1.1.3.gemspec +25 -0
  199. data/vendor/bundle/ruby/3.3.0/specifications/concurrent-ruby-1.3.4.gemspec +24 -0
  200. data/vendor/bundle/ruby/3.3.0/specifications/connection_pool-2.4.1.gemspec +28 -0
  201. data/vendor/bundle/ruby/3.3.0/specifications/crass-1.0.6.gemspec +27 -0
  202. data/vendor/bundle/ruby/3.3.0/specifications/diff-lcs-1.5.1.gemspec +37 -0
  203. data/vendor/bundle/ruby/3.3.0/specifications/docile-1.4.1.gemspec +22 -0
  204. data/vendor/bundle/ruby/3.3.0/specifications/drb-2.2.1.gemspec +22 -0
  205. data/vendor/bundle/ruby/3.3.0/specifications/erubi-1.13.0.gemspec +29 -0
  206. data/vendor/bundle/ruby/3.3.0/specifications/i18n-1.14.5.gemspec +26 -0
  207. data/vendor/bundle/ruby/3.3.0/specifications/io-console-0.7.2.gemspec +25 -0
  208. data/vendor/bundle/ruby/3.3.0/specifications/irb-1.14.0.gemspec +30 -0
  209. data/vendor/bundle/ruby/3.3.0/specifications/json-2.7.2.gemspec +0 -0
  210. data/vendor/bundle/ruby/3.3.0/specifications/language_server-protocol-3.17.0.3.gemspec +31 -0
  211. data/vendor/bundle/ruby/3.3.0/specifications/loofah-2.22.0.gemspec +27 -0
  212. data/vendor/bundle/ruby/3.3.0/specifications/method_source-1.1.0.gemspec +21 -0
  213. data/vendor/bundle/ruby/3.3.0/specifications/minitest-5.25.1.gemspec +31 -0
  214. data/vendor/bundle/ruby/3.3.0/specifications/nokogiri-1.16.7-x86_64-linux.gemspec +31 -0
  215. data/vendor/bundle/ruby/3.3.0/specifications/parallel-1.26.3.gemspec +21 -0
  216. data/vendor/bundle/ruby/3.3.0/specifications/parser-3.3.4.2.gemspec +37 -0
  217. data/vendor/bundle/ruby/3.3.0/specifications/pry-0.14.2.gemspec +29 -0
  218. data/vendor/bundle/ruby/3.3.0/specifications/pry-byebug-3.10.1.gemspec +28 -0
  219. data/vendor/bundle/ruby/3.3.0/specifications/public_suffix-6.0.1.gemspec +24 -0
  220. data/vendor/bundle/ruby/3.3.0/specifications/racc-1.8.1.gemspec +28 -0
  221. data/vendor/bundle/ruby/3.3.0/specifications/rack-3.1.7.gemspec +31 -0
  222. data/vendor/bundle/ruby/3.3.0/specifications/rack-session-2.0.0.gemspec +28 -0
  223. data/vendor/bundle/ruby/3.3.0/specifications/rack-test-2.1.0.gemspec +29 -0
  224. data/vendor/bundle/ruby/3.3.0/specifications/rackup-2.1.0.gemspec +31 -0
  225. data/vendor/bundle/ruby/3.3.0/specifications/rails-dom-testing-2.2.0.gemspec +28 -0
  226. data/vendor/bundle/ruby/3.3.0/specifications/rails-html-sanitizer-1.6.0.gemspec +27 -0
  227. data/vendor/bundle/ruby/3.3.0/specifications/railties-7.2.1.gemspec +37 -0
  228. data/vendor/bundle/ruby/3.3.0/specifications/rainbow-3.1.1.gemspec +25 -0
  229. data/vendor/bundle/ruby/3.3.0/specifications/rake-13.2.1.gemspec +26 -0
  230. data/vendor/bundle/ruby/3.3.0/specifications/rake-release-1.3.0.gemspec +26 -0
  231. data/vendor/bundle/ruby/3.3.0/specifications/rdoc-6.7.0.gemspec +31 -0
  232. data/vendor/bundle/ruby/3.3.0/specifications/regexp_parser-2.9.2.gemspec +22 -0
  233. data/vendor/bundle/ruby/3.3.0/specifications/reline-0.5.9.gemspec +26 -0
  234. data/vendor/bundle/ruby/3.3.0/specifications/rexml-3.3.6.gemspec +29 -0
  235. data/vendor/bundle/ruby/3.3.0/specifications/rspec-3.13.0.gemspec +31 -0
  236. data/vendor/bundle/ruby/3.3.0/specifications/rspec-core-3.13.0.gemspec +39 -0
  237. data/vendor/bundle/ruby/3.3.0/specifications/rspec-expectations-3.13.2.gemspec +33 -0
  238. data/vendor/bundle/ruby/3.3.0/specifications/rspec-mocks-3.13.1.gemspec +33 -0
  239. data/vendor/bundle/ruby/3.3.0/specifications/rspec-rails-6.1.4.gemspec +37 -0
  240. data/vendor/bundle/ruby/3.3.0/specifications/rspec-support-3.13.1.gemspec +29 -0
  241. data/vendor/bundle/ruby/3.3.0/specifications/rubocop-1.65.1.gemspec +39 -0
  242. data/vendor/bundle/ruby/3.3.0/specifications/rubocop-ast-1.32.1.gemspec +28 -0
  243. data/vendor/bundle/ruby/3.3.0/specifications/rubocop-capybara-2.21.0.gemspec +27 -0
  244. data/vendor/bundle/ruby/3.3.0/specifications/rubocop-factory_bot-2.26.1.gemspec +27 -0
  245. data/vendor/bundle/ruby/3.3.0/specifications/rubocop-performance-1.21.1.gemspec +29 -0
  246. data/vendor/bundle/ruby/3.3.0/specifications/rubocop-rspec-3.0.4.gemspec +28 -0
  247. data/vendor/bundle/ruby/3.3.0/specifications/rubocop-rspec_rails-2.30.0.gemspec +28 -0
  248. data/vendor/bundle/ruby/3.3.0/specifications/ruby-progressbar-1.13.0.gemspec +29 -0
  249. data/vendor/bundle/ruby/3.3.0/specifications/simplecov-0.22.0.gemspec +28 -0
  250. data/vendor/bundle/ruby/3.3.0/specifications/simplecov-cobertura-2.1.0.gemspec +29 -0
  251. data/vendor/bundle/ruby/3.3.0/specifications/simplecov-html-0.12.3.gemspec +21 -0
  252. data/vendor/bundle/ruby/3.3.0/specifications/simplecov_json_formatter-0.1.4.gemspec +21 -0
  253. data/vendor/bundle/ruby/3.3.0/specifications/strscan-3.1.0.gemspec +24 -0
  254. data/vendor/bundle/ruby/3.3.0/specifications/thor-1.3.1.gemspec +28 -0
  255. data/vendor/bundle/ruby/3.3.0/specifications/tzinfo-2.0.6.gemspec +30 -0
  256. data/vendor/bundle/ruby/3.3.0/specifications/unicode-display_width-2.5.0.gemspec +29 -0
  257. data/vendor/bundle/ruby/3.3.0/specifications/useragent-0.16.10.gemspec +25 -0
  258. data/vendor/bundle/ruby/3.3.0/specifications/webrick-1.8.1.gemspec +22 -0
  259. data/vendor/bundle/ruby/3.3.0/specifications/zeitwerk-2.6.17.gemspec +22 -0
  260. metadata +258 -6
  261. data/spec/dummy/log/test.log +0 -192
@@ -0,0 +1,201 @@
1
+ ## 1.6.0 / 2023-05-26
2
+
3
+ * Dependencies have been updated:
4
+
5
+ - Loofah `~>2.21` and Nokogiri `~>1.14` for HTML5 parser support
6
+ - As a result, required Ruby version is now `>= 2.7.0`
7
+
8
+ Security updates will continue to be made on the `1.5.x` release branch as long as Rails 6.1
9
+ (which supports Ruby 2.5) is still in security support.
10
+
11
+ *Mike Dalessio*
12
+
13
+ * HTML5 standards-compliant sanitizers are now available on platforms supported by
14
+ Nokogiri::HTML5. These are available as:
15
+
16
+ - `Rails::HTML5::FullSanitizer`
17
+ - `Rails::HTML5::LinkSanitizer`
18
+ - `Rails::HTML5::SafeListSanitizer`
19
+
20
+ And a new "vendor" is provided at `Rails::HTML5::Sanitizer` that can be used in a future version
21
+ of Rails.
22
+
23
+ Note that for symmetry `Rails::HTML4::Sanitizer` is also added, though its behavior is identical
24
+ to the vendor class methods on `Rails::HTML::Sanitizer`.
25
+
26
+ Users may call `Rails::HTML::Sanitizer.best_supported_vendor` to get back the HTML5 vendor if it's
27
+ supported, else the legacy HTML4 vendor.
28
+
29
+ *Mike Dalessio*
30
+
31
+ * Module namespaces have changed, but backwards compatibility is provided by aliases.
32
+
33
+ The library defines three additional modules:
34
+
35
+ - `Rails::HTML` for general functionality (replacing `Rails::Html`)
36
+ - `Rails::HTML4` containing sanitizers that parse content as HTML4
37
+ - `Rails::HTML5` containing sanitizers that parse content as HTML5
38
+
39
+ The following aliases are maintained for backwards compatibility:
40
+
41
+ - `Rails::Html` points to `Rails::HTML`
42
+ - `Rails::HTML::FullSanitizer` points to `Rails::HTML4::FullSanitizer`
43
+ - `Rails::HTML::LinkSanitizer` points to `Rails::HTML4::LinkSanitizer`
44
+ - `Rails::HTML::SafeListSanitizer` points to `Rails::HTML4::SafeListSanitizer`
45
+
46
+ *Mike Dalessio*
47
+
48
+ * `LinkSanitizer` always returns UTF-8 encoded strings. `SafeListSanitizer` and `FullSanitizer`
49
+ already ensured this encoding.
50
+
51
+ *Mike Dalessio*
52
+
53
+ * `SafeListSanitizer` allows `time` tag and `lang` attribute by default.
54
+
55
+ *Mike Dalessio*
56
+
57
+ * The constant `Rails::Html::XPATHS_TO_REMOVE` has been removed. It's not necessary with the
58
+ existing sanitizers, and should have been a private constant all along anyway.
59
+
60
+ *Mike Dalessio*
61
+
62
+
63
+ ## 1.5.0 / 2023-01-20
64
+
65
+ * `SafeListSanitizer`, `PermitScrubber`, and `TargetScrubber` now all support pruning of unsafe tags.
66
+
67
+ By default, unsafe tags are still stripped, but this behavior can be changed to prune the element
68
+ and its children from the document by passing `prune: true` to any of these classes' constructors.
69
+
70
+ *seyerian*
71
+
72
+
73
+ ## 1.4.4 / 2022-12-13
74
+
75
+ * Address inefficient regular expression complexity with certain configurations of Rails::Html::Sanitizer.
76
+
77
+ Fixes CVE-2022-23517. See
78
+ [GHSA-5x79-w82f-gw8w](https://github.com/rails/rails-html-sanitizer/security/advisories/GHSA-5x79-w82f-gw8w)
79
+ for more information.
80
+
81
+ *Mike Dalessio*
82
+
83
+ * Address improper sanitization of data URIs.
84
+
85
+ Fixes CVE-2022-23518 and #135. See
86
+ [GHSA-mcvf-2q2m-x72m](https://github.com/rails/rails-html-sanitizer/security/advisories/GHSA-mcvf-2q2m-x72m)
87
+ for more information.
88
+
89
+ *Mike Dalessio*
90
+
91
+ * Address possible XSS vulnerability with certain configurations of Rails::Html::Sanitizer.
92
+
93
+ Fixes CVE-2022-23520. See
94
+ [GHSA-rrfc-7g8p-99q8](https://github.com/rails/rails-html-sanitizer/security/advisories/GHSA-rrfc-7g8p-99q8)
95
+ for more information.
96
+
97
+ *Mike Dalessio*
98
+
99
+ * Address possible XSS vulnerability with certain configurations of Rails::Html::Sanitizer.
100
+
101
+ Fixes CVE-2022-23519. See
102
+ [GHSA-9h9g-93gc-623h](https://github.com/rails/rails-html-sanitizer/security/advisories/GHSA-9h9g-93gc-623h)
103
+ for more information.
104
+
105
+ *Mike Dalessio*
106
+
107
+
108
+ ## 1.4.3 / 2022-06-09
109
+
110
+ * Address a possible XSS vulnerability with certain configurations of Rails::Html::Sanitizer.
111
+
112
+ Prevent the combination of `select` and `style` as allowed tags in SafeListSanitizer.
113
+
114
+ Fixes CVE-2022-32209
115
+
116
+ *Mike Dalessio*
117
+
118
+
119
+ ## 1.4.2 / 2021-08-23
120
+
121
+ * Slightly improve performance.
122
+
123
+ Assuming elements are more common than comments, make one less method call per node.
124
+
125
+ *Mike Dalessio*
126
+
127
+
128
+ ## 1.4.1 / 2021-08-18
129
+
130
+ * Fix regression in v1.4.0 that did not pass comment nodes to the scrubber.
131
+
132
+ Some scrubbers will want to override the default behavior and allow comments, but v1.4.0 only
133
+ passed through elements to the scrubber's `keep_node?` method.
134
+
135
+ This change once again allows the scrubber to make the decision on comment nodes, but still skips
136
+ other non-elements like processing instructions (see #115).
137
+
138
+ *Mike Dalessio*
139
+
140
+
141
+ ## 1.4.0 / 2021-08-18
142
+
143
+ * Processing Instructions are no longer allowed by Rails::Html::PermitScrubber
144
+
145
+ Previously, a PI with a name (or "target") matching an allowed tag name was not scrubbed. There
146
+ are no known security issues associated with these PIs, but similar to comments it's preferred to
147
+ omit these nodes when possible from sanitized output.
148
+
149
+ Fixes #115.
150
+
151
+ *Mike Dalessio*
152
+
153
+
154
+ ## 1.3.0
155
+
156
+ * Address deprecations in Loofah 2.3.0.
157
+
158
+ *Josh Goodall*
159
+
160
+
161
+ ## 1.2.0
162
+
163
+ * Remove needless `white_list_sanitizer` deprecation.
164
+
165
+ By deprecating this, we were forcing Rails 5.2 to be updated or spew
166
+ deprecations that users could do nothing about.
167
+
168
+ That's pointless and I'm sorry for adding that!
169
+
170
+ Now there's no deprecation warning and Rails 5.2 works out of the box, while
171
+ Rails 6 can use the updated naming.
172
+
173
+ *Kasper Timm Hansen*
174
+
175
+
176
+ ## 1.1.0
177
+
178
+ * Add `safe_list_sanitizer` and deprecate `white_list_sanitizer` to be removed
179
+ in 1.2.0. https://github.com/rails/rails-html-sanitizer/pull/87
180
+
181
+ *Juanito Fatas*
182
+
183
+ * Remove `href` from LinkScrubber's `tags` as it's not an element.
184
+ https://github.com/rails/rails-html-sanitizer/pull/92
185
+
186
+ *Juanito Fatas*
187
+
188
+ * Explain that we don't need to bump Loofah here if there's CVEs.
189
+ https://github.com/rails/rails-html-sanitizer/commit/d4d823c617fdd0064956047f7fbf23fff305a69b
190
+
191
+ *Kasper Timm Hansen*
192
+
193
+
194
+ ## 1.0.1
195
+
196
+ * Added support for Rails 4.2.0.beta2 and above
197
+
198
+
199
+ ## 1.0.0
200
+
201
+ * First release.
@@ -0,0 +1,23 @@
1
+ Copyright (c) 2013-2023 Rafael Mendonça França, Kasper Timm Hansen, Mike Dalessio
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
+
@@ -0,0 +1,271 @@
1
+ # Rails HTML Sanitizers
2
+
3
+ This gem is responsible for sanitizing HTML fragments in Rails applications. Specifically, this is the set of sanitizers used to implement the Action View `SanitizerHelper` methods `sanitize`, `sanitize_css`, `strip_tags` and `strip_links`.
4
+
5
+ Rails HTML Sanitizer is only intended to be used with Rails applications. If you need similar functionality but aren't using Rails, consider using the underlying sanitization library [Loofah](https://github.com/flavorjones/loofah) directly.
6
+
7
+
8
+ ## Usage
9
+
10
+ ### Sanitizers
11
+
12
+ All sanitizers respond to `sanitize`, and are available in variants that use either HTML4 or HTML5 parsing, under the `Rails::HTML4` and `Rails::HTML5` namespaces, respectively.
13
+
14
+ NOTE: The HTML5 sanitizers are not supported on JRuby. Users may programmatically check for support by calling `Rails::HTML::Sanitizer.html5_support?`.
15
+
16
+
17
+ #### FullSanitizer
18
+
19
+ ```ruby
20
+ full_sanitizer = Rails::HTML5::FullSanitizer.new
21
+ full_sanitizer.sanitize("<b>Bold</b> no more! <a href='more.html'>See more here</a>...")
22
+ # => Bold no more! See more here...
23
+ ```
24
+
25
+ or, if you insist on parsing the content as HTML4:
26
+
27
+ ```ruby
28
+ full_sanitizer = Rails::HTML4::FullSanitizer.new
29
+ full_sanitizer.sanitize("<b>Bold</b> no more! <a href='more.html'>See more here</a>...")
30
+ # => Bold no more! See more here...
31
+ ```
32
+
33
+ HTML5 version:
34
+
35
+
36
+
37
+ #### LinkSanitizer
38
+
39
+ ```ruby
40
+ link_sanitizer = Rails::HTML5::LinkSanitizer.new
41
+ link_sanitizer.sanitize('<a href="example.com">Only the link text will be kept.</a>')
42
+ # => Only the link text will be kept.
43
+ ```
44
+
45
+ or, if you insist on parsing the content as HTML4:
46
+
47
+ ```ruby
48
+ link_sanitizer = Rails::HTML4::LinkSanitizer.new
49
+ link_sanitizer.sanitize('<a href="example.com">Only the link text will be kept.</a>')
50
+ # => Only the link text will be kept.
51
+ ```
52
+
53
+
54
+ #### SafeListSanitizer
55
+
56
+ This sanitizer is also available as an HTML4 variant, but for simplicity we'll document only the HTML5 variant below.
57
+
58
+ ```ruby
59
+ safe_list_sanitizer = Rails::HTML5::SafeListSanitizer.new
60
+
61
+ # sanitize via an extensive safe list of allowed elements
62
+ safe_list_sanitizer.sanitize(@article.body)
63
+
64
+ # sanitize only the supplied tags and attributes
65
+ safe_list_sanitizer.sanitize(@article.body, tags: %w(table tr td), attributes: %w(id class style))
66
+
67
+ # sanitize via a custom scrubber
68
+ safe_list_sanitizer.sanitize(@article.body, scrubber: ArticleScrubber.new)
69
+
70
+ # prune nodes from the tree instead of stripping tags and leaving inner content
71
+ safe_list_sanitizer = Rails::HTML5::SafeListSanitizer.new(prune: true)
72
+
73
+ # the sanitizer can also sanitize css
74
+ safe_list_sanitizer.sanitize_css('background-color: #000;')
75
+ ```
76
+
77
+ ### Scrubbers
78
+
79
+ Scrubbers are objects responsible for removing nodes or attributes you don't want in your HTML document.
80
+
81
+ This gem includes two scrubbers `Rails::HTML::PermitScrubber` and `Rails::HTML::TargetScrubber`.
82
+
83
+ #### `Rails::HTML::PermitScrubber`
84
+
85
+ This scrubber allows you to permit only the tags and attributes you want.
86
+
87
+ ```ruby
88
+ scrubber = Rails::HTML::PermitScrubber.new
89
+ scrubber.tags = ['a']
90
+
91
+ html_fragment = Loofah.fragment('<a><img/ ></a>')
92
+ html_fragment.scrub!(scrubber)
93
+ html_fragment.to_s # => "<a></a>"
94
+ ```
95
+
96
+ By default, inner content is left, but it can be removed as well.
97
+
98
+ ```ruby
99
+ scrubber = Rails::HTML::PermitScrubber.new
100
+ scrubber.tags = ['a']
101
+
102
+ html_fragment = Loofah.fragment('<a><span>text</span></a>')
103
+ html_fragment.scrub!(scrubber)
104
+ html_fragment.to_s # => "<a>text</a>"
105
+
106
+ scrubber = Rails::HTML::PermitScrubber.new(prune: true)
107
+ scrubber.tags = ['a']
108
+
109
+ html_fragment = Loofah.fragment('<a><span>text</span></a>')
110
+ html_fragment.scrub!(scrubber)
111
+ html_fragment.to_s # => "<a></a>"
112
+ ```
113
+
114
+ #### `Rails::HTML::TargetScrubber`
115
+
116
+ Where `PermitScrubber` picks out tags and attributes to permit in sanitization,
117
+ `Rails::HTML::TargetScrubber` targets them for removal. See https://github.com/flavorjones/loofah/blob/main/lib/loofah/html5/safelist.rb for the tag list.
118
+
119
+ **Note:** by default, it will scrub anything that is not part of the permitted tags from
120
+ loofah `HTML5::Scrub.allowed_element?`.
121
+
122
+ ```ruby
123
+ scrubber = Rails::HTML::TargetScrubber.new
124
+ scrubber.tags = ['img']
125
+
126
+ html_fragment = Loofah.fragment('<a><img/ ></a>')
127
+ html_fragment.scrub!(scrubber)
128
+ html_fragment.to_s # => "<a></a>"
129
+ ```
130
+
131
+ Similarly to `PermitScrubber`, nodes can be fully pruned.
132
+
133
+ ```ruby
134
+ scrubber = Rails::HTML::TargetScrubber.new
135
+ scrubber.tags = ['span']
136
+
137
+ html_fragment = Loofah.fragment('<a><span>text</span></a>')
138
+ html_fragment.scrub!(scrubber)
139
+ html_fragment.to_s # => "<a>text</a>"
140
+
141
+ scrubber = Rails::HTML::TargetScrubber.new(prune: true)
142
+ scrubber.tags = ['span']
143
+
144
+ html_fragment = Loofah.fragment('<a><span>text</span></a>')
145
+ html_fragment.scrub!(scrubber)
146
+ html_fragment.to_s # => "<a></a>"
147
+ ```
148
+
149
+ #### Custom Scrubbers
150
+
151
+ You can also create custom scrubbers in your application if you want to.
152
+
153
+ ```ruby
154
+ class CommentScrubber < Rails::HTML::PermitScrubber
155
+ def initialize
156
+ super
157
+ self.tags = %w( form script comment blockquote )
158
+ self.attributes = %w( style )
159
+ end
160
+
161
+ def skip_node?(node)
162
+ node.text?
163
+ end
164
+ end
165
+ ```
166
+
167
+ See `Rails::HTML::PermitScrubber` documentation to learn more about which methods can be overridden.
168
+
169
+ #### Custom Scrubber in a Rails app
170
+
171
+ Using the `CommentScrubber` from above, you can use this in a Rails view like so:
172
+
173
+ ```ruby
174
+ <%= sanitize @comment, scrubber: CommentScrubber.new %>
175
+ ```
176
+
177
+ ### A note on HTML entities
178
+
179
+ __Rails HTML sanitizers are intended to be used by the view layer, at page-render time. They are *not* intended to sanitize persisted strings that will be sanitized *again* at page-render time.__
180
+
181
+ Proper HTML sanitization will replace some characters with HTML entities. For example, text containing a `<` character will be updated to contain `&lt;` to ensure that the markup is well-formed.
182
+
183
+ This is important to keep in mind because __HTML entities will render improperly if they are sanitized twice.__
184
+
185
+
186
+ #### A concrete example showing the problem that can arise
187
+
188
+ Imagine the user is asked to enter their employer's name, which will appear on their public profile page. Then imagine they enter `JPMorgan Chase & Co.`.
189
+
190
+ If you sanitize this before persisting it in the database, the stored string will be `JPMorgan Chase &amp; Co.`
191
+
192
+ When the page is rendered, if this string is sanitized a second time by the view layer, the HTML will contain `JPMorgan Chase &amp;amp; Co.` which will render as "JPMorgan Chase &amp;amp; Co.".
193
+
194
+ Another problem that can arise is rendering the sanitized string in a non-HTML context (for example, if it ends up being part of an SMS message). In this case, it may contain inappropriate HTML entities.
195
+
196
+
197
+ #### Suggested alternatives
198
+
199
+ You might simply choose to persist the untrusted string as-is (the raw input), and then ensure that the string will be properly sanitized by the view layer.
200
+
201
+ That raw string, if rendered in an non-HTML context (like SMS), must also be sanitized by a method appropriate for that context. You may wish to look into using [Loofah](https://github.com/flavorjones/loofah) or [Sanitize](https://github.com/rgrove/sanitize) to customize how this sanitization works, including omitting HTML entities in the final string.
202
+
203
+ If you really want to sanitize the string that's stored in your database, you may wish to look into [Loofah::ActiveRecord](https://github.com/flavorjones/loofah-activerecord) rather than use the Rails HTML sanitizers.
204
+
205
+
206
+ ### A note on module names
207
+
208
+ In versions < 1.6, the only module defined by this library was `Rails::Html`. Starting in 1.6, we define three additional modules:
209
+
210
+ - `Rails::HTML` for general functionality (replacing `Rails::Html`)
211
+ - `Rails::HTML4` containing sanitizers that parse content as HTML4
212
+ - `Rails::HTML5` containing sanitizers that parse content as HTML5 (if supported)
213
+
214
+ The following aliases are maintained for backwards compatibility:
215
+
216
+ - `Rails::Html` points to `Rails::HTML`
217
+ - `Rails::HTML::FullSanitizer` points to `Rails::HTML4::FullSanitizer`
218
+ - `Rails::HTML::LinkSanitizer` points to `Rails::HTML4::LinkSanitizer`
219
+ - `Rails::HTML::SafeListSanitizer` points to `Rails::HTML4::SafeListSanitizer`
220
+
221
+
222
+ ## Installation
223
+
224
+ Add this line to your application's Gemfile:
225
+
226
+ gem 'rails-html-sanitizer'
227
+
228
+ And then execute:
229
+
230
+ $ bundle
231
+
232
+ Or install it yourself as:
233
+
234
+ $ gem install rails-html-sanitizer
235
+
236
+
237
+ ## Support matrix
238
+
239
+ | branch | ruby support | actively maintained | security support |
240
+ |--------|--------------|---------------------|----------------------------------------|
241
+ | 1.6.x | >= 2.7 | yes | yes |
242
+ | 1.5.x | >= 2.5 | no | while Rails 6.1 is in security support |
243
+ | 1.4.x | >= 1.8.7 | no | no |
244
+
245
+
246
+ ## Read more
247
+
248
+ Loofah is what underlies the sanitizers and scrubbers of rails-html-sanitizer.
249
+
250
+ - [Loofah and Loofah Scrubbers](https://github.com/flavorjones/loofah)
251
+
252
+ The `node` argument passed to some methods in a custom scrubber is an instance of `Nokogiri::XML::Node`.
253
+
254
+ - [`Nokogiri::XML::Node`](https://nokogiri.org/rdoc/Nokogiri/XML/Node.html)
255
+ - [Nokogiri](http://nokogiri.org)
256
+
257
+
258
+ ## Contributing to Rails HTML Sanitizers
259
+
260
+ Rails HTML Sanitizers is work of many contributors. You're encouraged to submit pull requests, propose features and discuss issues.
261
+
262
+ See [CONTRIBUTING](CONTRIBUTING.md).
263
+
264
+ ### Security reports
265
+
266
+ Trying to report a possible security vulnerability in this project? Please check out the [Rails project's security policy](https://rubyonrails.org/security) for instructions.
267
+
268
+
269
+ ## License
270
+
271
+ Rails HTML Sanitizers is released under the [MIT License](MIT-LICENSE).