brakeman 7.0.2 → 7.1.1

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 (404) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +24 -0
  3. data/README.md +1 -1
  4. data/bundle/load.rb +10 -10
  5. data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/NEWS.md +20 -1
  6. data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv/parser.rb +1 -1
  7. data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv/version.rb +1 -1
  8. data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/CHANGELOG.md +180 -4
  9. data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/FAQ.md +1 -1
  10. data/bundle/ruby/3.1.0/gems/haml-6.4.0/Gemfile +34 -0
  11. data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/MIT-LICENSE +1 -1
  12. data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/README.md +23 -34
  13. data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/REFERENCE.md +100 -171
  14. data/bundle/ruby/3.1.0/gems/haml-6.4.0/exe/haml +6 -0
  15. data/bundle/ruby/3.1.0/gems/haml-6.4.0/haml.gemspec +45 -0
  16. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/ambles.rb +20 -0
  17. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/attribute_builder.rb +162 -0
  18. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/attribute_compiler.rb +133 -0
  19. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/attribute_parser.rb +116 -0
  20. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/cli.rb +154 -0
  21. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/compiler/children_compiler.rb +155 -0
  22. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/compiler/comment_compiler.rb +51 -0
  23. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/compiler/doctype_compiler.rb +52 -0
  24. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/compiler/script_compiler.rb +114 -0
  25. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/compiler/silent_script_compiler.rb +24 -0
  26. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/compiler/tag_compiler.rb +76 -0
  27. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/compiler.rb +97 -0
  28. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/dynamic_merger.rb +67 -0
  29. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/engine.rb +59 -0
  30. data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/lib/haml/error.rb +5 -4
  31. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/escape.rb +13 -0
  32. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/escape_any.rb +21 -0
  33. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/base.rb +12 -0
  34. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/cdata.rb +20 -0
  35. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/coffee.rb +17 -0
  36. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/css.rb +33 -0
  37. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/erb.rb +10 -0
  38. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/escaped.rb +22 -0
  39. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/javascript.rb +33 -0
  40. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/less.rb +20 -0
  41. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/markdown.rb +11 -0
  42. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/plain.rb +29 -0
  43. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/preserve.rb +22 -0
  44. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/ruby.rb +10 -0
  45. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/sass.rb +15 -0
  46. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/scss.rb +15 -0
  47. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/text_base.rb +25 -0
  48. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/tilt_base.rb +59 -0
  49. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters.rb +75 -0
  50. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/force_escape.rb +29 -0
  51. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/helpers.rb +15 -0
  52. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/html.rb +22 -0
  53. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/identity.rb +13 -0
  54. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/object_ref.rb +35 -0
  55. data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/lib/haml/parser.rb +159 -24
  56. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/rails_helpers.rb +53 -0
  57. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/rails_template.rb +62 -0
  58. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/railtie.rb +10 -0
  59. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/ruby_expression.rb +32 -0
  60. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/string_splitter.rb +140 -0
  61. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/template.rb +20 -0
  62. data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/lib/haml/temple_line_counter.rb +2 -1
  63. data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/lib/haml/util.rb +19 -15
  64. data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/lib/haml/version.rb +1 -2
  65. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/whitespace.rb +8 -0
  66. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml.rb +13 -0
  67. data/bundle/ruby/3.1.0/gems/parallel-1.27.0/lib/parallel/version.rb +4 -0
  68. data/bundle/ruby/3.1.0/gems/{parallel-1.26.3 → parallel-1.27.0}/lib/parallel.rb +1 -1
  69. data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/config.rb +5 -0
  70. data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/io/ansi.rb +7 -3
  71. data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/io.rb +2 -2
  72. data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/key_actor/emacs.rb +2 -2
  73. data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/line_editor.rb +10 -8
  74. data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/unicode/east_asian_width.rb +7 -8
  75. data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/unicode.rb +21 -15
  76. data/bundle/ruby/3.1.0/gems/reline-0.6.2/lib/reline/version.rb +3 -0
  77. data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline.rb +2 -3
  78. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/NEWS.md +145 -1
  79. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/attribute.rb +7 -8
  80. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/cdata.rb +1 -1
  81. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/child.rb +2 -3
  82. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/comment.rb +1 -1
  83. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/doctype.rb +3 -8
  84. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/document.rb +21 -5
  85. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/element.rb +53 -59
  86. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/encoding.rb +3 -6
  87. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/functions.rb +3 -3
  88. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/instruction.rb +1 -1
  89. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/namespace.rb +4 -4
  90. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/node.rb +2 -2
  91. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parsers/baseparser.rb +143 -81
  92. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parsers/xpathparser.rb +4 -4
  93. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/quickpath.rb +19 -18
  94. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/rexml.rb +1 -1
  95. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/security.rb +2 -2
  96. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/source.rb +7 -2
  97. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/text.rb +14 -17
  98. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/validation/relaxng.rb +27 -26
  99. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/validation/validation.rb +8 -8
  100. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/xpath.rb +2 -13
  101. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/xpath_parser.rb +44 -42
  102. data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/History.rdoc +8 -0
  103. data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/lib/pt_testcase.rb +1 -1
  104. data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/lib/sexp_processor.rb +1 -1
  105. data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/CHANGES +4 -0
  106. data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/encoding.rb +1 -1
  107. data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/version.rb +1 -1
  108. data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/template.rb +6 -1
  109. data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt.rb +1 -1
  110. data/bundle/ruby/3.1.0/gems/{unicode-display_width-3.1.4 → unicode-display_width-3.2.0}/CHANGELOG.md +8 -0
  111. data/bundle/ruby/3.1.0/gems/{unicode-display_width-3.1.4 → unicode-display_width-3.2.0}/README.md +5 -5
  112. data/bundle/ruby/3.1.0/gems/unicode-display_width-3.2.0/data/display_width.marshal.gz +0 -0
  113. data/bundle/ruby/3.1.0/gems/{unicode-display_width-3.1.4 → unicode-display_width-3.2.0}/lib/unicode/display_width/constants.rb +2 -2
  114. data/bundle/ruby/3.1.0/gems/{unicode-display_width-3.1.4 → unicode-display_width-3.2.0}/lib/unicode/display_width/emoji_support.rb +5 -2
  115. data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/CHANGELOG.md +5 -0
  116. data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/Gemfile.lock +1 -1
  117. data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/README.md +4 -4
  118. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/data/emoji.marshal.gz +0 -0
  119. data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/constants.rb +3 -3
  120. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex.rb +8 -0
  121. data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated/regex_basic.rb +1 -1
  122. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_include_mqe.rb +8 -0
  123. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_include_mqe_uqe.rb +8 -0
  124. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_include_text.rb +8 -0
  125. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_picto.rb +8 -0
  126. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_picto_no_emoji.rb +8 -0
  127. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_possible.rb +8 -0
  128. data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated/regex_prop_emoji.rb +1 -1
  129. data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated/regex_prop_presentation.rb +1 -1
  130. data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated/regex_text.rb +1 -1
  131. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_valid.rb +8 -0
  132. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_valid_include_text.rb +8 -0
  133. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_well_formed.rb +8 -0
  134. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_well_formed_include_text.rb +8 -0
  135. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated_native/regex.rb +8 -0
  136. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated_native/regex_include_mqe.rb +8 -0
  137. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated_native/regex_include_mqe_uqe.rb +8 -0
  138. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated_native/regex_include_text.rb +8 -0
  139. data/lib/brakeman/app_tree.rb +56 -9
  140. data/lib/brakeman/checks/base_check.rb +5 -2
  141. data/lib/brakeman/checks/check_eol_rails.rb +1 -0
  142. data/lib/brakeman/checks/check_eol_ruby.rb +1 -0
  143. data/lib/brakeman/checks/check_render.rb +5 -0
  144. data/lib/brakeman/checks/check_sql.rb +9 -2
  145. data/lib/brakeman/commandline.rb +5 -0
  146. data/lib/brakeman/file_path.rb +4 -0
  147. data/lib/brakeman/messages.rb +1 -1
  148. data/lib/brakeman/options.rb +4 -0
  149. data/lib/brakeman/parsers/haml6_embedded.rb +23 -0
  150. data/lib/brakeman/parsers/template_parser.rb +32 -7
  151. data/lib/brakeman/processor.rb +2 -0
  152. data/lib/brakeman/processors/alias_processor.rb +9 -0
  153. data/lib/brakeman/processors/base_processor.rb +2 -0
  154. data/lib/brakeman/processors/haml6_template_processor.rb +92 -0
  155. data/lib/brakeman/processors/haml_template_processor.rb +8 -2
  156. data/lib/brakeman/processors/lib/render_helper.rb +38 -1
  157. data/lib/brakeman/processors/template_processor.rb +1 -1
  158. data/lib/brakeman/report/pager.rb +1 -1
  159. data/lib/brakeman/report/report_html.rb +1 -1
  160. data/lib/brakeman/report/report_junit.rb +4 -57
  161. data/lib/brakeman/report/templates/header.html.erb +8 -3
  162. data/lib/brakeman/report/templates/ignored_warnings.html.erb +3 -3
  163. data/lib/brakeman/tracker.rb +6 -0
  164. data/lib/brakeman/version.rb +1 -1
  165. data/lib/brakeman.rb +4 -0
  166. metadata +327 -306
  167. data/bundle/ruby/3.1.0/gems/haml-5.2.2/Gemfile +0 -16
  168. data/bundle/ruby/3.1.0/gems/haml-5.2.2/TODO +0 -24
  169. data/bundle/ruby/3.1.0/gems/haml-5.2.2/haml.gemspec +0 -45
  170. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/attribute_builder.rb +0 -219
  171. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/attribute_compiler.rb +0 -237
  172. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/attribute_parser.rb +0 -150
  173. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/buffer.rb +0 -182
  174. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/compiler.rb +0 -330
  175. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/engine.rb +0 -238
  176. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/escapable.rb +0 -77
  177. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/exec.rb +0 -347
  178. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/filters.rb +0 -399
  179. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/generator.rb +0 -42
  180. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/action_view_extensions.rb +0 -60
  181. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/action_view_mods.rb +0 -132
  182. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/action_view_xss_mods.rb +0 -60
  183. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/safe_erubi_template.rb +0 -20
  184. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/safe_erubis_template.rb +0 -33
  185. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/xss_mods.rb +0 -114
  186. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers.rb +0 -709
  187. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/options.rb +0 -273
  188. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/plugin.rb +0 -54
  189. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/railtie.rb +0 -53
  190. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/sass_rails_filter.rb +0 -47
  191. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/template/options.rb +0 -27
  192. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/template.rb +0 -39
  193. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/temple_engine.rb +0 -124
  194. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml.rb +0 -25
  195. data/bundle/ruby/3.1.0/gems/haml-5.2.2/yard/default/fulldoc/html/css/common.sass +0 -15
  196. data/bundle/ruby/3.1.0/gems/haml-5.2.2/yard/default/layout/html/footer.erb +0 -12
  197. data/bundle/ruby/3.1.0/gems/parallel-1.26.3/lib/parallel/version.rb +0 -4
  198. data/bundle/ruby/3.1.0/gems/reline-0.6.1/lib/reline/version.rb +0 -3
  199. data/bundle/ruby/3.1.0/gems/unicode-display_width-3.1.4/data/display_width.marshal.gz +0 -0
  200. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/data/emoji.marshal.gz +0 -0
  201. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex.rb +0 -8
  202. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_include_mqe.rb +0 -8
  203. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_include_mqe_uqe.rb +0 -8
  204. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_include_text.rb +0 -8
  205. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_picto.rb +0 -8
  206. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_picto_no_emoji.rb +0 -8
  207. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_possible.rb +0 -8
  208. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_valid.rb +0 -8
  209. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_valid_include_text.rb +0 -8
  210. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_well_formed.rb +0 -8
  211. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_well_formed_include_text.rb +0 -8
  212. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex.rb +0 -8
  213. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_include_mqe.rb +0 -8
  214. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_include_mqe_uqe.rb +0 -8
  215. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_include_text.rb +0 -8
  216. /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/LICENSE.txt +0 -0
  217. /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/README.md +0 -0
  218. /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv/core_ext/array.rb +0 -0
  219. /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv/core_ext/string.rb +0 -0
  220. /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv/fields_converter.rb +0 -0
  221. /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv/input_record_separator.rb +0 -0
  222. /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv/row.rb +0 -0
  223. /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv/table.rb +0 -0
  224. /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv/writer.rb +0 -0
  225. /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv.rb +0 -0
  226. /data/bundle/ruby/3.1.0/gems/{parallel-1.26.3 → parallel-1.27.0}/MIT-LICENSE.txt +0 -0
  227. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/BSDL +0 -0
  228. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/COPYING +0 -0
  229. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/README.md +0 -0
  230. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/face.rb +0 -0
  231. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/history.rb +0 -0
  232. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/io/dumb.rb +0 -0
  233. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/io/windows.rb +0 -0
  234. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/key_actor/base.rb +0 -0
  235. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/key_actor/composite.rb +0 -0
  236. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/key_actor/vi_command.rb +0 -0
  237. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/key_actor/vi_insert.rb +0 -0
  238. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/key_actor.rb +0 -0
  239. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/key_stroke.rb +0 -0
  240. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/kill_ring.rb +0 -0
  241. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/license_of_rb-readline +0 -0
  242. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/LICENSE.txt +0 -0
  243. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/README.md +0 -0
  244. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/attlistdecl.rb +0 -0
  245. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/dtd/attlistdecl.rb +0 -0
  246. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/dtd/dtd.rb +0 -0
  247. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/dtd/elementdecl.rb +0 -0
  248. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/dtd/entitydecl.rb +0 -0
  249. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/dtd/notationdecl.rb +0 -0
  250. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/entity.rb +0 -0
  251. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/formatters/default.rb +0 -0
  252. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/formatters/pretty.rb +0 -0
  253. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/formatters/transitive.rb +0 -0
  254. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/light/node.rb +0 -0
  255. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/output.rb +0 -0
  256. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parent.rb +0 -0
  257. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parseexception.rb +0 -0
  258. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parsers/lightparser.rb +0 -0
  259. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parsers/pullparser.rb +0 -0
  260. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parsers/sax2parser.rb +0 -0
  261. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parsers/streamparser.rb +0 -0
  262. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parsers/treeparser.rb +0 -0
  263. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parsers/ultralightparser.rb +0 -0
  264. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/sax2listener.rb +0 -0
  265. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/streamlistener.rb +0 -0
  266. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/undefinednamespaceexception.rb +0 -0
  267. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/validation/validationexception.rb +0 -0
  268. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/xmldecl.rb +0 -0
  269. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/xmltokens.rb +0 -0
  270. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml.rb +0 -0
  271. /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/Manifest.txt +0 -0
  272. /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/README.rdoc +0 -0
  273. /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/lib/composite_sexp_processor.rb +0 -0
  274. /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/lib/sexp.rb +0 -0
  275. /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/lib/sexp_matcher.rb +0 -0
  276. /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/lib/strict_sexp.rb +0 -0
  277. /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/lib/unique.rb +0 -0
  278. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/EXPRESSIONS.md +0 -0
  279. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/Gemfile +0 -0
  280. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/LICENSE +0 -0
  281. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/README.md +0 -0
  282. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/engine.rb +0 -0
  283. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/erb/engine.rb +0 -0
  284. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/erb/parser.rb +0 -0
  285. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/erb/template.rb +0 -0
  286. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/erb/trimming.rb +0 -0
  287. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/exceptions.rb +0 -0
  288. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filter.rb +0 -0
  289. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/ambles.rb +0 -0
  290. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/code_merger.rb +0 -0
  291. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/control_flow.rb +0 -0
  292. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/dynamic_inliner.rb +0 -0
  293. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/dynamic_merger.rb +0 -0
  294. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/eraser.rb +0 -0
  295. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/escapable.rb +0 -0
  296. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/multi_flattener.rb +0 -0
  297. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/remove_bom.rb +0 -0
  298. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/static_analyzer.rb +0 -0
  299. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/static_merger.rb +0 -0
  300. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/string_splitter.rb +0 -0
  301. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/validator.rb +0 -0
  302. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/generator.rb +0 -0
  303. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/generators/array.rb +0 -0
  304. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/generators/array_buffer.rb +0 -0
  305. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/generators/erb.rb +0 -0
  306. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/generators/rails_output_buffer.rb +0 -0
  307. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/generators/string_buffer.rb +0 -0
  308. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/grammar.rb +0 -0
  309. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/html/attribute_merger.rb +0 -0
  310. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/html/attribute_remover.rb +0 -0
  311. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/html/attribute_sorter.rb +0 -0
  312. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/html/dispatcher.rb +0 -0
  313. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/html/fast.rb +0 -0
  314. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/html/filter.rb +0 -0
  315. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/html/pretty.rb +0 -0
  316. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/html/safe.rb +0 -0
  317. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/map.rb +0 -0
  318. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/mixins/dispatcher.rb +0 -0
  319. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/mixins/engine_dsl.rb +0 -0
  320. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/mixins/grammar_dsl.rb +0 -0
  321. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/mixins/options.rb +0 -0
  322. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/mixins/template.rb +0 -0
  323. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/parser.rb +0 -0
  324. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/static_analyzer.rb +0 -0
  325. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/templates/rails.rb +0 -0
  326. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/templates/tilt.rb +0 -0
  327. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/templates.rb +0 -0
  328. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/utils.rb +0 -0
  329. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple.rb +0 -0
  330. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/temple.gemspec +0 -0
  331. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/COPYING +0 -0
  332. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/_emacs_org.rb +0 -0
  333. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/_handlebars.rb +0 -0
  334. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/_jbuilder.rb +0 -0
  335. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/_org.rb +0 -0
  336. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/asciidoc.rb +0 -0
  337. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/babel.rb +0 -0
  338. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/builder.rb +0 -0
  339. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/cli.rb +0 -0
  340. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/coffee.rb +0 -0
  341. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/commonmarker.rb +0 -0
  342. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/creole.rb +0 -0
  343. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/csv.rb +0 -0
  344. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/erb.rb +0 -0
  345. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/erubi.rb +0 -0
  346. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/etanni.rb +0 -0
  347. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/haml.rb +0 -0
  348. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/kramdown.rb +0 -0
  349. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/liquid.rb +0 -0
  350. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/livescript.rb +0 -0
  351. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/mapping.rb +0 -0
  352. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/markaby.rb +0 -0
  353. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/nokogiri.rb +0 -0
  354. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/pandoc.rb +0 -0
  355. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/pipeline.rb +0 -0
  356. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/plain.rb +0 -0
  357. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/prawn.rb +0 -0
  358. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/radius.rb +0 -0
  359. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/rdiscount.rb +0 -0
  360. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/rdoc.rb +0 -0
  361. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/redcarpet.rb +0 -0
  362. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/redcloth.rb +0 -0
  363. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/rst-pandoc.rb +0 -0
  364. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/sass.rb +0 -0
  365. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/slim.rb +0 -0
  366. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/string.rb +0 -0
  367. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/typescript.rb +0 -0
  368. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/yajl.rb +0 -0
  369. /data/bundle/ruby/3.1.0/gems/{unicode-display_width-3.1.4 → unicode-display_width-3.2.0}/MIT-LICENSE.txt +0 -0
  370. /data/bundle/ruby/3.1.0/gems/{unicode-display_width-3.1.4 → unicode-display_width-3.2.0}/lib/unicode/display_width/index.rb +0 -0
  371. /data/bundle/ruby/3.1.0/gems/{unicode-display_width-3.1.4 → unicode-display_width-3.2.0}/lib/unicode/display_width/no_string_ext.rb +0 -0
  372. /data/bundle/ruby/3.1.0/gems/{unicode-display_width-3.1.4 → unicode-display_width-3.2.0}/lib/unicode/display_width/reline_ext.rb +0 -0
  373. /data/bundle/ruby/3.1.0/gems/{unicode-display_width-3.1.4 → unicode-display_width-3.2.0}/lib/unicode/display_width/string_ext.rb +0 -0
  374. /data/bundle/ruby/3.1.0/gems/{unicode-display_width-3.1.4 → unicode-display_width-3.2.0}/lib/unicode/display_width.rb +0 -0
  375. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/CODE_OF_CONDUCT.md +0 -0
  376. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/Gemfile +0 -0
  377. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/MIT-LICENSE.txt +0 -0
  378. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/data/generate_constants.rb +0 -0
  379. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated/regex_emoji_keycap.rb +0 -0
  380. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated/regex_prop_component.rb +0 -0
  381. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated/regex_prop_modifier.rb +0 -0
  382. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated/regex_prop_modifier_base.rb +0 -0
  383. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated/regex_text_presentation.rb +0 -0
  384. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_basic.rb +0 -0
  385. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_emoji_keycap.rb +0 -0
  386. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_picto.rb +0 -0
  387. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_picto_no_emoji.rb +0 -0
  388. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_possible.rb +0 -0
  389. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_prop_component.rb +0 -0
  390. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_prop_emoji.rb +0 -0
  391. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_prop_modifier.rb +0 -0
  392. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_prop_modifier_base.rb +0 -0
  393. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_prop_presentation.rb +0 -0
  394. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_text.rb +0 -0
  395. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_text_presentation.rb +0 -0
  396. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_valid.rb +0 -0
  397. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_valid_include_text.rb +0 -0
  398. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_well_formed.rb +0 -0
  399. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_well_formed_include_text.rb +0 -0
  400. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/index.rb +0 -0
  401. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/lazy_constants.rb +0 -0
  402. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/list.rb +0 -0
  403. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji.rb +0 -0
  404. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/unicode-emoji.gemspec +0 -0
@@ -14,6 +14,24 @@ module Haml
14
14
  module Util
15
15
  extend self
16
16
 
17
+ begin # Ruby 3.2+ or ERB 4+
18
+ require 'erb/escape'
19
+
20
+ define_singleton_method(:escape_html, ERB::Escape.instance_method(:html_escape))
21
+ rescue LoadError
22
+ require 'cgi/escape'
23
+
24
+ def self.escape_html(html)
25
+ CGI.escapeHTML(html.to_s)
26
+ end
27
+ end
28
+
29
+ # TODO: Remove unescape_interpolation's workaround and get rid of `respond_to?`.
30
+ def self.escape_html_safe(html)
31
+ html = html.to_s
32
+ (html.respond_to?(:html_safe?) && html.html_safe?) ? html : escape_html(html)
33
+ end
34
+
17
35
  # Silence all output to STDERR within a block.
18
36
  #
19
37
  # @yield A block in which no output will be printed to STDERR
@@ -35,20 +53,6 @@ module Haml
35
53
  false
36
54
  end
37
55
 
38
- # Returns the given text, marked as being HTML-safe.
39
- # With older versions of the Rails XSS-safety mechanism,
40
- # this destructively modifies the HTML-safety of `text`.
41
- #
42
- # It only works if you are using ActiveSupport or the parameter `text`
43
- # implements the #html_safe method.
44
- #
45
- # @param text [String, nil]
46
- # @return [String, nil] `text`, marked as HTML-safe
47
- def html_safe(text)
48
- return unless text
49
- text.html_safe
50
- end
51
-
52
56
  # Checks that the encoding of a string is valid
53
57
  # and cleans up potential encoding gotchas like the UTF-8 BOM.
54
58
  # If it's not, yields an error string describing the invalid character
@@ -214,7 +218,7 @@ MSG
214
218
  end
215
219
  content = eval("\"#{interpolated}\"")
216
220
  content = "#{char}#{content}" if char == '@' || char == '$'
217
- content = "Haml::Helpers.html_escape((#{content}))" if escape_html
221
+ content = "Haml::Util.escape_html_safe((#{content}).to_s)" if escape_html
218
222
 
219
223
  res << "\#{#{content}}"
220
224
  end
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
-
3
2
  module Haml
4
- VERSION = "5.2.2"
3
+ VERSION = '6.4.0'
5
4
  end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+ module Haml
3
+ class Whitespace < Temple::Filter
4
+ def on_whitespace
5
+ [:static, "\n"]
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+ require 'haml/engine'
3
+ require 'haml/error'
4
+ require 'haml/version'
5
+ require 'haml/template'
6
+
7
+ if File.basename($0) != 'haml'
8
+ begin
9
+ require 'rails'
10
+ require 'haml/railtie'
11
+ rescue LoadError
12
+ end
13
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+ module Parallel
3
+ VERSION = Version = '1.27.0' # rubocop:disable Naming/ConstantName
4
+ end
@@ -255,7 +255,7 @@ module Parallel
255
255
 
256
256
  if options[:in_processes] && options[:in_threads]
257
257
  raise ArgumentError, "Please specify only one of `in_processes` or `in_threads`."
258
- elsif RUBY_PLATFORM =~ (/java/) && !(options[:in_processes])
258
+ elsif RUBY_PLATFORM =~ (/java/) && !options[:in_processes]
259
259
  method = :in_threads
260
260
  size = options[method] || processor_count
261
261
  elsif options[:in_threads]
@@ -177,6 +177,11 @@ class Reline::Config
177
177
  if_stack = []
178
178
 
179
179
  lines.each_with_index do |line, no|
180
+ # Even after encoding conversion, we need to verify the encoding is valid
181
+ # as some invalid byte sequences might pass through the conversion.
182
+ unless line.valid_encoding?
183
+ raise InvalidInputrc, "#{file}:#{no + 1}: can't be converted to the locale #{Reline.encoding_system_needs.name}"
184
+ end
180
185
  next if line.match(/\A\s*#/)
181
186
 
182
187
  no += 1
@@ -124,6 +124,10 @@ class Reline::ANSI < Reline::IO
124
124
  Reline.core.line_editor.handle_signal
125
125
  end
126
126
  c = @input.getbyte
127
+
128
+ # When "Escape non-ASCII Input with Control-V" is enabled in macOS Terminal.app,
129
+ # all non-ascii bytes are automatically escaped with `C-v`.
130
+ # "\xE3\x81\x82" (U+3042) becomes "\x16\xE3\x16\x81\x16\x82".
127
131
  (c == 0x16 && @input.tty? && @input.raw(min: 0, time: 0, &:getbyte)) || c
128
132
  rescue Errno::EIO
129
133
  # Maybe the I/O has been closed.
@@ -180,14 +184,14 @@ class Reline::ANSI < Reline::IO
180
184
  s = [ENV["LINES"].to_i, ENV["COLUMNS"].to_i]
181
185
  return s if s[0] > 0 && s[1] > 0
182
186
  [24, 80]
183
- rescue Errno::ENOTTY, Errno::ENODEV
187
+ rescue SystemCallError
184
188
  [24, 80]
185
189
  end
186
190
 
187
191
  def set_screen_size(rows, columns)
188
192
  @input.winsize = [rows, columns]
189
193
  self
190
- rescue Errno::ENOTTY, Errno::ENODEV
194
+ rescue SystemCallError
191
195
  self
192
196
  end
193
197
 
@@ -295,7 +299,7 @@ class Reline::ANSI < Reline::IO
295
299
  # Signal.trap may raise an ArgumentError if the platform doesn't support the signal.
296
300
  end
297
301
 
298
- def read_single_char(keyseq_timeout)
302
+ def read_single_char(timeout_second)
299
303
  # Disable intr to read `C-c` `C-z` `C-\` for quoted insert
300
304
  @input.raw(intr: false) do
301
305
  super
@@ -37,10 +37,10 @@ module Reline
37
37
  end
38
38
 
39
39
  # Read a single encoding valid character from the input.
40
- def read_single_char(keyseq_timeout)
40
+ def read_single_char(timeout_second)
41
41
  buffer = String.new(encoding: Encoding::ASCII_8BIT)
42
42
  loop do
43
- timeout = buffer.empty? ? Float::INFINITY : keyseq_timeout
43
+ timeout = buffer.empty? ? Float::INFINITY : timeout_second
44
44
  c = getc(timeout)
45
45
  return unless c
46
46
 
@@ -377,11 +377,11 @@ module Reline::KeyActor
377
377
  # 187 M-;
378
378
  nil,
379
379
  # 188 M-<
380
- nil,
380
+ :beginning_of_history,
381
381
  # 189 M-=
382
382
  nil,
383
383
  # 190 M->
384
- nil,
384
+ :end_of_history,
385
385
  # 191 M-?
386
386
  nil,
387
387
  # 192 M-@
@@ -470,14 +470,6 @@ class Reline::LineEditor
470
470
  end
471
471
  end
472
472
 
473
- def print_nomultiline_prompt
474
- Reline::IOGate.disable_auto_linewrap(true) if Reline::IOGate.win?
475
- # Readline's test `TestRelineAsReadline#test_readline` requires first output to be prompt, not cursor reset escape sequence.
476
- Reline::IOGate.write Reline::Unicode.strip_non_printing_start_end(@prompt) if @prompt && !@is_multiline
477
- ensure
478
- Reline::IOGate.disable_auto_linewrap(false) if Reline::IOGate.win?
479
- end
480
-
481
473
  def render
482
474
  wrapped_cursor_x, wrapped_cursor_y = wrapped_cursor_position
483
475
  new_lines = wrapped_prompt_and_input_lines.flatten(1)[screen_scroll_top, screen_height].map do |prompt, line|
@@ -1654,6 +1646,16 @@ class Reline::LineEditor
1654
1646
  end
1655
1647
  alias_method :next_history, :ed_next_history
1656
1648
 
1649
+ private def ed_beginning_of_history(key)
1650
+ move_history(0, line: :end, cursor: :end)
1651
+ end
1652
+ alias_method :beginning_of_history, :ed_beginning_of_history
1653
+
1654
+ private def ed_end_of_history(key)
1655
+ move_history(Reline::HISTORY.size, line: :end, cursor: :end)
1656
+ end
1657
+ alias_method :end_of_history, :ed_end_of_history
1658
+
1657
1659
  private def ed_newline(key)
1658
1660
  process_insert(force: true)
1659
1661
  if @is_multiline
@@ -129,7 +129,7 @@ class Reline::Unicode::EastAsianWidth
129
129
  [0x450, 1],
130
130
  [0x451, -1],
131
131
  [0x482, 1],
132
- [0x487, 0],
132
+ [0x489, 0],
133
133
  [0x590, 1],
134
134
  [0x5bd, 0],
135
135
  [0x5be, 1],
@@ -356,6 +356,7 @@ class Reline::Unicode::EastAsianWidth
356
356
  [0x109d, 0],
357
357
  [0x10ff, 1],
358
358
  [0x115f, 2],
359
+ [0x11ff, 0],
359
360
  [0x135c, 1],
360
361
  [0x135f, 0],
361
362
  [0x1711, 1],
@@ -411,8 +412,6 @@ class Reline::Unicode::EastAsianWidth
411
412
  [0x1a7e, 1],
412
413
  [0x1a7f, 0],
413
414
  [0x1aaf, 1],
414
- [0x1abd, 0],
415
- [0x1abe, 1],
416
415
  [0x1ace, 0],
417
416
  [0x1aff, 1],
418
417
  [0x1b03, 0],
@@ -491,10 +490,6 @@ class Reline::Unicode::EastAsianWidth
491
490
  [0x20ab, 1],
492
491
  [0x20ac, -1],
493
492
  [0x20cf, 1],
494
- [0x20dc, 0],
495
- [0x20e0, 1],
496
- [0x20e1, 0],
497
- [0x20e4, 1],
498
493
  [0x20f0, 0],
499
494
  [0x2102, 1],
500
495
  [0x2103, -1],
@@ -767,7 +762,7 @@ class Reline::Unicode::EastAsianWidth
767
762
  [0xa48f, 1],
768
763
  [0xa4c6, 2],
769
764
  [0xa66e, 1],
770
- [0xa66f, 0],
765
+ [0xa672, 0],
771
766
  [0xa673, 1],
772
767
  [0xa67d, 0],
773
768
  [0xa69d, 1],
@@ -840,6 +835,10 @@ class Reline::Unicode::EastAsianWidth
840
835
  [0xabed, 0],
841
836
  [0xabff, 1],
842
837
  [0xd7a3, 2],
838
+ [0xd7af, 1],
839
+ [0xd7c6, 0],
840
+ [0xd7ca, 1],
841
+ [0xd7fb, 0],
843
842
  [0xdfff, 1],
844
843
  [0xf8ff, -1],
845
844
  [0xfaff, 2],
@@ -72,26 +72,32 @@ class Reline::Unicode
72
72
 
73
73
  require 'reline/unicode/east_asian_width'
74
74
 
75
+ def self.east_asian_width(ord)
76
+ chunk_index = EastAsianWidth::CHUNK_LAST.bsearch_index { |o| ord <= o }
77
+ size = EastAsianWidth::CHUNK_WIDTH[chunk_index]
78
+ size == -1 ? Reline.ambiguous_width : size
79
+ end
80
+
75
81
  def self.get_mbchar_width(mbchar)
76
82
  ord = mbchar.ord
77
83
  if ord <= 0x1F # in EscapedPairs
78
84
  return 2
79
- elsif ord <= 0x7E # printable ASCII chars
85
+ elsif mbchar.length == 1 && ord <= 0x7E # printable ASCII chars
80
86
  return 1
81
87
  end
88
+
82
89
  utf8_mbchar = mbchar.encode(Encoding::UTF_8)
83
- ord = utf8_mbchar.ord
84
- chunk_index = EastAsianWidth::CHUNK_LAST.bsearch_index { |o| ord <= o }
85
- size = EastAsianWidth::CHUNK_WIDTH[chunk_index]
86
- if size == -1
87
- Reline.ambiguous_width
88
- elsif size == 1 && utf8_mbchar.size >= 2
89
- second_char_ord = utf8_mbchar[1].ord
90
- # Halfwidth Dakuten Handakuten
91
- # Only these two character has Letter Modifier category and can be combined in a single grapheme cluster
92
- (second_char_ord == 0xFF9E || second_char_ord == 0xFF9F) ? 2 : 1
93
- else
94
- size
90
+ zwj = false
91
+ utf8_mbchar.chars.sum do |c|
92
+ if zwj
93
+ zwj = false
94
+ 0
95
+ elsif c.ord == 0x200D # Zero Width Joiner
96
+ zwj = true
97
+ 0
98
+ else
99
+ east_asian_width(c.ord)
100
+ end
95
101
  end
96
102
  end
97
103
 
@@ -214,7 +220,7 @@ class Reline::Unicode
214
220
  next
215
221
  elsif padding && !cover_begin && prev_width < start_col && start_col < total_width
216
222
  # Add preceding padding. This padding might have background color.
217
- chunk << ' '
223
+ chunk << ' ' * (total_width - start_col)
218
224
  chunk_start_col ||= start_col
219
225
  chunk_end_col = total_width
220
226
  next
@@ -228,7 +234,7 @@ class Reline::Unicode
228
234
  # Current character exceeds end_col
229
235
  if padding && end_col < total_width
230
236
  # Add succeeding padding. This padding might have background color.
231
- chunk << ' '
237
+ chunk << ' ' * (end_col - prev_width)
232
238
  chunk_start_col ||= prev_width
233
239
  chunk_end_col = end_col
234
240
  end
@@ -0,0 +1,3 @@
1
+ module Reline
2
+ VERSION = '0.6.2'
3
+ end
@@ -324,8 +324,6 @@ module Reline
324
324
  line_editor.auto_indent_proc = auto_indent_proc
325
325
  line_editor.dig_perfect_match_proc = dig_perfect_match_proc
326
326
 
327
- # Readline calls pre_input_hook just after printing the first prompt.
328
- line_editor.print_nomultiline_prompt
329
327
  pre_input_hook&.call
330
328
 
331
329
  unless Reline::IOGate.dumb?
@@ -347,7 +345,8 @@ module Reline
347
345
  # io_gate is Reline::ANSI because the key :bracketed_paste_start is only assigned in Reline::ANSI
348
346
  key = Reline::Key.new(io_gate.read_bracketed_paste, :insert_multiline_text)
349
347
  when :quoted_insert, :ed_quoted_insert
350
- key = Reline::Key.new(io_gate.read_single_char(config.keyseq_timeout), :insert_raw_char)
348
+ char = io_gate.read_single_char(config.keyseq_timeout.fdiv(1000))
349
+ key = Reline::Key.new(char || '', :insert_raw_char)
351
350
  end
352
351
  line_editor.set_pasting_state(io_gate.in_pasting?)
353
352
  line_editor.update(key)
@@ -1,5 +1,149 @@
1
1
  # News
2
2
 
3
+ ## 3.4.4 - 2025-09-10 {#version-3-4-4}
4
+
5
+ ### Improvement
6
+
7
+ * Accept `REXML::Document.new("")` for backward compatibility
8
+ * GH-296
9
+ * GH-295
10
+ * Patch by NAITOH Jun
11
+ * Reported by Joe Rafaniello
12
+
13
+ ### Thanks
14
+
15
+ * NAITOH Jun
16
+
17
+ * Joe Rafaniello
18
+
19
+ ## 3.4.3 - 2025-09-07 {#version-3-4-3}
20
+
21
+ ### Improvement
22
+
23
+ * Reject no root element XML as an invalid XML
24
+ * GH-289
25
+ * GH-291
26
+ * Patch by NAITOH Jun
27
+ * Reported by Sutou Kouhei
28
+
29
+ ### Fixes
30
+
31
+ * Fixed an issue with `IOSource#read_until` when reaching the end of a file
32
+ * GH-287
33
+ * GH-288
34
+ * Patch by NAITOH Jun
35
+ * Reported by Jason Thomas
36
+
37
+ ### Thanks
38
+
39
+ * NAITOH Jun
40
+
41
+ * Sutou Kouhei
42
+
43
+ * Jason Thomas
44
+
45
+ ## 3.4.2 - 2025-08-26 {#version-3-4-2}
46
+
47
+ ### Improvement
48
+
49
+ * Improved performance.
50
+ * GH-244
51
+ * GH-245
52
+ * GH-246
53
+ * GH-249
54
+ * GH-256
55
+ * Patch by NAITOH Jun
56
+
57
+ * Raise appropriate exception when failing to match start tag in DOCTYPE
58
+ * GH-247
59
+ * Patch by NAITOH Jun
60
+
61
+ * Deprecate accepting array as an element in XPath.match, first and each
62
+ * GH-252
63
+ * Patch by tomoya ishida
64
+
65
+ * Don't call needless encoding_updated
66
+ * GH-259
67
+ * Patch by Sutou Kouhei
68
+
69
+ * Reuse XPath::match
70
+ * GH-263
71
+ * Patch by pboling
72
+
73
+ * Cache redundant calls for doctype
74
+ * GH-264
75
+ * Patch by pboling
76
+
77
+ * Use Safe Navigation (&.) from Ruby 2.3
78
+ * GH-265
79
+ * Patch by pboling
80
+
81
+ * Remove redundant return statements
82
+ * GH-266
83
+ * Patch by pboling
84
+
85
+ * Added XML declaration check & Source#skip_spaces method
86
+ * GH-282
87
+ * Patch by NAITOH Jun
88
+ * Reported by Sofi Aberegg
89
+
90
+ ### Fixes
91
+
92
+ * Fix docs typo
93
+ * GH-248
94
+ * Patch by James Coleman
95
+
96
+ * Fix reverse sort in xpath_parser
97
+ * GH-251
98
+ * Patch by tomoya ishida
99
+
100
+ * Fix duplicate responses in XPath following, following-sibling, preceding, preceding-sibling
101
+ * GH-255
102
+ * Patch by NAITOH Jun
103
+
104
+ * Fix wrong Encoding resolution
105
+ * GH-258
106
+ * Patch by Sutou Kouhei
107
+
108
+ * Handle nil when parsing fragment
109
+ * GH-267
110
+ * GH-268
111
+ * Patch by pboling
112
+
113
+ * [Documentation] Use # to reference instance methods
114
+ * GH-269
115
+ * GH-270
116
+ * Patch by pboling
117
+
118
+ * Fix & Deprecate REXML::Text#text_indent
119
+ * GH-273
120
+ * GH-275
121
+ * Patch by pboling
122
+
123
+ * remove bundler from dev deps
124
+ * GH-276
125
+ * GH-277
126
+ * Patch by pboling
127
+
128
+ * remove ostruct from dev deps
129
+ * GH-280
130
+ * GH-281
131
+ * Patch by pboling
132
+
133
+ ### Thanks
134
+
135
+ * NAITOH Jun
136
+
137
+ * tomoya ishida
138
+
139
+ * James Coleman
140
+
141
+ * pboling
142
+
143
+ * Sutou Kouhei
144
+
145
+ * Sofi Aberegg
146
+
3
147
  ## 3.4.1 - 2025-02-16 {#version-3-4-1}
4
148
 
5
149
  ### Improvement
@@ -386,7 +530,7 @@
386
530
 
387
531
  * Patch by NAITOH Jun.
388
532
 
389
- * Improved parse performance when an attribute has many `<`s.
533
+ * Improved parse performance when an attribute has many `>`s.
390
534
 
391
535
  * GH-126
392
536
 
@@ -130,10 +130,7 @@ module REXML
130
130
  end
131
131
 
132
132
  def doctype
133
- if @element
134
- doc = @element.document
135
- doc.doctype if doc
136
- end
133
+ @element&.document&.doctype
137
134
  end
138
135
 
139
136
  # Returns the attribute value, with entities replaced
@@ -173,7 +170,7 @@ module REXML
173
170
  @element = element
174
171
 
175
172
  if @normalized
176
- Text.check( @normalized, NEEDS_A_SECOND_CHECK, doctype )
173
+ Text.check( @normalized, NEEDS_A_SECOND_CHECK )
177
174
  end
178
175
 
179
176
  self
@@ -202,9 +199,11 @@ module REXML
202
199
  end
203
200
 
204
201
  def xpath
205
- path = @element.xpath
206
- path += "/@#{self.expanded_name}"
207
- return path
202
+ @element.xpath + "/@#{self.expanded_name}"
203
+ end
204
+
205
+ def document
206
+ @element&.document
208
207
  end
209
208
  end
210
209
  end
@@ -58,7 +58,7 @@ module REXML
58
58
  # c = CData.new( " Some text " )
59
59
  # c.write( $stdout ) #-> <![CDATA[ Some text ]]>
60
60
  def write( output=$stdout, indent=-1, transitive=false, ie_hack=false )
61
- Kernel.warn( "#{self.class.name}.write is deprecated", uplevel: 1)
61
+ Kernel.warn( "#{self.class.name}#write is deprecated", uplevel: 1)
62
62
  indent( output, indent )
63
63
  output << START
64
64
  output << @string
@@ -83,13 +83,12 @@ module REXML
83
83
  # Returns:: the document this child belongs to, or nil if this child
84
84
  # belongs to no document
85
85
  def document
86
- return parent.document unless parent.nil?
87
- nil
86
+ parent&.document
88
87
  end
89
88
 
90
89
  # This doesn't yet handle encodings
91
90
  def bytes
92
- document.encoding
91
+ document&.encoding
93
92
 
94
93
  to_s
95
94
  end
@@ -48,7 +48,7 @@ module REXML
48
48
  # ie_hack::
49
49
  # Needed for conformity to the child API, but not used by this class.
50
50
  def write( output, indent=-1, transitive=false, ie_hack=false )
51
- Kernel.warn("Comment.write is deprecated. See REXML::Formatters", uplevel: 1)
51
+ Kernel.warn("#{self.class.name}#write is deprecated. See REXML::Formatters", uplevel: 1)
52
52
  indent( output, indent )
53
53
  output << START
54
54
  output << @string
@@ -171,15 +171,11 @@ module REXML
171
171
  end
172
172
 
173
173
  def context
174
- if @parent
175
- @parent.context
176
- else
177
- nil
178
- end
174
+ @parent&.context
179
175
  end
180
176
 
181
177
  def entity( name )
182
- @entities[name].unnormalized if @entities[name]
178
+ @entities[name]&.unnormalized
183
179
  end
184
180
 
185
181
  def add child
@@ -288,8 +284,7 @@ module REXML
288
284
  end
289
285
 
290
286
  def to_s
291
- context = nil
292
- context = parent.context if parent
287
+ context = parent&.context
293
288
  notation = "<!NOTATION #{@name}"
294
289
  reference_writer = ReferenceWriter.new(@middle, @public, @system, context)
295
290
  reference_writer.write(notation)
@@ -95,7 +95,9 @@ module REXML
95
95
  @entity_expansion_text_limit = Security.entity_expansion_text_limit
96
96
  super()
97
97
  @context = context
98
- return if source.nil?
98
+ # `source = ""` is an invalid usage because no root element XML is an invalid XML.
99
+ # But we accept `""` for backward compatibility.
100
+ return if source.nil? or source == ""
99
101
  if source.kind_of? Document
100
102
  @context = source.context
101
103
  super source
@@ -309,8 +311,8 @@ module REXML
309
311
  end
310
312
 
311
313
  # :call-seq:
312
- # doc.write(output=$stdout, indent=-1, transtive=false, ie_hack=false, encoding=nil)
313
- # doc.write(options={:output => $stdout, :indent => -1, :transtive => false, :ie_hack => false, :encoding => nil})
314
+ # doc.write(output=$stdout, indent=-1, transitive=false, ie_hack=false, encoding=nil)
315
+ # doc.write(options={:output => $stdout, :indent => -1, :transitive => false, :ie_hack => false, :encoding => nil})
314
316
  #
315
317
  # Write the XML tree out, optionally with indent. This writes out the
316
318
  # entire XML document, including XML declarations, doctype declarations,
@@ -415,7 +417,7 @@ module REXML
415
417
  #
416
418
  # Deprecated. Use REXML::Security.entity_expansion_limit= instead.
417
419
  def Document::entity_expansion_limit
418
- return Security.entity_expansion_limit
420
+ Security.entity_expansion_limit
419
421
  end
420
422
 
421
423
  # Set the entity expansion limit. By default the limit is set to 10240.
@@ -429,7 +431,7 @@ module REXML
429
431
  #
430
432
  # Deprecated. Use REXML::Security.entity_expansion_text_limit instead.
431
433
  def Document::entity_expansion_text_limit
432
- return Security.entity_expansion_text_limit
434
+ Security.entity_expansion_text_limit
433
435
  end
434
436
 
435
437
  attr_reader :entity_expansion_count
@@ -448,6 +450,20 @@ module REXML
448
450
  end
449
451
 
450
452
  private
453
+
454
+ attr_accessor :namespaces_cache
455
+
456
+ # New document level cache is created and available in this block.
457
+ # This API is thread unsafe. Users can't change this document in this block.
458
+ def enable_cache
459
+ @namespaces_cache = {}
460
+ begin
461
+ yield
462
+ ensure
463
+ @namespaces_cache = nil
464
+ end
465
+ end
466
+
451
467
  def build( source )
452
468
  Parsers::TreeParser.new( source, self ).parse
453
469
  end