brakeman 6.2.2 → 8.0.4

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 (621) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +93 -0
  3. data/README.md +4 -4
  4. data/bundle/load.rb +16 -14
  5. data/bundle/ruby/3.2.0/gems/csv-3.3.5/LICENSE.txt +33 -0
  6. data/bundle/ruby/3.2.0/gems/csv-3.3.5/NEWS.md +1009 -0
  7. data/bundle/ruby/3.2.0/gems/csv-3.3.5/README.md +55 -0
  8. data/bundle/ruby/3.2.0/gems/csv-3.3.5/lib/csv/core_ext/array.rb +9 -0
  9. data/bundle/ruby/3.2.0/gems/csv-3.3.5/lib/csv/core_ext/string.rb +9 -0
  10. data/bundle/ruby/3.2.0/gems/csv-3.3.5/lib/csv/fields_converter.rb +96 -0
  11. data/bundle/ruby/3.2.0/gems/csv-3.3.5/lib/csv/input_record_separator.rb +18 -0
  12. data/bundle/ruby/3.2.0/gems/csv-3.3.5/lib/csv/parser.rb +1302 -0
  13. data/bundle/ruby/3.2.0/gems/csv-3.3.5/lib/csv/row.rb +757 -0
  14. data/bundle/ruby/3.2.0/gems/csv-3.3.5/lib/csv/table.rb +1055 -0
  15. data/bundle/ruby/3.2.0/gems/csv-3.3.5/lib/csv/version.rb +6 -0
  16. data/bundle/ruby/3.2.0/gems/csv-3.3.5/lib/csv/writer.rb +209 -0
  17. data/bundle/ruby/3.2.0/gems/csv-3.3.5/lib/csv.rb +3017 -0
  18. data/bundle/ruby/3.2.0/gems/erubi-1.13.1/CHANGELOG +111 -0
  19. data/bundle/ruby/{3.1.0/gems/erubis-2.7.0 → 3.2.0/gems/erubi-1.13.1}/MIT-LICENSE +1 -0
  20. data/bundle/ruby/3.2.0/gems/erubi-1.13.1/README.rdoc +151 -0
  21. data/bundle/ruby/3.2.0/gems/erubi-1.13.1/lib/erubi/capture_block.rb +91 -0
  22. data/bundle/ruby/3.2.0/gems/erubi-1.13.1/lib/erubi/capture_end.rb +58 -0
  23. data/bundle/ruby/3.2.0/gems/erubi-1.13.1/lib/erubi.rb +299 -0
  24. data/bundle/ruby/{3.1.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.4.0}/CHANGELOG.md +180 -4
  25. data/bundle/ruby/{3.1.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.4.0}/FAQ.md +1 -1
  26. data/bundle/ruby/3.2.0/gems/haml-6.4.0/Gemfile +34 -0
  27. data/bundle/ruby/{3.1.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.4.0}/MIT-LICENSE +1 -1
  28. data/bundle/ruby/{3.1.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.4.0}/README.md +23 -34
  29. data/bundle/ruby/{3.1.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.4.0}/REFERENCE.md +100 -171
  30. data/bundle/ruby/3.2.0/gems/haml-6.4.0/exe/haml +6 -0
  31. data/bundle/ruby/3.2.0/gems/haml-6.4.0/haml.gemspec +45 -0
  32. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/ambles.rb +20 -0
  33. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/attribute_builder.rb +162 -0
  34. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/attribute_compiler.rb +133 -0
  35. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/attribute_parser.rb +116 -0
  36. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/cli.rb +154 -0
  37. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/compiler/children_compiler.rb +155 -0
  38. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/compiler/comment_compiler.rb +51 -0
  39. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/compiler/doctype_compiler.rb +52 -0
  40. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/compiler/script_compiler.rb +114 -0
  41. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/compiler/silent_script_compiler.rb +24 -0
  42. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/compiler/tag_compiler.rb +76 -0
  43. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/compiler.rb +97 -0
  44. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/dynamic_merger.rb +67 -0
  45. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/engine.rb +59 -0
  46. data/bundle/ruby/{3.1.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.4.0}/lib/haml/error.rb +5 -4
  47. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/escape.rb +13 -0
  48. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/escape_any.rb +21 -0
  49. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/base.rb +12 -0
  50. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/cdata.rb +20 -0
  51. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/coffee.rb +17 -0
  52. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/css.rb +33 -0
  53. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/erb.rb +10 -0
  54. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/escaped.rb +22 -0
  55. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/javascript.rb +33 -0
  56. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/less.rb +20 -0
  57. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/markdown.rb +11 -0
  58. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/plain.rb +29 -0
  59. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/preserve.rb +22 -0
  60. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/ruby.rb +10 -0
  61. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/sass.rb +15 -0
  62. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/scss.rb +15 -0
  63. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/text_base.rb +25 -0
  64. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/tilt_base.rb +59 -0
  65. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters.rb +75 -0
  66. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/force_escape.rb +29 -0
  67. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/helpers.rb +15 -0
  68. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/html.rb +22 -0
  69. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/identity.rb +13 -0
  70. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/object_ref.rb +35 -0
  71. data/bundle/ruby/{3.1.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.4.0}/lib/haml/parser.rb +159 -24
  72. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/rails_helpers.rb +53 -0
  73. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/rails_template.rb +62 -0
  74. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/railtie.rb +10 -0
  75. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/ruby_expression.rb +32 -0
  76. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/string_splitter.rb +140 -0
  77. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/template.rb +20 -0
  78. data/bundle/ruby/{3.1.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.4.0}/lib/haml/temple_line_counter.rb +2 -1
  79. data/bundle/ruby/{3.1.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.4.0}/lib/haml/util.rb +19 -15
  80. data/bundle/ruby/{3.1.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.4.0}/lib/haml/version.rb +1 -2
  81. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/whitespace.rb +8 -0
  82. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml.rb +13 -0
  83. data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/Changelog.md +4 -0
  84. data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/Gemfile +1 -0
  85. data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/list_renderer.rb +2 -2
  86. data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/menu.rb +7 -5
  87. data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/version.rb +1 -1
  88. data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/lib/highline.rb +17 -12
  89. data/bundle/ruby/3.2.0/gems/parallel-1.27.0/lib/parallel/version.rb +4 -0
  90. data/bundle/ruby/{3.1.0/gems/parallel-1.26.3 → 3.2.0/gems/parallel-1.27.0}/lib/parallel.rb +1 -1
  91. data/bundle/ruby/{3.1.0/gems/reline-0.5.10 → 3.2.0/gems/reline-0.6.3}/lib/reline/config.rb +27 -26
  92. data/bundle/ruby/{3.1.0/gems/reline-0.5.10 → 3.2.0/gems/reline-0.6.3}/lib/reline/history.rb +3 -3
  93. data/bundle/ruby/{3.1.0/gems/reline-0.5.10 → 3.2.0/gems/reline-0.6.3}/lib/reline/io/ansi.rb +76 -138
  94. data/bundle/ruby/{3.1.0/gems/reline-0.5.10 → 3.2.0/gems/reline-0.6.3}/lib/reline/io/dumb.rb +16 -2
  95. data/bundle/ruby/{3.1.0/gems/reline-0.5.10 → 3.2.0/gems/reline-0.6.3}/lib/reline/io/windows.rb +77 -60
  96. data/bundle/ruby/{3.1.0/gems/reline-0.5.10 → 3.2.0/gems/reline-0.6.3}/lib/reline/io.rb +14 -0
  97. data/bundle/ruby/{3.1.0/gems/reline-0.5.10 → 3.2.0/gems/reline-0.6.3}/lib/reline/key_actor/base.rb +10 -4
  98. data/bundle/ruby/{3.1.0/gems/reline-0.5.10 → 3.2.0/gems/reline-0.6.3}/lib/reline/key_actor/emacs.rb +96 -96
  99. data/bundle/ruby/{3.1.0/gems/reline-0.5.10 → 3.2.0/gems/reline-0.6.3}/lib/reline/key_actor/vi_command.rb +182 -182
  100. data/bundle/ruby/{3.1.0/gems/reline-0.5.10 → 3.2.0/gems/reline-0.6.3}/lib/reline/key_actor/vi_insert.rb +137 -137
  101. data/bundle/ruby/{3.1.0/gems/reline-0.5.10 → 3.2.0/gems/reline-0.6.3}/lib/reline/key_stroke.rb +26 -16
  102. data/bundle/ruby/{3.1.0/gems/reline-0.5.10 → 3.2.0/gems/reline-0.6.3}/lib/reline/line_editor.rb +324 -516
  103. data/bundle/ruby/{3.1.0/gems/reline-0.5.10 → 3.2.0/gems/reline-0.6.3}/lib/reline/unicode/east_asian_width.rb +48 -23
  104. data/bundle/ruby/3.2.0/gems/reline-0.6.3/lib/reline/unicode.rb +421 -0
  105. data/bundle/ruby/3.2.0/gems/reline-0.6.3/lib/reline/version.rb +3 -0
  106. data/bundle/ruby/{3.1.0/gems/reline-0.5.10 → 3.2.0/gems/reline-0.6.3}/lib/reline.rb +41 -33
  107. data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/NEWS.md +219 -1
  108. data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/attribute.rb +7 -8
  109. data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/cdata.rb +1 -1
  110. data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/child.rb +2 -3
  111. data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/comment.rb +1 -1
  112. data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/doctype.rb +3 -8
  113. data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/document.rb +21 -5
  114. data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/element.rb +53 -59
  115. data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/encoding.rb +3 -6
  116. data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/functions.rb +3 -3
  117. data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/instruction.rb +1 -1
  118. data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/namespace.rb +4 -4
  119. data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/node.rb +2 -2
  120. data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/parsers/baseparser.rb +208 -116
  121. data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/parsers/pullparser.rb +4 -0
  122. data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/parsers/xpathparser.rb +4 -4
  123. data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/quickpath.rb +19 -18
  124. data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/rexml.rb +1 -1
  125. data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/security.rb +2 -2
  126. data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/source.rb +68 -8
  127. data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/text.rb +29 -57
  128. data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/validation/relaxng.rb +27 -26
  129. data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/validation/validation.rb +8 -8
  130. data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/xpath.rb +2 -13
  131. data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/xpath_parser.rb +44 -42
  132. data/bundle/ruby/{3.1.0/gems/ruby2ruby-2.5.1 → 3.2.0/gems/ruby2ruby-2.5.2}/History.rdoc +6 -0
  133. data/bundle/ruby/{3.1.0/gems/ruby2ruby-2.5.1 → 3.2.0/gems/ruby2ruby-2.5.2}/lib/ruby2ruby.rb +7 -4
  134. data/bundle/ruby/{3.1.0/gems/ruby_parser-3.20.3 → 3.2.0/gems/ruby_parser-3.22.0}/History.rdoc +67 -0
  135. data/bundle/ruby/3.2.0/gems/ruby_parser-3.22.0/Manifest.txt +39 -0
  136. data/bundle/ruby/{3.1.0/gems/ruby_parser-3.20.3 → 3.2.0/gems/ruby_parser-3.22.0}/README.rdoc +15 -3
  137. data/bundle/ruby/{3.1.0/gems/ruby_parser-3.20.3 → 3.2.0/gems/ruby_parser-3.22.0}/compare/normalize.rb +19 -3
  138. data/bundle/ruby/{3.1.0/gems/ruby_parser-3.20.3 → 3.2.0/gems/ruby_parser-3.22.0}/gauntlet.md +35 -5
  139. data/bundle/ruby/{3.1.0/gems/ruby_parser-3.20.3 → 3.2.0/gems/ruby_parser-3.22.0}/lib/ruby_lexer.rb +9 -18
  140. data/bundle/ruby/{3.1.0/gems/ruby_parser-3.20.3 → 3.2.0/gems/ruby_parser-3.22.0}/lib/ruby_lexer.rex.rb +1 -2
  141. data/bundle/ruby/{3.1.0/gems/ruby_parser-3.20.3 → 3.2.0/gems/ruby_parser-3.22.0}/lib/ruby_parser.rb +18 -14
  142. data/bundle/ruby/{3.1.0/gems/ruby_parser-3.20.3/lib/ruby_parser.yy → 3.2.0/gems/ruby_parser-3.22.0/lib/ruby_parser2.yy} +15 -22
  143. data/bundle/ruby/{3.1.0/gems/ruby_parser-3.20.3/lib/ruby20_parser.rb → 3.2.0/gems/ruby_parser-3.22.0/lib/ruby_parser20.rb} +19 -22
  144. data/bundle/ruby/{3.1.0/gems/ruby_parser-3.20.3/lib/ruby21_parser.rb → 3.2.0/gems/ruby_parser-3.22.0/lib/ruby_parser21.rb} +19 -22
  145. data/bundle/ruby/{3.1.0/gems/ruby_parser-3.20.3/lib/ruby22_parser.rb → 3.2.0/gems/ruby_parser-3.22.0/lib/ruby_parser22.rb} +19 -22
  146. data/bundle/ruby/{3.1.0/gems/ruby_parser-3.20.3/lib/ruby23_parser.rb → 3.2.0/gems/ruby_parser-3.22.0/lib/ruby_parser23.rb} +19 -22
  147. data/bundle/ruby/{3.1.0/gems/ruby_parser-3.20.3/lib/ruby24_parser.rb → 3.2.0/gems/ruby_parser-3.22.0/lib/ruby_parser24.rb} +19 -22
  148. data/bundle/ruby/{3.1.0/gems/ruby_parser-3.20.3/lib/ruby25_parser.rb → 3.2.0/gems/ruby_parser-3.22.0/lib/ruby_parser25.rb} +19 -22
  149. data/bundle/ruby/{3.1.0/gems/ruby_parser-3.20.3/lib/ruby26_parser.rb → 3.2.0/gems/ruby_parser-3.22.0/lib/ruby_parser26.rb} +19 -22
  150. data/bundle/ruby/{3.1.0/gems/ruby_parser-3.20.3/lib/ruby27_parser.rb → 3.2.0/gems/ruby_parser-3.22.0/lib/ruby_parser27.rb} +21 -24
  151. data/bundle/ruby/{3.1.0/gems/ruby_parser-3.20.3/lib/ruby3_parser.yy → 3.2.0/gems/ruby_parser-3.22.0/lib/ruby_parser3.yy} +214 -79
  152. data/bundle/ruby/{3.1.0/gems/ruby_parser-3.20.3/lib/ruby30_parser.rb → 3.2.0/gems/ruby_parser-3.22.0/lib/ruby_parser30.rb} +3339 -3351
  153. data/bundle/ruby/{3.1.0/gems/ruby_parser-3.20.3/lib/ruby31_parser.rb → 3.2.0/gems/ruby_parser-3.22.0/lib/ruby_parser31.rb} +3772 -3808
  154. data/bundle/ruby/3.2.0/gems/ruby_parser-3.22.0/lib/ruby_parser32.rb +13565 -0
  155. data/bundle/ruby/3.2.0/gems/ruby_parser-3.22.0/lib/ruby_parser33.rb +13653 -0
  156. data/bundle/ruby/3.2.0/gems/ruby_parser-3.22.0/lib/ruby_parser34.rb +13653 -0
  157. data/bundle/ruby/{3.1.0/gems/ruby_parser-3.20.3 → 3.2.0/gems/ruby_parser-3.22.0}/lib/ruby_parser_extras.rb +109 -60
  158. data/bundle/ruby/{3.1.0/gems/sexp_processor-4.17.2 → 3.2.0/gems/sexp_processor-4.17.5}/History.rdoc +20 -0
  159. data/bundle/ruby/{3.1.0/gems/sexp_processor-4.17.2 → 3.2.0/gems/sexp_processor-4.17.5}/lib/pt_testcase.rb +1 -1
  160. data/bundle/ruby/{3.1.0/gems/sexp_processor-4.17.2 → 3.2.0/gems/sexp_processor-4.17.5}/lib/sexp.rb +1 -1
  161. data/bundle/ruby/{3.1.0/gems/sexp_processor-4.17.2 → 3.2.0/gems/sexp_processor-4.17.5}/lib/sexp_processor.rb +1 -1
  162. data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/CHANGES +4 -0
  163. data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/filters/encoding.rb +1 -1
  164. data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/version.rb +1 -1
  165. data/bundle/ruby/3.2.0/gems/terminal-table-4.0.0/History.rdoc +149 -0
  166. data/bundle/ruby/3.2.0/gems/terminal-table-4.0.0/README.md +417 -0
  167. data/bundle/ruby/{3.1.0/gems/terminal-table-1.8.0 → 3.2.0/gems/terminal-table-4.0.0}/lib/terminal-table/cell.rb +9 -9
  168. data/bundle/ruby/{3.1.0/gems/terminal-table-1.8.0 → 3.2.0/gems/terminal-table-4.0.0}/lib/terminal-table/row.rb +18 -4
  169. data/bundle/ruby/3.2.0/gems/terminal-table-4.0.0/lib/terminal-table/separator.rb +66 -0
  170. data/bundle/ruby/3.2.0/gems/terminal-table-4.0.0/lib/terminal-table/style.rb +284 -0
  171. data/bundle/ruby/{3.1.0/gems/terminal-table-1.8.0 → 3.2.0/gems/terminal-table-4.0.0}/lib/terminal-table/table.rb +49 -18
  172. data/bundle/ruby/3.2.0/gems/terminal-table-4.0.0/lib/terminal-table/util.rb +13 -0
  173. data/bundle/ruby/{3.1.0/gems/terminal-table-1.8.0 → 3.2.0/gems/terminal-table-4.0.0}/lib/terminal-table/version.rb +1 -1
  174. data/bundle/ruby/{3.1.0/gems/terminal-table-1.8.0 → 3.2.0/gems/terminal-table-4.0.0}/lib/terminal-table.rb +2 -2
  175. data/bundle/ruby/{3.1.0/gems/terminal-table-1.8.0 → 3.2.0/gems/terminal-table-4.0.0}/terminal-table.gemspec +3 -4
  176. data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.7.0}/lib/tilt/asciidoc.rb +12 -5
  177. data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.7.0}/lib/tilt/babel.rb +5 -0
  178. data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.7.0}/lib/tilt/builder.rb +4 -0
  179. data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.7.0}/lib/tilt/coffee.rb +14 -4
  180. data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.7.0}/lib/tilt/commonmarker.rb +41 -0
  181. data/bundle/ruby/3.2.0/gems/tilt-2.7.0/lib/tilt/csv.rb +63 -0
  182. data/bundle/ruby/3.2.0/gems/tilt-2.7.0/lib/tilt/erb.rb +130 -0
  183. data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.7.0}/lib/tilt/erubi.rb +41 -8
  184. data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.7.0}/lib/tilt/etanni.rb +7 -0
  185. data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.7.0}/lib/tilt/haml.rb +67 -1
  186. data/bundle/ruby/3.2.0/gems/tilt-2.7.0/lib/tilt/kramdown.rb +59 -0
  187. data/bundle/ruby/3.2.0/gems/tilt-2.7.0/lib/tilt/liquid.rb +93 -0
  188. data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.7.0}/lib/tilt/livescript.rb +11 -4
  189. data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.7.0}/lib/tilt/mapping.rb +9 -9
  190. data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.7.0}/lib/tilt/markaby.rb +11 -2
  191. data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.7.0}/lib/tilt/nokogiri.rb +13 -2
  192. data/bundle/ruby/3.2.0/gems/tilt-2.7.0/lib/tilt/pandoc.rb +81 -0
  193. data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.7.0}/lib/tilt/pipeline.rb +6 -1
  194. data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.7.0}/lib/tilt/plain.rb +5 -1
  195. data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.7.0}/lib/tilt/prawn.rb +17 -6
  196. data/bundle/ruby/3.2.0/gems/tilt-2.7.0/lib/tilt/radius.rb +96 -0
  197. data/bundle/ruby/3.2.0/gems/tilt-2.7.0/lib/tilt/rdiscount.rb +82 -0
  198. data/bundle/ruby/3.2.0/gems/tilt-2.7.0/lib/tilt/rdoc.rb +33 -0
  199. data/bundle/ruby/3.2.0/gems/tilt-2.7.0/lib/tilt/redcarpet.rb +73 -0
  200. data/bundle/ruby/3.2.0/gems/tilt-2.7.0/lib/tilt/redcloth.rb +40 -0
  201. data/bundle/ruby/3.2.0/gems/tilt-2.7.0/lib/tilt/rst-pandoc.rb +33 -0
  202. data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.7.0}/lib/tilt/sass.rb +16 -3
  203. data/bundle/ruby/3.2.0/gems/tilt-2.7.0/lib/tilt/slim.rb +18 -0
  204. data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.7.0}/lib/tilt/string.rb +10 -2
  205. data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.7.0}/lib/tilt/template.rb +189 -33
  206. data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.7.0}/lib/tilt/typescript.rb +5 -0
  207. data/bundle/ruby/3.2.0/gems/tilt-2.7.0/lib/tilt/yajl.rb +91 -0
  208. data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.7.0}/lib/tilt.rb +9 -5
  209. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.2.0/CHANGELOG.md +299 -0
  210. data/bundle/ruby/{3.1.0/gems/unicode-display_width-1.8.0 → 3.2.0/gems/unicode-display_width-3.2.0}/MIT-LICENSE.txt +1 -1
  211. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.2.0/README.md +194 -0
  212. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.2.0/data/display_width.marshal.gz +0 -0
  213. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.2.0/lib/unicode/display_width/constants.rb +10 -0
  214. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.2.0/lib/unicode/display_width/emoji_support.rb +55 -0
  215. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.2.0/lib/unicode/display_width/index.rb +34 -0
  216. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.2.0/lib/unicode/display_width/no_string_ext.rb +8 -0
  217. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.2.0/lib/unicode/display_width/reline_ext.rb +14 -0
  218. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.2.0/lib/unicode/display_width/string_ext.rb +9 -0
  219. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.2.0/lib/unicode/display_width.rb +247 -0
  220. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/CHANGELOG.md +202 -0
  221. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/CODE_OF_CONDUCT.md +74 -0
  222. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/Gemfile +9 -0
  223. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/Gemfile.lock +37 -0
  224. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/MIT-LICENSE.txt +20 -0
  225. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/README.md +205 -0
  226. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/data/emoji.marshal.gz +0 -0
  227. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/data/generate_constants.rb +344 -0
  228. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/constants.rb +50 -0
  229. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex.rb +8 -0
  230. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_basic.rb +8 -0
  231. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_emoji_keycap.rb +8 -0
  232. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_include_mqe.rb +8 -0
  233. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_include_mqe_uqe.rb +8 -0
  234. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_include_text.rb +8 -0
  235. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_picto.rb +8 -0
  236. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_picto_no_emoji.rb +8 -0
  237. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_possible.rb +8 -0
  238. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_prop_component.rb +8 -0
  239. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_prop_emoji.rb +8 -0
  240. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_prop_modifier.rb +8 -0
  241. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_prop_modifier_base.rb +8 -0
  242. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_prop_presentation.rb +8 -0
  243. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_text.rb +8 -0
  244. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_text_presentation.rb +8 -0
  245. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_valid.rb +8 -0
  246. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_valid_include_text.rb +8 -0
  247. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_well_formed.rb +8 -0
  248. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_well_formed_include_text.rb +8 -0
  249. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex.rb +8 -0
  250. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_basic.rb +8 -0
  251. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_emoji_keycap.rb +8 -0
  252. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_include_mqe.rb +8 -0
  253. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_include_mqe_uqe.rb +8 -0
  254. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_include_text.rb +8 -0
  255. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_picto.rb +8 -0
  256. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_picto_no_emoji.rb +8 -0
  257. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_possible.rb +8 -0
  258. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_prop_component.rb +8 -0
  259. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_prop_emoji.rb +8 -0
  260. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_prop_modifier.rb +8 -0
  261. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_prop_modifier_base.rb +8 -0
  262. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_prop_presentation.rb +8 -0
  263. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_text.rb +8 -0
  264. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_text_presentation.rb +8 -0
  265. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_valid.rb +8 -0
  266. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_valid_include_text.rb +8 -0
  267. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_well_formed.rb +8 -0
  268. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_well_formed_include_text.rb +8 -0
  269. data/bundle/ruby/{3.1.0/gems/unicode-display_width-1.8.0/lib/unicode/display_width → 3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji}/index.rb +5 -3
  270. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/lazy_constants.rb +56 -0
  271. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/list.rb +13 -0
  272. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji.rb +111 -0
  273. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/unicode-emoji.gemspec +22 -0
  274. data/lib/brakeman/app_tree.rb +87 -25
  275. data/lib/brakeman/checks/base_check.rb +5 -2
  276. data/lib/brakeman/checks/check_deserialize.rb +4 -1
  277. data/lib/brakeman/checks/check_eol_rails.rb +1 -0
  278. data/lib/brakeman/checks/check_eol_ruby.rb +1 -0
  279. data/lib/brakeman/checks/check_evaluation.rb +45 -8
  280. data/lib/brakeman/checks/check_model_attr_accessible.rb +1 -0
  281. data/lib/brakeman/checks/check_model_attributes.rb +1 -1
  282. data/lib/brakeman/checks/check_render.rb +6 -27
  283. data/lib/brakeman/checks/check_render_rce.rb +43 -0
  284. data/lib/brakeman/checks/check_session_settings.rb +1 -1
  285. data/lib/brakeman/checks/check_sql.rb +15 -5
  286. data/lib/brakeman/checks/check_weak_rsa_key.rb +1 -1
  287. data/lib/brakeman/checks.rb +31 -25
  288. data/lib/brakeman/commandline.rb +22 -5
  289. data/lib/brakeman/file_parser.rb +2 -0
  290. data/lib/brakeman/file_path.rb +4 -0
  291. data/lib/brakeman/logger.rb +265 -0
  292. data/lib/brakeman/messages.rb +1 -1
  293. data/lib/brakeman/options.rb +22 -16
  294. data/lib/brakeman/parsers/haml6_embedded.rb +23 -0
  295. data/lib/brakeman/parsers/rails_erubi.rb +82 -0
  296. data/lib/brakeman/parsers/template_parser.rb +39 -22
  297. data/lib/brakeman/processor.rb +4 -2
  298. data/lib/brakeman/processors/alias_processor.rb +18 -4
  299. data/lib/brakeman/processors/base_processor.rb +2 -0
  300. data/lib/brakeman/processors/controller_alias_processor.rb +1 -1
  301. data/lib/brakeman/processors/controller_processor.rb +3 -3
  302. data/lib/brakeman/processors/{erubis_template_processor.rb → erubi_template_procesor.rb} +3 -3
  303. data/lib/brakeman/processors/haml6_template_processor.rb +92 -0
  304. data/lib/brakeman/processors/haml_template_processor.rb +17 -2
  305. data/lib/brakeman/processors/lib/file_type_detector.rb +9 -7
  306. data/lib/brakeman/processors/lib/rails2_config_processor.rb +5 -4
  307. data/lib/brakeman/processors/lib/rails2_route_processor.rb +1 -1
  308. data/lib/brakeman/processors/lib/rails3_config_processor.rb +11 -2
  309. data/lib/brakeman/processors/lib/render_helper.rb +39 -2
  310. data/lib/brakeman/processors/lib/render_path.rb +1 -1
  311. data/lib/brakeman/processors/model_processor.rb +1 -1
  312. data/lib/brakeman/processors/template_processor.rb +1 -1
  313. data/lib/brakeman/report/ignore/config.rb +1 -2
  314. data/lib/brakeman/report/pager.rb +1 -1
  315. data/lib/brakeman/report/report_html.rb +1 -1
  316. data/lib/brakeman/report/report_junit.rb +4 -57
  317. data/lib/brakeman/report/report_sarif.rb +122 -2
  318. data/lib/brakeman/report/templates/header.html.erb +8 -3
  319. data/lib/brakeman/report/templates/ignored_warnings.html.erb +3 -3
  320. data/lib/brakeman/rescanner.rb +40 -390
  321. data/lib/brakeman/scanner.rb +105 -96
  322. data/lib/brakeman/tracker/collection.rb +12 -2
  323. data/lib/brakeman/tracker/config.rb +17 -13
  324. data/lib/brakeman/tracker/constants.rb +17 -2
  325. data/lib/brakeman/tracker/controller.rb +1 -1
  326. data/lib/brakeman/tracker/file_cache.rb +83 -0
  327. data/lib/brakeman/tracker.rb +32 -17
  328. data/lib/brakeman/version.rb +1 -1
  329. data/lib/brakeman.rb +130 -55
  330. data/lib/ruby_parser/bm_sexp.rb +14 -0
  331. metadata +459 -410
  332. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/CHANGES.txt +0 -828
  333. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/README.txt +0 -102
  334. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/contrib/erubis +0 -3468
  335. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/contrib/erubis-run.rb +0 -132
  336. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/contrib/inline-require +0 -179
  337. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/context.rb +0 -83
  338. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/converter.rb +0 -357
  339. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/engine/ec.rb +0 -117
  340. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/engine/ecpp.rb +0 -113
  341. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/engine/ejava.rb +0 -110
  342. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/engine/ejavascript.rb +0 -119
  343. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/engine/enhanced.rb +0 -126
  344. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb +0 -95
  345. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/engine/ephp.rb +0 -99
  346. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/engine/eruby.rb +0 -125
  347. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/engine/escheme.rb +0 -114
  348. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/engine/optimized.rb +0 -127
  349. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/engine.rb +0 -120
  350. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/enhancer.rb +0 -723
  351. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/error.rb +0 -23
  352. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/evaluator.rb +0 -88
  353. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/generator.rb +0 -85
  354. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/helper.rb +0 -47
  355. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/helpers/rails_form_helper.rb +0 -197
  356. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/helpers/rails_helper.rb +0 -353
  357. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/local-setting.rb +0 -9
  358. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/main.rb +0 -516
  359. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/preprocessing.rb +0 -58
  360. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/tiny.rb +0 -144
  361. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/util.rb +0 -22
  362. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis.rb +0 -73
  363. data/bundle/ruby/3.1.0/gems/erubis-2.7.0/setup.rb +0 -1331
  364. data/bundle/ruby/3.1.0/gems/haml-5.2.2/Gemfile +0 -16
  365. data/bundle/ruby/3.1.0/gems/haml-5.2.2/TODO +0 -24
  366. data/bundle/ruby/3.1.0/gems/haml-5.2.2/haml.gemspec +0 -45
  367. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/attribute_builder.rb +0 -219
  368. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/attribute_compiler.rb +0 -237
  369. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/attribute_parser.rb +0 -150
  370. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/buffer.rb +0 -182
  371. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/compiler.rb +0 -330
  372. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/engine.rb +0 -238
  373. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/escapable.rb +0 -77
  374. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/exec.rb +0 -347
  375. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/filters.rb +0 -399
  376. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/generator.rb +0 -42
  377. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/action_view_extensions.rb +0 -60
  378. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/action_view_mods.rb +0 -132
  379. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/action_view_xss_mods.rb +0 -60
  380. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/safe_erubi_template.rb +0 -20
  381. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/safe_erubis_template.rb +0 -33
  382. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/xss_mods.rb +0 -114
  383. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers.rb +0 -709
  384. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/options.rb +0 -273
  385. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/plugin.rb +0 -54
  386. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/railtie.rb +0 -53
  387. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/sass_rails_filter.rb +0 -47
  388. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/template/options.rb +0 -27
  389. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/template.rb +0 -39
  390. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/temple_engine.rb +0 -124
  391. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml.rb +0 -25
  392. data/bundle/ruby/3.1.0/gems/haml-5.2.2/yard/default/fulldoc/html/css/common.sass +0 -15
  393. data/bundle/ruby/3.1.0/gems/haml-5.2.2/yard/default/layout/html/footer.erb +0 -12
  394. data/bundle/ruby/3.1.0/gems/parallel-1.26.3/lib/parallel/version.rb +0 -4
  395. data/bundle/ruby/3.1.0/gems/reline-0.5.10/lib/reline/terminfo.rb +0 -158
  396. data/bundle/ruby/3.1.0/gems/reline-0.5.10/lib/reline/unicode.rb +0 -671
  397. data/bundle/ruby/3.1.0/gems/reline-0.5.10/lib/reline/version.rb +0 -3
  398. data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/Manifest.txt +0 -48
  399. data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby20_parser.y +0 -2707
  400. data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby21_parser.y +0 -2724
  401. data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby22_parser.y +0 -2735
  402. data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby23_parser.y +0 -2737
  403. data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby24_parser.y +0 -2745
  404. data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby25_parser.y +0 -2745
  405. data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby26_parser.y +0 -2760
  406. data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby27_parser.y +0 -3360
  407. data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby30_parser.y +0 -3508
  408. data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby31_parser.y +0 -3542
  409. data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby32_parser.rb +0 -13601
  410. data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby32_parser.y +0 -3543
  411. data/bundle/ruby/3.1.0/gems/terminal-table-1.8.0/History.rdoc +0 -85
  412. data/bundle/ruby/3.1.0/gems/terminal-table-1.8.0/README.rdoc +0 -247
  413. data/bundle/ruby/3.1.0/gems/terminal-table-1.8.0/lib/terminal-table/separator.rb +0 -14
  414. data/bundle/ruby/3.1.0/gems/terminal-table-1.8.0/lib/terminal-table/style.rb +0 -79
  415. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/creole.rb +0 -14
  416. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/csv.rb +0 -53
  417. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/erb.rb +0 -65
  418. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/erubis.rb +0 -51
  419. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/kramdown.rb +0 -13
  420. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/liquid.rb +0 -40
  421. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/maruku.rb +0 -10
  422. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/pandoc.rb +0 -39
  423. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/radius.rb +0 -41
  424. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/rdiscount.rb +0 -23
  425. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/rdoc.rb +0 -19
  426. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/redcarpet.rb +0 -31
  427. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/redcloth.rb +0 -13
  428. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/rst-pandoc.rb +0 -10
  429. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/slim.rb +0 -5
  430. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/wikicloth.rb +0 -12
  431. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/yajl.rb +0 -81
  432. data/bundle/ruby/3.1.0/gems/unicode-display_width-1.8.0/CHANGELOG.md +0 -137
  433. data/bundle/ruby/3.1.0/gems/unicode-display_width-1.8.0/README.md +0 -124
  434. data/bundle/ruby/3.1.0/gems/unicode-display_width-1.8.0/data/display_width.marshal.gz +0 -0
  435. data/bundle/ruby/3.1.0/gems/unicode-display_width-1.8.0/lib/unicode/display_width/constants.rb +0 -8
  436. data/bundle/ruby/3.1.0/gems/unicode-display_width-1.8.0/lib/unicode/display_width/no_string_ext.rb +0 -7
  437. data/bundle/ruby/3.1.0/gems/unicode-display_width-1.8.0/lib/unicode/display_width/string_ext.rb +0 -17
  438. data/bundle/ruby/3.1.0/gems/unicode-display_width-1.8.0/lib/unicode/display_width.rb +0 -51
  439. data/lib/brakeman/parsers/erubis_patch.rb +0 -11
  440. data/lib/brakeman/parsers/rails2_erubis.rb +0 -9
  441. data/lib/brakeman/parsers/rails2_xss_plugin_erubis.rb +0 -52
  442. data/lib/brakeman/parsers/rails3_erubis.rb +0 -85
  443. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/AUTHORS +0 -0
  444. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/COPYING +0 -0
  445. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/LICENSE +0 -0
  446. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/README.md +0 -0
  447. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/TODO +0 -0
  448. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/highline.gemspec +0 -0
  449. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/builtin_styles.rb +0 -0
  450. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/color_scheme.rb +0 -0
  451. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/compatibility.rb +0 -0
  452. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/custom_errors.rb +0 -0
  453. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/import.rb +0 -0
  454. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/io_console_compatible.rb +0 -0
  455. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/list.rb +0 -0
  456. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/menu/item.rb +0 -0
  457. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/paginator.rb +0 -0
  458. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/question/answer_converter.rb +0 -0
  459. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/question.rb +0 -0
  460. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/question_asker.rb +0 -0
  461. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/simulate.rb +0 -0
  462. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/statement.rb +0 -0
  463. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/string.rb +0 -0
  464. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/string_extensions.rb +0 -0
  465. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/style.rb +0 -0
  466. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/template_renderer.rb +0 -0
  467. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/terminal/io_console.rb +0 -0
  468. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/terminal/ncurses.rb +0 -0
  469. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/terminal/unix_stty.rb +0 -0
  470. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/terminal.rb +0 -0
  471. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/wrapper.rb +0 -0
  472. /data/bundle/ruby/{3.1.0/gems/parallel-1.26.3 → 3.2.0/gems/parallel-1.27.0}/MIT-LICENSE.txt +0 -0
  473. /data/bundle/ruby/{3.1.0/gems/reline-0.5.10 → 3.2.0/gems/reline-0.6.3}/BSDL +0 -0
  474. /data/bundle/ruby/{3.1.0/gems/reline-0.5.10 → 3.2.0/gems/reline-0.6.3}/COPYING +0 -0
  475. /data/bundle/ruby/{3.1.0/gems/reline-0.5.10 → 3.2.0/gems/reline-0.6.3}/README.md +0 -0
  476. /data/bundle/ruby/{3.1.0/gems/reline-0.5.10 → 3.2.0/gems/reline-0.6.3}/lib/reline/face.rb +0 -0
  477. /data/bundle/ruby/{3.1.0/gems/reline-0.5.10 → 3.2.0/gems/reline-0.6.3}/lib/reline/key_actor/composite.rb +0 -0
  478. /data/bundle/ruby/{3.1.0/gems/reline-0.5.10 → 3.2.0/gems/reline-0.6.3}/lib/reline/key_actor.rb +0 -0
  479. /data/bundle/ruby/{3.1.0/gems/reline-0.5.10 → 3.2.0/gems/reline-0.6.3}/lib/reline/kill_ring.rb +0 -0
  480. /data/bundle/ruby/{3.1.0/gems/reline-0.5.10 → 3.2.0/gems/reline-0.6.3}/license_of_rb-readline +0 -0
  481. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/LICENSE.txt +0 -0
  482. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/README.md +0 -0
  483. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/attlistdecl.rb +0 -0
  484. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/dtd/attlistdecl.rb +0 -0
  485. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/dtd/dtd.rb +0 -0
  486. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/dtd/elementdecl.rb +0 -0
  487. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/dtd/entitydecl.rb +0 -0
  488. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/dtd/notationdecl.rb +0 -0
  489. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/entity.rb +0 -0
  490. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/formatters/default.rb +0 -0
  491. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/formatters/pretty.rb +0 -0
  492. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/formatters/transitive.rb +0 -0
  493. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/light/node.rb +0 -0
  494. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/output.rb +0 -0
  495. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/parent.rb +0 -0
  496. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/parseexception.rb +0 -0
  497. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/parsers/lightparser.rb +0 -0
  498. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/parsers/sax2parser.rb +0 -0
  499. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/parsers/streamparser.rb +0 -0
  500. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/parsers/treeparser.rb +0 -0
  501. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/parsers/ultralightparser.rb +0 -0
  502. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/sax2listener.rb +0 -0
  503. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/streamlistener.rb +0 -0
  504. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/undefinednamespaceexception.rb +0 -0
  505. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/validation/validationexception.rb +0 -0
  506. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/xmldecl.rb +0 -0
  507. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml/xmltokens.rb +0 -0
  508. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml.rb +0 -0
  509. /data/bundle/ruby/{3.1.0/gems/ruby2ruby-2.5.1 → 3.2.0/gems/ruby2ruby-2.5.2}/Manifest.txt +0 -0
  510. /data/bundle/ruby/{3.1.0/gems/ruby2ruby-2.5.1 → 3.2.0/gems/ruby2ruby-2.5.2}/README.rdoc +0 -0
  511. /data/bundle/ruby/{3.1.0/gems/ruby_parser-3.20.3 → 3.2.0/gems/ruby_parser-3.22.0}/debugging.md +0 -0
  512. /data/bundle/ruby/{3.1.0/gems/ruby_parser-3.20.3 → 3.2.0/gems/ruby_parser-3.22.0}/lib/rp_extensions.rb +0 -0
  513. /data/bundle/ruby/{3.1.0/gems/ruby_parser-3.20.3 → 3.2.0/gems/ruby_parser-3.22.0}/lib/rp_stringscanner.rb +0 -0
  514. /data/bundle/ruby/{3.1.0/gems/ruby_parser-3.20.3 → 3.2.0/gems/ruby_parser-3.22.0}/lib/ruby_lexer.rex +0 -0
  515. /data/bundle/ruby/{3.1.0/gems/ruby_parser-3.20.3 → 3.2.0/gems/ruby_parser-3.22.0}/lib/ruby_lexer_strings.rb +0 -0
  516. /data/bundle/ruby/{3.1.0/gems/ruby_parser-3.20.3 → 3.2.0/gems/ruby_parser-3.22.0}/tools/munge.rb +0 -0
  517. /data/bundle/ruby/{3.1.0/gems/ruby_parser-3.20.3 → 3.2.0/gems/ruby_parser-3.22.0}/tools/ripper.rb +0 -0
  518. /data/bundle/ruby/{3.1.0/gems/sexp_processor-4.17.2 → 3.2.0/gems/sexp_processor-4.17.5}/Manifest.txt +0 -0
  519. /data/bundle/ruby/{3.1.0/gems/sexp_processor-4.17.2 → 3.2.0/gems/sexp_processor-4.17.5}/README.rdoc +0 -0
  520. /data/bundle/ruby/{3.1.0/gems/sexp_processor-4.17.2 → 3.2.0/gems/sexp_processor-4.17.5}/lib/composite_sexp_processor.rb +0 -0
  521. /data/bundle/ruby/{3.1.0/gems/sexp_processor-4.17.2 → 3.2.0/gems/sexp_processor-4.17.5}/lib/sexp_matcher.rb +0 -0
  522. /data/bundle/ruby/{3.1.0/gems/sexp_processor-4.17.2 → 3.2.0/gems/sexp_processor-4.17.5}/lib/strict_sexp.rb +0 -0
  523. /data/bundle/ruby/{3.1.0/gems/sexp_processor-4.17.2 → 3.2.0/gems/sexp_processor-4.17.5}/lib/unique.rb +0 -0
  524. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/CHANGES +0 -0
  525. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/Gemfile +0 -0
  526. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/LICENSE +0 -0
  527. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/README.jp.md +0 -0
  528. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/README.md +0 -0
  529. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/code_attributes.rb +0 -0
  530. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/command.rb +0 -0
  531. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/controls.rb +0 -0
  532. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/do_inserter.rb +0 -0
  533. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/embedded.rb +0 -0
  534. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/end_inserter.rb +0 -0
  535. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/engine.rb +0 -0
  536. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/erb_converter.rb +0 -0
  537. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/filter.rb +0 -0
  538. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/grammar.rb +0 -0
  539. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/include.rb +0 -0
  540. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/interpolation.rb +0 -0
  541. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/logic_less/context.rb +0 -0
  542. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/logic_less/filter.rb +0 -0
  543. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/logic_less.rb +0 -0
  544. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/parser.rb +0 -0
  545. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/railtie.rb +0 -0
  546. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/smart/escaper.rb +0 -0
  547. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/smart/filter.rb +0 -0
  548. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/smart/parser.rb +0 -0
  549. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/smart.rb +0 -0
  550. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/splat/builder.rb +0 -0
  551. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/splat/filter.rb +0 -0
  552. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/template.rb +0 -0
  553. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/translator.rb +0 -0
  554. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/version.rb +0 -0
  555. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim.rb +0 -0
  556. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/slim.gemspec +0 -0
  557. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/EXPRESSIONS.md +0 -0
  558. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/Gemfile +0 -0
  559. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/LICENSE +0 -0
  560. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/README.md +0 -0
  561. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/engine.rb +0 -0
  562. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/erb/engine.rb +0 -0
  563. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/erb/parser.rb +0 -0
  564. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/erb/template.rb +0 -0
  565. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/erb/trimming.rb +0 -0
  566. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/exceptions.rb +0 -0
  567. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/filter.rb +0 -0
  568. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/filters/ambles.rb +0 -0
  569. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/filters/code_merger.rb +0 -0
  570. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/filters/control_flow.rb +0 -0
  571. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/filters/dynamic_inliner.rb +0 -0
  572. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/filters/dynamic_merger.rb +0 -0
  573. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/filters/eraser.rb +0 -0
  574. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/filters/escapable.rb +0 -0
  575. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/filters/multi_flattener.rb +0 -0
  576. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/filters/remove_bom.rb +0 -0
  577. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/filters/static_analyzer.rb +0 -0
  578. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/filters/static_merger.rb +0 -0
  579. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/filters/string_splitter.rb +0 -0
  580. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/filters/validator.rb +0 -0
  581. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/generator.rb +0 -0
  582. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/generators/array.rb +0 -0
  583. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/generators/array_buffer.rb +0 -0
  584. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/generators/erb.rb +0 -0
  585. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/generators/rails_output_buffer.rb +0 -0
  586. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/generators/string_buffer.rb +0 -0
  587. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/grammar.rb +0 -0
  588. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/html/attribute_merger.rb +0 -0
  589. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/html/attribute_remover.rb +0 -0
  590. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/html/attribute_sorter.rb +0 -0
  591. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/html/dispatcher.rb +0 -0
  592. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/html/fast.rb +0 -0
  593. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/html/filter.rb +0 -0
  594. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/html/pretty.rb +0 -0
  595. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/html/safe.rb +0 -0
  596. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/map.rb +0 -0
  597. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/mixins/dispatcher.rb +0 -0
  598. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/mixins/engine_dsl.rb +0 -0
  599. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/mixins/grammar_dsl.rb +0 -0
  600. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/mixins/options.rb +0 -0
  601. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/mixins/template.rb +0 -0
  602. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/parser.rb +0 -0
  603. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/static_analyzer.rb +0 -0
  604. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/templates/rails.rb +0 -0
  605. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/templates/tilt.rb +0 -0
  606. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/templates.rb +0 -0
  607. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple/utils.rb +0 -0
  608. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple.rb +0 -0
  609. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/temple.gemspec +0 -0
  610. /data/bundle/ruby/{3.1.0/gems/terminal-table-1.8.0 → 3.2.0/gems/terminal-table-4.0.0}/Gemfile +0 -0
  611. /data/bundle/ruby/{3.1.0/gems/terminal-table-1.8.0 → 3.2.0/gems/terminal-table-4.0.0}/LICENSE.txt +0 -0
  612. /data/bundle/ruby/{3.1.0/gems/terminal-table-1.8.0 → 3.2.0/gems/terminal-table-4.0.0}/Manifest +0 -0
  613. /data/bundle/ruby/{3.1.0/gems/terminal-table-1.8.0 → 3.2.0/gems/terminal-table-4.0.0}/Todo.rdoc +0 -0
  614. /data/bundle/ruby/{3.1.0/gems/terminal-table-1.8.0 → 3.2.0/gems/terminal-table-4.0.0}/lib/terminal-table/import.rb +0 -0
  615. /data/bundle/ruby/{3.1.0/gems/terminal-table-1.8.0 → 3.2.0/gems/terminal-table-4.0.0}/lib/terminal-table/table_helper.rb +0 -0
  616. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.7.0}/COPYING +0 -0
  617. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.7.0}/lib/tilt/_emacs_org.rb +0 -0
  618. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.7.0}/lib/tilt/_handlebars.rb +0 -0
  619. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.7.0}/lib/tilt/_jbuilder.rb +0 -0
  620. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.7.0}/lib/tilt/_org.rb +0 -0
  621. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.7.0}/lib/tilt/cli.rb +0 -0
@@ -2,18 +2,6 @@ require 'io/console'
2
2
  require 'io/wait'
3
3
 
4
4
  class Reline::ANSI < Reline::IO
5
- CAPNAME_KEY_BINDINGS = {
6
- 'khome' => :ed_move_to_beg,
7
- 'kend' => :ed_move_to_end,
8
- 'kdch1' => :key_delete,
9
- 'kpp' => :ed_search_prev_history,
10
- 'knp' => :ed_search_next_history,
11
- 'kcuu1' => :ed_prev_history,
12
- 'kcud1' => :ed_next_history,
13
- 'kcuf1' => :ed_next_char,
14
- 'kcub1' => :ed_prev_char,
15
- }
16
-
17
5
  ANSI_CURSOR_KEY_BINDINGS = {
18
6
  # Up
19
7
  'A' => [:ed_prev_history, {}],
@@ -29,29 +17,27 @@ class Reline::ANSI < Reline::IO
29
17
  'H' => [:ed_move_to_beg, {}],
30
18
  }
31
19
 
32
- if Reline::Terminfo.enabled?
33
- Reline::Terminfo.setupterm(0, 2)
34
- end
20
+ attr_writer :input, :output
35
21
 
36
22
  def initialize
37
23
  @input = STDIN
38
24
  @output = STDOUT
39
25
  @buf = []
26
+ @output_buffer = nil
40
27
  @old_winch_handler = nil
41
28
  end
42
29
 
43
30
  def encoding
31
+ @input.external_encoding || Encoding.default_external
32
+ rescue IOError
33
+ # STDIN.external_encoding raises IOError in Ruby <= 3.0 when STDIN is closed
44
34
  Encoding.default_external
45
35
  end
46
36
 
47
- def set_default_key_bindings(config, allow_terminfo: true)
37
+ def set_default_key_bindings(config)
48
38
  set_bracketed_paste_key_bindings(config)
49
39
  set_default_key_bindings_ansi_cursor(config)
50
- if allow_terminfo && Reline::Terminfo.enabled?
51
- set_default_key_bindings_terminfo(config)
52
- else
53
- set_default_key_bindings_comprehensive_list(config)
54
- end
40
+ set_default_key_bindings_comprehensive_list(config)
55
41
  {
56
42
  [27, 91, 90] => :completion_journey_up, # S-Tab
57
43
  }.each_pair do |key, func|
@@ -75,7 +61,10 @@ class Reline::ANSI < Reline::IO
75
61
 
76
62
  def set_default_key_bindings_ansi_cursor(config)
77
63
  ANSI_CURSOR_KEY_BINDINGS.each do |char, (default_func, modifiers)|
78
- bindings = [["\e[#{char}", default_func]] # CSI + char
64
+ bindings = [
65
+ ["\e[#{char}", default_func], # CSI + char
66
+ ["\eO#{char}", default_func] # SS3 + char, application cursor key mode
67
+ ]
79
68
  if modifiers[:ctrl]
80
69
  # CSI + ctrl_key_modifier + char
81
70
  bindings << ["\e[1;5#{char}", modifiers[:ctrl]]
@@ -95,23 +84,6 @@ class Reline::ANSI < Reline::IO
95
84
  end
96
85
  end
97
86
 
98
- def set_default_key_bindings_terminfo(config)
99
- key_bindings = CAPNAME_KEY_BINDINGS.map do |capname, key_binding|
100
- begin
101
- key_code = Reline::Terminfo.tigetstr(capname)
102
- [ key_code.bytes, key_binding ]
103
- rescue Reline::Terminfo::TerminfoError
104
- # capname is undefined
105
- end
106
- end.compact.to_h
107
-
108
- key_bindings.each_pair do |key, func|
109
- config.add_default_key_binding_by_keymap(:emacs, key, func)
110
- config.add_default_key_binding_by_keymap(:vi_insert, key, func)
111
- config.add_default_key_binding_by_keymap(:vi_command, key, func)
112
- end
113
- end
114
-
115
87
  def set_default_key_bindings_comprehensive_list(config)
116
88
  {
117
89
  # xterm
@@ -123,27 +95,9 @@ class Reline::ANSI < Reline::IO
123
95
  [27, 91, 49, 126] => :ed_move_to_beg, # Home
124
96
  [27, 91, 52, 126] => :ed_move_to_end, # End
125
97
 
126
- # KDE
127
- # Del is 0x08
128
- [27, 71, 65] => :ed_prev_history, # ↑
129
- [27, 71, 66] => :ed_next_history, # ↓
130
- [27, 71, 67] => :ed_next_char, # →
131
- [27, 71, 68] => :ed_prev_char, # ←
132
-
133
98
  # urxvt / exoterm
134
99
  [27, 91, 55, 126] => :ed_move_to_beg, # Home
135
100
  [27, 91, 56, 126] => :ed_move_to_end, # End
136
-
137
- # GNOME
138
- [27, 79, 72] => :ed_move_to_beg, # Home
139
- [27, 79, 70] => :ed_move_to_end, # End
140
- # Del is 0x08
141
- # Arrow keys are the same of KDE
142
-
143
- [27, 79, 65] => :ed_prev_history, # ↑
144
- [27, 79, 66] => :ed_next_history, # ↓
145
- [27, 79, 67] => :ed_next_char, # →
146
- [27, 79, 68] => :ed_prev_char, # ←
147
101
  }.each_pair do |key, func|
148
102
  config.add_default_key_binding_by_keymap(:emacs, key, func)
149
103
  config.add_default_key_binding_by_keymap(:vi_insert, key, func)
@@ -151,14 +105,6 @@ class Reline::ANSI < Reline::IO
151
105
  end
152
106
  end
153
107
 
154
- def input=(val)
155
- @input = val
156
- end
157
-
158
- def output=(val)
159
- @output = val
160
- end
161
-
162
108
  def with_raw_input
163
109
  if @input.tty?
164
110
  @input.raw(intr: true) { yield }
@@ -178,6 +124,10 @@ class Reline::ANSI < Reline::IO
178
124
  Reline.core.line_editor.handle_signal
179
125
  end
180
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".
181
131
  (c == 0x16 && @input.tty? && @input.raw(min: 0, time: 0, &:getbyte)) || c
182
132
  rescue Errno::EIO
183
133
  # Maybe the I/O has been closed.
@@ -217,80 +167,74 @@ class Reline::ANSI < Reline::IO
217
167
  @buf.unshift(c)
218
168
  end
219
169
 
220
- def retrieve_keybuffer
221
- begin
222
- return unless @input.wait_readable(0.001)
223
- str = @input.read_nonblock(1024)
224
- str.bytes.each do |c|
225
- @buf.push(c)
226
- end
227
- rescue EOFError
228
- end
229
- end
230
-
231
170
  def get_screen_size
232
171
  s = @input.winsize
233
172
  return s if s[0] > 0 && s[1] > 0
234
173
  s = [ENV["LINES"].to_i, ENV["COLUMNS"].to_i]
235
174
  return s if s[0] > 0 && s[1] > 0
236
175
  [24, 80]
237
- rescue Errno::ENOTTY, Errno::ENODEV
176
+ rescue SystemCallError
238
177
  [24, 80]
239
178
  end
240
179
 
241
180
  def set_screen_size(rows, columns)
242
181
  @input.winsize = [rows, columns]
243
182
  self
244
- rescue Errno::ENOTTY, Errno::ENODEV
183
+ rescue SystemCallError
245
184
  self
246
185
  end
247
186
 
248
- def cursor_pos
249
- if both_tty?
250
- res = +''
251
- m = nil
252
- @input.raw do |stdin|
253
- @output << "\e[6n"
254
- @output.flush
255
- loop do
256
- c = stdin.getc
257
- next if c.nil?
258
- res << c
259
- m = res.match(/\e\[(?<row>\d+);(?<column>\d+)R/)
260
- break if m
261
- end
262
- (m.pre_match + m.post_match).chars.reverse_each do |ch|
263
- stdin.ungetc ch
187
+ private def cursor_pos_internal(timeout:)
188
+ match = nil
189
+ @input.raw do |stdin|
190
+ @output << "\e[6n"
191
+ @output.flush
192
+ timeout_at = Time.now + timeout
193
+ buf = +''
194
+ while (wait = timeout_at - Time.now) > 0 && stdin.wait_readable(wait)
195
+ buf << stdin.readpartial(1024)
196
+ if (match = buf.match(/\e\[(?<row>\d+);(?<column>\d+)R/))
197
+ buf = match.pre_match + match.post_match
198
+ break
264
199
  end
265
200
  end
266
- column = m[:column].to_i - 1
267
- row = m[:row].to_i - 1
268
- else
269
- begin
270
- buf = @output.pread(@output.pos, 0)
271
- row = buf.count("\n")
272
- column = buf.rindex("\n") ? (buf.size - buf.rindex("\n")) - 1 : 0
273
- rescue Errno::ESPIPE, IOError
274
- # Just returns column 1 for ambiguous width because this I/O is not
275
- # tty and can't seek.
276
- row = 0
277
- column = 1
278
- end
201
+ @buf.concat buf.bytes
279
202
  end
280
- Reline::CursorPos.new(column, row)
203
+ [match[:column].to_i - 1, match[:row].to_i - 1] if match
204
+ end
205
+
206
+ def cursor_pos
207
+ col, row = cursor_pos_internal(timeout: 0.5) if both_tty?
208
+ Reline::CursorPos.new(col || 0, row || 0)
281
209
  end
282
210
 
283
211
  def both_tty?
284
212
  @input.tty? && @output.tty?
285
213
  end
286
214
 
215
+ def write(string)
216
+ if @output_buffer
217
+ @output_buffer << string
218
+ else
219
+ @output.write(string)
220
+ end
221
+ end
222
+
223
+ def buffered_output
224
+ @output_buffer = +''
225
+ yield
226
+ @output.write(@output_buffer)
227
+ ensure
228
+ @output_buffer = nil
229
+ end
230
+
287
231
  def move_cursor_column(x)
288
- @output.write "\e[#{x + 1}G"
232
+ write "\e[#{x + 1}G"
289
233
  end
290
234
 
291
235
  def move_cursor_up(x)
292
236
  if x > 0
293
- @output.write "\e[#{x}A"
237
+ write "\e[#{x}A"
294
238
  elsif x < 0
295
239
  move_cursor_down(-x)
296
240
  end
@@ -298,38 +242,22 @@ class Reline::ANSI < Reline::IO
298
242
 
299
243
  def move_cursor_down(x)
300
244
  if x > 0
301
- @output.write "\e[#{x}B"
245
+ write "\e[#{x}B"
302
246
  elsif x < 0
303
247
  move_cursor_up(-x)
304
248
  end
305
249
  end
306
250
 
307
251
  def hide_cursor
308
- seq = "\e[?25l"
309
- if Reline::Terminfo.enabled? && Reline::Terminfo.term_supported?
310
- begin
311
- seq = Reline::Terminfo.tigetstr('civis')
312
- rescue Reline::Terminfo::TerminfoError
313
- # civis is undefined
314
- end
315
- end
316
- @output.write seq
252
+ write "\e[?25l"
317
253
  end
318
254
 
319
255
  def show_cursor
320
- seq = "\e[?25h"
321
- if Reline::Terminfo.enabled? && Reline::Terminfo.term_supported?
322
- begin
323
- seq = Reline::Terminfo.tigetstr('cnorm')
324
- rescue Reline::Terminfo::TerminfoError
325
- # cnorm is undefined
326
- end
327
- end
328
- @output.write seq
256
+ write "\e[?25h"
329
257
  end
330
258
 
331
259
  def erase_after_cursor
332
- @output.write "\e[K"
260
+ write "\e[K"
333
261
  end
334
262
 
335
263
  # This only works when the cursor is at the bottom of the scroll range
@@ -337,35 +265,45 @@ class Reline::ANSI < Reline::IO
337
265
  def scroll_down(x)
338
266
  return if x.zero?
339
267
  # We use `\n` instead of CSI + S because CSI + S would cause https://github.com/ruby/reline/issues/576
340
- @output.write "\n" * x
268
+ write "\n" * x
341
269
  end
342
270
 
343
271
  def clear_screen
344
- @output.write "\e[2J"
345
- @output.write "\e[1;1H"
272
+ write "\e[2J"
273
+ write "\e[1;1H"
346
274
  end
347
275
 
348
276
  def set_winch_handler(&handler)
349
- @old_winch_handler = Signal.trap('WINCH', &handler)
350
- @old_cont_handler = Signal.trap('CONT') do
277
+ @old_winch_handler = Signal.trap('WINCH') do |arg|
278
+ handler.call
279
+ @old_winch_handler.call(arg) if @old_winch_handler.respond_to?(:call)
280
+ end
281
+ @old_cont_handler = Signal.trap('CONT') do |arg|
351
282
  @input.raw!(intr: true) if @input.tty?
352
283
  # Rerender the screen. Note that screen size might be changed while suspended.
353
284
  handler.call
285
+ @old_cont_handler.call(arg) if @old_cont_handler.respond_to?(:call)
354
286
  end
355
287
  rescue ArgumentError
356
288
  # Signal.trap may raise an ArgumentError if the platform doesn't support the signal.
357
289
  end
358
290
 
291
+ def read_single_char(timeout_second)
292
+ # Disable intr to read `C-c` `C-z` `C-\` for quoted insert
293
+ @input.raw(intr: false) do
294
+ super
295
+ end
296
+ end
297
+
359
298
  def prep
360
299
  # Enable bracketed paste
361
- @output.write "\e[?2004h" if Reline.core.config.enable_bracketed_paste && both_tty?
362
- retrieve_keybuffer
300
+ write "\e[?2004h" if Reline.core.config.enable_bracketed_paste && both_tty?
363
301
  nil
364
302
  end
365
303
 
366
304
  def deprep(otio)
367
305
  # Disable bracketed paste
368
- @output.write "\e[?2004l" if Reline.core.config.enable_bracketed_paste && both_tty?
306
+ write "\e[?2004l" if Reline.core.config.enable_bracketed_paste && both_tty?
369
307
  Signal.trap('WINCH', @old_winch_handler) if @old_winch_handler
370
308
  Signal.trap('CONT', @old_cont_handler) if @old_cont_handler
371
309
  end
@@ -3,8 +3,11 @@ require 'io/wait'
3
3
  class Reline::Dumb < Reline::IO
4
4
  RESET_COLOR = '' # Do not send color reset sequence
5
5
 
6
+ attr_writer :output
7
+
6
8
  def initialize(encoding: nil)
7
9
  @input = STDIN
10
+ @output = STDOUT
8
11
  @buf = []
9
12
  @pasting = false
10
13
  @encoding = encoding
@@ -21,8 +24,11 @@ class Reline::Dumb < Reline::IO
21
24
  elsif RUBY_PLATFORM =~ /mswin|mingw/
22
25
  Encoding::UTF_8
23
26
  else
24
- Encoding::default_external
27
+ @input.external_encoding || Encoding.default_external
25
28
  end
29
+ rescue IOError
30
+ # STDIN.external_encoding raises IOError in Ruby <= 3.0 when STDIN is closed
31
+ Encoding.default_external
26
32
  end
27
33
 
28
34
  def set_default_key_bindings(_)
@@ -36,6 +42,14 @@ class Reline::Dumb < Reline::IO
36
42
  yield
37
43
  end
38
44
 
45
+ def write(string)
46
+ @output.write(string)
47
+ end
48
+
49
+ def buffered_output
50
+ yield
51
+ end
52
+
39
53
  def getc(_timeout_second)
40
54
  unless @buf.empty?
41
55
  return @buf.shift
@@ -60,7 +74,7 @@ class Reline::Dumb < Reline::IO
60
74
  end
61
75
 
62
76
  def cursor_pos
63
- Reline::CursorPos.new(1, 1)
77
+ Reline::CursorPos.new(0, 0)
64
78
  end
65
79
 
66
80
  def hide_cursor
@@ -1,6 +1,9 @@
1
1
  require 'fiddle/import'
2
2
 
3
3
  class Reline::Windows < Reline::IO
4
+
5
+ attr_writer :output
6
+
4
7
  def initialize
5
8
  @input_buf = []
6
9
  @output_buf = []
@@ -52,7 +55,6 @@ class Reline::Windows < Reline::IO
52
55
  [224, 83] => :key_delete, # Del
53
56
  [224, 71] => :ed_move_to_beg, # Home
54
57
  [224, 79] => :ed_move_to_end, # End
55
- [ 0, 41] => :ed_unassigned, # input method on/off
56
58
  [ 0, 72] => :ed_prev_history, # ↑
57
59
  [ 0, 80] => :ed_next_history, # ↓
58
60
  [ 0, 77] => :ed_next_char, # →
@@ -157,6 +159,7 @@ class Reline::Windows < Reline::IO
157
159
  STD_OUTPUT_HANDLE = -11
158
160
  FILE_TYPE_PIPE = 0x0003
159
161
  FILE_NAME_INFO = 2
162
+ ENABLE_WRAP_AT_EOL_OUTPUT = 2
160
163
  ENABLE_VIRTUAL_TERMINAL_PROCESSING = 4
161
164
 
162
165
  # Calling Win32API with console handle is reported to fail after executing some external command.
@@ -170,7 +173,7 @@ class Reline::Windows < Reline::IO
170
173
  end
171
174
 
172
175
  private def getconsolemode
173
- mode = "\000\000\000\000"
176
+ mode = +"\0\0\0\0"
174
177
  call_with_console_handle(@GetConsoleMode, mode)
175
178
  mode.unpack1('L')
176
179
  end
@@ -252,7 +255,7 @@ class Reline::Windows < Reline::IO
252
255
 
253
256
  key = KeyEventRecord.new(virtual_key_code, char_code, control_key_state)
254
257
 
255
- match = KEY_MAP.find { |args,| key.matches?(**args) }
258
+ match = KEY_MAP.find { |args,| key.match?(**args) }
256
259
  unless match.nil?
257
260
  @output_buf.concat(match.last)
258
261
  return
@@ -307,6 +310,14 @@ class Reline::Windows < Reline::IO
307
310
  yield
308
311
  end
309
312
 
313
+ def write(string)
314
+ @output.write(string)
315
+ end
316
+
317
+ def buffered_output
318
+ yield
319
+ end
320
+
310
321
  def getc(_timeout_second)
311
322
  check_input_event
312
323
  @output_buf.shift
@@ -344,35 +355,38 @@ class Reline::Windows < Reline::IO
344
355
  # [18,2] dwMaximumWindowSize.X
345
356
  # [20,2] dwMaximumWindowSize.Y
346
357
  csbi = 0.chr * 22
347
- return if call_with_console_handle(@GetConsoleScreenBufferInfo, csbi) == 0
348
- csbi
358
+ if call_with_console_handle(@GetConsoleScreenBufferInfo, csbi) != 0
359
+ # returns [width, height, x, y, attributes, left, top, right, bottom]
360
+ csbi.unpack("s9")
361
+ else
362
+ return nil
363
+ end
349
364
  end
350
365
 
366
+ ALTERNATIVE_CSBI = [80, 24, 0, 0, 7, 0, 0, 79, 23].freeze
367
+
351
368
  def get_screen_size
352
- unless csbi = get_console_screen_buffer_info
353
- return [1, 1]
354
- end
355
- csbi[0, 4].unpack('SS').reverse
369
+ width, _, _, _, _, _, top, _, bottom = get_console_screen_buffer_info || ALTERNATIVE_CSBI
370
+ [bottom - top + 1, width]
356
371
  end
357
372
 
358
373
  def cursor_pos
359
- unless csbi = get_console_screen_buffer_info
360
- return Reline::CursorPos.new(0, 0)
361
- end
362
- x = csbi[4, 2].unpack1('s')
363
- y = csbi[6, 2].unpack1('s')
364
- Reline::CursorPos.new(x, y)
374
+ _, _, x, y, _, _, top, = get_console_screen_buffer_info || ALTERNATIVE_CSBI
375
+ Reline::CursorPos.new(x, y - top)
365
376
  end
366
377
 
367
378
  def move_cursor_column(val)
368
- call_with_console_handle(@SetConsoleCursorPosition, cursor_pos.y * 65536 + val)
379
+ _, _, _, y, = get_console_screen_buffer_info
380
+ call_with_console_handle(@SetConsoleCursorPosition, y * 65536 + val) if y
369
381
  end
370
382
 
371
383
  def move_cursor_up(val)
372
384
  if val > 0
373
- y = cursor_pos.y - val
385
+ _, _, x, y, _, _, top, = get_console_screen_buffer_info
386
+ return unless y
387
+ y = (y - top) - val
374
388
  y = 0 if y < 0
375
- call_with_console_handle(@SetConsoleCursorPosition, y * 65536 + cursor_pos.x)
389
+ call_with_console_handle(@SetConsoleCursorPosition, (y + top) * 65536 + x)
376
390
  elsif val < 0
377
391
  move_cursor_down(-val)
378
392
  end
@@ -380,58 +394,39 @@ class Reline::Windows < Reline::IO
380
394
 
381
395
  def move_cursor_down(val)
382
396
  if val > 0
383
- return unless csbi = get_console_screen_buffer_info
384
- screen_height = get_screen_size.first
385
- y = cursor_pos.y + val
386
- y = screen_height - 1 if y > (screen_height - 1)
387
- call_with_console_handle(@SetConsoleCursorPosition, (cursor_pos.y + val) * 65536 + cursor_pos.x)
397
+ _, _, x, y, _, _, top, _, bottom = get_console_screen_buffer_info
398
+ return unless y
399
+ screen_height = bottom - top
400
+ y = (y - top) + val
401
+ y = screen_height if y > screen_height
402
+ call_with_console_handle(@SetConsoleCursorPosition, (y + top) * 65536 + x)
388
403
  elsif val < 0
389
404
  move_cursor_up(-val)
390
405
  end
391
406
  end
392
407
 
393
408
  def erase_after_cursor
394
- return unless csbi = get_console_screen_buffer_info
395
- attributes = csbi[8, 2].unpack1('S')
396
- cursor = csbi[4, 4].unpack1('L')
409
+ width, _, x, y, attributes, = get_console_screen_buffer_info
410
+ return unless x
397
411
  written = 0.chr * 4
398
- call_with_console_handle(@FillConsoleOutputCharacter, 0x20, get_screen_size.last - cursor_pos.x, cursor, written)
399
- call_with_console_handle(@FillConsoleOutputAttribute, attributes, get_screen_size.last - cursor_pos.x, cursor, written)
400
- end
401
-
402
- def scroll_down(val)
403
- return if val < 0
404
- return unless csbi = get_console_screen_buffer_info
405
- buffer_width, buffer_lines, x, y, attributes, window_left, window_top, window_bottom = csbi.unpack('ssssSssx2s')
406
- screen_height = window_bottom - window_top + 1
407
- val = screen_height if val > screen_height
408
-
409
- if @legacy_console || window_left != 0
410
- # unless ENABLE_VIRTUAL_TERMINAL,
411
- # if srWindow.Left != 0 then it's conhost.exe hosted console
412
- # and puts "\n" causes horizontal scroll. its glitch.
413
- # FYI irb write from culumn 1, so this gives no gain.
414
- scroll_rectangle = [0, val, buffer_width, buffer_lines - val].pack('s4')
415
- destination_origin = 0 # y * 65536 + x
416
- fill = [' '.ord, attributes].pack('SS')
417
- call_with_console_handle(@ScrollConsoleScreenBuffer, scroll_rectangle, nil, destination_origin, fill)
418
- else
419
- origin_x = x + 1
420
- origin_y = y - window_top + 1
421
- @output.write [
422
- (origin_y != screen_height) ? "\e[#{screen_height};H" : nil,
423
- "\n" * val,
424
- (origin_y != screen_height or !x.zero?) ? "\e[#{origin_y};#{origin_x}H" : nil
425
- ].join
426
- end
412
+ call_with_console_handle(@FillConsoleOutputCharacter, 0x20, width - x, y * 65536 + x, written)
413
+ call_with_console_handle(@FillConsoleOutputAttribute, attributes, width - x, y * 65536 + x, written)
414
+ end
415
+
416
+ # This only works when the cursor is at the bottom of the scroll range
417
+ # For more details, see https://github.com/ruby/reline/pull/577#issuecomment-1646679623
418
+ def scroll_down(x)
419
+ return if x.zero?
420
+ # We use `\n` instead of CSI + S because CSI + S would cause https://github.com/ruby/reline/issues/576
421
+ @output.write "\n" * x
427
422
  end
428
423
 
429
424
  def clear_screen
430
425
  if @legacy_console
431
- return unless csbi = get_console_screen_buffer_info
432
- buffer_width, _buffer_lines, attributes, window_top, window_bottom = csbi.unpack('ss@8S@12sx2s')
433
- fill_length = buffer_width * (window_bottom - window_top + 1)
434
- screen_topleft = window_top * 65536
426
+ width, _, _, _, attributes, _, top, _, bottom = get_console_screen_buffer_info
427
+ return unless width
428
+ fill_length = width * (bottom - top + 1)
429
+ screen_topleft = top * 65536
435
430
  written = 0.chr * 4
436
431
  call_with_console_handle(@FillConsoleOutputCharacter, 0x20, fill_length, screen_topleft, written)
437
432
  call_with_console_handle(@FillConsoleOutputAttribute, attributes, fill_length, screen_topleft, written)
@@ -472,6 +467,28 @@ class Reline::Windows < Reline::IO
472
467
  # do nothing
473
468
  end
474
469
 
470
+ def disable_auto_linewrap(setting = true, &block)
471
+ mode = getconsolemode
472
+ if 0 == (mode & ENABLE_VIRTUAL_TERMINAL_PROCESSING)
473
+ if block
474
+ begin
475
+ setconsolemode(mode & ~ENABLE_WRAP_AT_EOL_OUTPUT)
476
+ block.call
477
+ ensure
478
+ setconsolemode(mode | ENABLE_WRAP_AT_EOL_OUTPUT)
479
+ end
480
+ else
481
+ if setting
482
+ setconsolemode(mode & ~ENABLE_WRAP_AT_EOL_OUTPUT)
483
+ else
484
+ setconsolemode(mode | ENABLE_WRAP_AT_EOL_OUTPUT)
485
+ end
486
+ end
487
+ else
488
+ block.call if block
489
+ end
490
+ end
491
+
475
492
  class KeyEventRecord
476
493
 
477
494
  attr_reader :virtual_key_code, :char_code, :control_key_state, :control_keys
@@ -501,7 +518,7 @@ class Reline::Windows < Reline::IO
501
518
  # Verifies if the arguments match with this key event.
502
519
  # Nil arguments are ignored, but at least one must be passed as non-nil.
503
520
  # To verify that no control keys were pressed, pass an empty array: `control_keys: []`.
504
- def matches?(control_keys: nil, virtual_key_code: nil, char_code: nil)
521
+ def match?(control_keys: nil, virtual_key_code: nil, char_code: nil)
505
522
  raise ArgumentError, 'No argument was passed to match key event' if control_keys.nil? && virtual_key_code.nil? && char_code.nil?
506
523
 
507
524
  (control_keys.nil? || [*control_keys].sort == @control_keys) &&
@@ -35,6 +35,20 @@ module Reline
35
35
  def reset_color_sequence
36
36
  self.class::RESET_COLOR
37
37
  end
38
+
39
+ # Read a single encoding valid character from the input.
40
+ def read_single_char(timeout_second)
41
+ buffer = String.new(encoding: Encoding::ASCII_8BIT)
42
+ loop do
43
+ timeout = buffer.empty? ? Float::INFINITY : timeout_second
44
+ c = getc(timeout)
45
+ return unless c
46
+
47
+ buffer << c
48
+ encoded = buffer.dup.force_encoding(encoding)
49
+ return encoded if encoded.valid_encoding?
50
+ end
51
+ end
38
52
  end
39
53
  end
40
54
 
@@ -1,12 +1,18 @@
1
1
  class Reline::KeyActor::Base
2
- def initialize(mapping = [])
3
- @mapping = mapping
2
+ def initialize(mappings = nil)
4
3
  @matching_bytes = {}
5
4
  @key_bindings = {}
5
+ add_mappings(mappings) if mappings
6
6
  end
7
7
 
8
- def get_method(key)
9
- @mapping[key]
8
+ def add_mappings(mappings)
9
+ add([27], :ed_ignore)
10
+ 128.times do |key|
11
+ func = mappings[key]
12
+ meta_func = mappings[key | 0b10000000]
13
+ add([key], func) if func
14
+ add([27, key], meta_func) if meta_func
15
+ end
10
16
  end
11
17
 
12
18
  def add(key, func)