brakeman 6.2.2 → 7.1.2

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 (583) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +62 -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.1.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.4.0}/CHANGELOG.md +180 -4
  19. data/bundle/ruby/{3.1.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.4.0}/FAQ.md +1 -1
  20. data/bundle/ruby/3.2.0/gems/haml-6.4.0/Gemfile +34 -0
  21. data/bundle/ruby/{3.1.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.4.0}/MIT-LICENSE +1 -1
  22. data/bundle/ruby/{3.1.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.4.0}/README.md +23 -34
  23. data/bundle/ruby/{3.1.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.4.0}/REFERENCE.md +100 -171
  24. data/bundle/ruby/3.2.0/gems/haml-6.4.0/exe/haml +6 -0
  25. data/bundle/ruby/3.2.0/gems/haml-6.4.0/haml.gemspec +45 -0
  26. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/ambles.rb +20 -0
  27. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/attribute_builder.rb +162 -0
  28. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/attribute_compiler.rb +133 -0
  29. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/attribute_parser.rb +116 -0
  30. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/cli.rb +154 -0
  31. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/compiler/children_compiler.rb +155 -0
  32. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/compiler/comment_compiler.rb +51 -0
  33. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/compiler/doctype_compiler.rb +52 -0
  34. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/compiler/script_compiler.rb +114 -0
  35. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/compiler/silent_script_compiler.rb +24 -0
  36. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/compiler/tag_compiler.rb +76 -0
  37. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/compiler.rb +97 -0
  38. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/dynamic_merger.rb +67 -0
  39. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/engine.rb +59 -0
  40. 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
  41. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/escape.rb +13 -0
  42. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/escape_any.rb +21 -0
  43. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/base.rb +12 -0
  44. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/cdata.rb +20 -0
  45. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/coffee.rb +17 -0
  46. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/css.rb +33 -0
  47. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/erb.rb +10 -0
  48. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/escaped.rb +22 -0
  49. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/javascript.rb +33 -0
  50. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/less.rb +20 -0
  51. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/markdown.rb +11 -0
  52. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/plain.rb +29 -0
  53. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/preserve.rb +22 -0
  54. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/ruby.rb +10 -0
  55. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/sass.rb +15 -0
  56. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/scss.rb +15 -0
  57. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/text_base.rb +25 -0
  58. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters/tilt_base.rb +59 -0
  59. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/filters.rb +75 -0
  60. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/force_escape.rb +29 -0
  61. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/helpers.rb +15 -0
  62. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/html.rb +22 -0
  63. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/identity.rb +13 -0
  64. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/object_ref.rb +35 -0
  65. 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
  66. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/rails_helpers.rb +53 -0
  67. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/rails_template.rb +62 -0
  68. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/railtie.rb +10 -0
  69. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/ruby_expression.rb +32 -0
  70. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/string_splitter.rb +140 -0
  71. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/template.rb +20 -0
  72. 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
  73. 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
  74. 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
  75. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml/whitespace.rb +8 -0
  76. data/bundle/ruby/3.2.0/gems/haml-6.4.0/lib/haml.rb +13 -0
  77. data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/Changelog.md +4 -0
  78. data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/Gemfile +1 -0
  79. 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
  80. 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
  81. 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
  82. data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/lib/highline.rb +17 -12
  83. data/bundle/ruby/3.2.0/gems/parallel-1.27.0/lib/parallel/version.rb +4 -0
  84. data/bundle/ruby/{3.1.0/gems/parallel-1.26.3 → 3.2.0/gems/parallel-1.27.0}/lib/parallel.rb +1 -1
  85. 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
  86. 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
  87. 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
  88. 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
  89. 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
  90. 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
  91. 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
  92. 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
  93. 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
  94. 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
  95. 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
  96. 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
  97. 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
  98. data/bundle/ruby/3.2.0/gems/reline-0.6.3/lib/reline/unicode.rb +421 -0
  99. data/bundle/ruby/3.2.0/gems/reline-0.6.3/lib/reline/version.rb +3 -0
  100. data/bundle/ruby/{3.1.0/gems/reline-0.5.10 → 3.2.0/gems/reline-0.6.3}/lib/reline.rb +41 -33
  101. data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/NEWS.md +219 -1
  102. 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
  103. 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
  104. 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
  105. 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
  106. 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
  107. 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
  108. 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
  109. 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
  110. 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
  111. 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
  112. 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
  113. 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
  114. 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
  115. 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
  116. 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
  117. 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
  118. 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
  119. 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
  120. 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
  121. 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
  122. 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
  123. 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
  124. 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
  125. 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
  126. data/bundle/ruby/{3.1.0/gems/ruby2ruby-2.5.1 → 3.2.0/gems/ruby2ruby-2.5.2}/History.rdoc +6 -0
  127. data/bundle/ruby/{3.1.0/gems/ruby2ruby-2.5.1 → 3.2.0/gems/ruby2ruby-2.5.2}/lib/ruby2ruby.rb +7 -4
  128. 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
  129. data/bundle/ruby/3.2.0/gems/ruby_parser-3.22.0/Manifest.txt +39 -0
  130. 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
  131. 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
  132. 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
  133. 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
  134. 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
  135. 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
  136. 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
  137. 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
  138. 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
  139. 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
  140. 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
  141. 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
  142. 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
  143. 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
  144. 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
  145. 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
  146. 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
  147. 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
  148. data/bundle/ruby/3.2.0/gems/ruby_parser-3.22.0/lib/ruby_parser32.rb +13565 -0
  149. data/bundle/ruby/3.2.0/gems/ruby_parser-3.22.0/lib/ruby_parser33.rb +13653 -0
  150. data/bundle/ruby/3.2.0/gems/ruby_parser-3.22.0/lib/ruby_parser34.rb +13653 -0
  151. 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
  152. 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
  153. 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
  154. 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
  155. 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
  156. data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/CHANGES +4 -0
  157. 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
  158. 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
  159. data/bundle/ruby/3.2.0/gems/terminal-table-4.0.0/History.rdoc +149 -0
  160. data/bundle/ruby/3.2.0/gems/terminal-table-4.0.0/README.md +417 -0
  161. 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
  162. 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
  163. data/bundle/ruby/3.2.0/gems/terminal-table-4.0.0/lib/terminal-table/separator.rb +66 -0
  164. data/bundle/ruby/3.2.0/gems/terminal-table-4.0.0/lib/terminal-table/style.rb +284 -0
  165. 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
  166. data/bundle/ruby/3.2.0/gems/terminal-table-4.0.0/lib/terminal-table/util.rb +13 -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/version.rb +1 -1
  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.rb +2 -2
  169. 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
  170. data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/creole.rb +2 -0
  171. data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/liquid.rb +0 -3
  172. data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/mapping.rb +3 -3
  173. data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/rdoc.rb +0 -8
  174. data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/template.rb +184 -28
  175. data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt.rb +9 -4
  176. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.2.0/CHANGELOG.md +299 -0
  177. 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
  178. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.2.0/README.md +194 -0
  179. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.2.0/data/display_width.marshal.gz +0 -0
  180. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.2.0/lib/unicode/display_width/constants.rb +10 -0
  181. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.2.0/lib/unicode/display_width/emoji_support.rb +55 -0
  182. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.2.0/lib/unicode/display_width/index.rb +34 -0
  183. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.2.0/lib/unicode/display_width/no_string_ext.rb +8 -0
  184. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.2.0/lib/unicode/display_width/reline_ext.rb +14 -0
  185. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.2.0/lib/unicode/display_width/string_ext.rb +9 -0
  186. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.2.0/lib/unicode/display_width.rb +247 -0
  187. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/CHANGELOG.md +202 -0
  188. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/CODE_OF_CONDUCT.md +74 -0
  189. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/Gemfile +9 -0
  190. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/Gemfile.lock +37 -0
  191. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/MIT-LICENSE.txt +20 -0
  192. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/README.md +205 -0
  193. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/data/emoji.marshal.gz +0 -0
  194. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/data/generate_constants.rb +344 -0
  195. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/constants.rb +50 -0
  196. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex.rb +8 -0
  197. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_basic.rb +8 -0
  198. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_emoji_keycap.rb +8 -0
  199. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_include_mqe.rb +8 -0
  200. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_include_mqe_uqe.rb +8 -0
  201. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_include_text.rb +8 -0
  202. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_picto.rb +8 -0
  203. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_picto_no_emoji.rb +8 -0
  204. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_possible.rb +8 -0
  205. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_prop_component.rb +8 -0
  206. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_prop_emoji.rb +8 -0
  207. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_prop_modifier.rb +8 -0
  208. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_prop_modifier_base.rb +8 -0
  209. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_prop_presentation.rb +8 -0
  210. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_text.rb +8 -0
  211. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_text_presentation.rb +8 -0
  212. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_valid.rb +8 -0
  213. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_valid_include_text.rb +8 -0
  214. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_well_formed.rb +8 -0
  215. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated/regex_well_formed_include_text.rb +8 -0
  216. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex.rb +8 -0
  217. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_basic.rb +8 -0
  218. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_emoji_keycap.rb +8 -0
  219. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_include_mqe.rb +8 -0
  220. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_include_mqe_uqe.rb +8 -0
  221. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_include_text.rb +8 -0
  222. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_picto.rb +8 -0
  223. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_picto_no_emoji.rb +8 -0
  224. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_possible.rb +8 -0
  225. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_prop_component.rb +8 -0
  226. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_prop_emoji.rb +8 -0
  227. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_prop_modifier.rb +8 -0
  228. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_prop_modifier_base.rb +8 -0
  229. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_prop_presentation.rb +8 -0
  230. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_text.rb +8 -0
  231. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_text_presentation.rb +8 -0
  232. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_valid.rb +8 -0
  233. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_valid_include_text.rb +8 -0
  234. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/generated_native/regex_well_formed.rb +8 -0
  235. 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
  236. 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
  237. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/lazy_constants.rb +56 -0
  238. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji/list.rb +13 -0
  239. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/lib/unicode/emoji.rb +111 -0
  240. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.2.0/unicode-emoji.gemspec +22 -0
  241. data/lib/brakeman/app_tree.rb +81 -24
  242. data/lib/brakeman/checks/base_check.rb +5 -2
  243. data/lib/brakeman/checks/check_deserialize.rb +4 -1
  244. data/lib/brakeman/checks/check_eol_rails.rb +1 -0
  245. data/lib/brakeman/checks/check_eol_ruby.rb +1 -0
  246. data/lib/brakeman/checks/check_evaluation.rb +45 -8
  247. data/lib/brakeman/checks/check_model_attr_accessible.rb +1 -0
  248. data/lib/brakeman/checks/check_render.rb +5 -0
  249. data/lib/brakeman/checks/check_sql.rb +13 -4
  250. data/lib/brakeman/checks/check_weak_rsa_key.rb +1 -1
  251. data/lib/brakeman/commandline.rb +5 -0
  252. data/lib/brakeman/file_parser.rb +2 -1
  253. data/lib/brakeman/file_path.rb +4 -0
  254. data/lib/brakeman/messages.rb +1 -1
  255. data/lib/brakeman/options.rb +16 -5
  256. data/lib/brakeman/parsers/haml6_embedded.rb +23 -0
  257. data/lib/brakeman/parsers/template_parser.rb +32 -7
  258. data/lib/brakeman/processor.rb +2 -0
  259. data/lib/brakeman/processors/alias_processor.rb +18 -4
  260. data/lib/brakeman/processors/base_processor.rb +2 -0
  261. data/lib/brakeman/processors/haml6_template_processor.rb +92 -0
  262. data/lib/brakeman/processors/haml_template_processor.rb +17 -2
  263. data/lib/brakeman/processors/lib/file_type_detector.rb +9 -7
  264. data/lib/brakeman/processors/lib/rails2_config_processor.rb +1 -1
  265. data/lib/brakeman/processors/lib/rails3_config_processor.rb +1 -1
  266. data/lib/brakeman/processors/lib/render_helper.rb +38 -1
  267. data/lib/brakeman/processors/template_processor.rb +1 -1
  268. data/lib/brakeman/report/ignore/config.rb +0 -1
  269. data/lib/brakeman/report/pager.rb +1 -1
  270. data/lib/brakeman/report/report_html.rb +1 -1
  271. data/lib/brakeman/report/report_junit.rb +4 -57
  272. data/lib/brakeman/report/report_sarif.rb +122 -2
  273. data/lib/brakeman/report/templates/header.html.erb +8 -3
  274. data/lib/brakeman/report/templates/ignored_warnings.html.erb +3 -3
  275. data/lib/brakeman/rescanner.rb +40 -390
  276. data/lib/brakeman/scanner.rb +84 -51
  277. data/lib/brakeman/tracker/file_cache.rb +83 -0
  278. data/lib/brakeman/tracker.rb +25 -2
  279. data/lib/brakeman/version.rb +1 -1
  280. data/lib/brakeman.rb +23 -2
  281. data/lib/ruby_parser/bm_sexp.rb +14 -0
  282. metadata +483 -405
  283. data/bundle/ruby/3.1.0/gems/haml-5.2.2/Gemfile +0 -16
  284. data/bundle/ruby/3.1.0/gems/haml-5.2.2/TODO +0 -24
  285. data/bundle/ruby/3.1.0/gems/haml-5.2.2/haml.gemspec +0 -45
  286. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/attribute_builder.rb +0 -219
  287. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/attribute_compiler.rb +0 -237
  288. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/attribute_parser.rb +0 -150
  289. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/buffer.rb +0 -182
  290. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/compiler.rb +0 -330
  291. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/engine.rb +0 -238
  292. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/escapable.rb +0 -77
  293. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/exec.rb +0 -347
  294. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/filters.rb +0 -399
  295. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/generator.rb +0 -42
  296. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/action_view_extensions.rb +0 -60
  297. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/action_view_mods.rb +0 -132
  298. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/action_view_xss_mods.rb +0 -60
  299. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/safe_erubi_template.rb +0 -20
  300. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/safe_erubis_template.rb +0 -33
  301. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/xss_mods.rb +0 -114
  302. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers.rb +0 -709
  303. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/options.rb +0 -273
  304. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/plugin.rb +0 -54
  305. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/railtie.rb +0 -53
  306. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/sass_rails_filter.rb +0 -47
  307. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/template/options.rb +0 -27
  308. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/template.rb +0 -39
  309. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/temple_engine.rb +0 -124
  310. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml.rb +0 -25
  311. data/bundle/ruby/3.1.0/gems/haml-5.2.2/yard/default/fulldoc/html/css/common.sass +0 -15
  312. data/bundle/ruby/3.1.0/gems/haml-5.2.2/yard/default/layout/html/footer.erb +0 -12
  313. data/bundle/ruby/3.1.0/gems/parallel-1.26.3/lib/parallel/version.rb +0 -4
  314. data/bundle/ruby/3.1.0/gems/reline-0.5.10/lib/reline/terminfo.rb +0 -158
  315. data/bundle/ruby/3.1.0/gems/reline-0.5.10/lib/reline/unicode.rb +0 -671
  316. data/bundle/ruby/3.1.0/gems/reline-0.5.10/lib/reline/version.rb +0 -3
  317. data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/Manifest.txt +0 -48
  318. data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby20_parser.y +0 -2707
  319. data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby21_parser.y +0 -2724
  320. data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby22_parser.y +0 -2735
  321. data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby23_parser.y +0 -2737
  322. data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby24_parser.y +0 -2745
  323. data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby25_parser.y +0 -2745
  324. data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby26_parser.y +0 -2760
  325. data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby27_parser.y +0 -3360
  326. data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby30_parser.y +0 -3508
  327. data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby31_parser.y +0 -3542
  328. data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby32_parser.rb +0 -13601
  329. data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby32_parser.y +0 -3543
  330. data/bundle/ruby/3.1.0/gems/terminal-table-1.8.0/History.rdoc +0 -85
  331. data/bundle/ruby/3.1.0/gems/terminal-table-1.8.0/README.rdoc +0 -247
  332. data/bundle/ruby/3.1.0/gems/terminal-table-1.8.0/lib/terminal-table/separator.rb +0 -14
  333. data/bundle/ruby/3.1.0/gems/terminal-table-1.8.0/lib/terminal-table/style.rb +0 -79
  334. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/erubis.rb +0 -51
  335. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/maruku.rb +0 -10
  336. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/wikicloth.rb +0 -12
  337. data/bundle/ruby/3.1.0/gems/unicode-display_width-1.8.0/CHANGELOG.md +0 -137
  338. data/bundle/ruby/3.1.0/gems/unicode-display_width-1.8.0/README.md +0 -124
  339. data/bundle/ruby/3.1.0/gems/unicode-display_width-1.8.0/data/display_width.marshal.gz +0 -0
  340. data/bundle/ruby/3.1.0/gems/unicode-display_width-1.8.0/lib/unicode/display_width/constants.rb +0 -8
  341. data/bundle/ruby/3.1.0/gems/unicode-display_width-1.8.0/lib/unicode/display_width/no_string_ext.rb +0 -7
  342. data/bundle/ruby/3.1.0/gems/unicode-display_width-1.8.0/lib/unicode/display_width/string_ext.rb +0 -17
  343. data/bundle/ruby/3.1.0/gems/unicode-display_width-1.8.0/lib/unicode/display_width.rb +0 -51
  344. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/CHANGES.txt +0 -0
  345. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/MIT-LICENSE +0 -0
  346. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/README.txt +0 -0
  347. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/contrib/erubis +0 -0
  348. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/contrib/erubis-run.rb +0 -0
  349. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/contrib/inline-require +0 -0
  350. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/context.rb +0 -0
  351. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/converter.rb +0 -0
  352. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/ec.rb +0 -0
  353. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/ecpp.rb +0 -0
  354. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/ejava.rb +0 -0
  355. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/ejavascript.rb +0 -0
  356. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/enhanced.rb +0 -0
  357. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb +0 -0
  358. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/ephp.rb +0 -0
  359. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/eruby.rb +0 -0
  360. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/escheme.rb +0 -0
  361. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/optimized.rb +0 -0
  362. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine.rb +0 -0
  363. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/enhancer.rb +0 -0
  364. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/error.rb +0 -0
  365. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/evaluator.rb +0 -0
  366. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/generator.rb +0 -0
  367. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/helper.rb +0 -0
  368. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/helpers/rails_form_helper.rb +0 -0
  369. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/helpers/rails_helper.rb +0 -0
  370. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/local-setting.rb +0 -0
  371. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/main.rb +0 -0
  372. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/preprocessing.rb +0 -0
  373. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/tiny.rb +0 -0
  374. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/util.rb +0 -0
  375. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis.rb +0 -0
  376. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/setup.rb +0 -0
  377. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/AUTHORS +0 -0
  378. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/COPYING +0 -0
  379. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/LICENSE +0 -0
  380. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/README.md +0 -0
  381. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/TODO +0 -0
  382. /data/bundle/ruby/{3.1.0/gems/highline-3.1.1 → 3.2.0/gems/highline-3.1.2}/highline.gemspec +0 -0
  383. /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
  384. /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
  385. /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
  386. /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
  387. /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
  388. /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
  389. /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
  390. /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
  391. /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
  392. /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
  393. /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
  394. /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
  395. /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
  396. /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
  397. /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
  398. /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
  399. /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
  400. /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
  401. /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
  402. /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
  403. /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
  404. /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
  405. /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
  406. /data/bundle/ruby/{3.1.0/gems/parallel-1.26.3 → 3.2.0/gems/parallel-1.27.0}/MIT-LICENSE.txt +0 -0
  407. /data/bundle/ruby/{3.1.0/gems/reline-0.5.10 → 3.2.0/gems/reline-0.6.3}/BSDL +0 -0
  408. /data/bundle/ruby/{3.1.0/gems/reline-0.5.10 → 3.2.0/gems/reline-0.6.3}/COPYING +0 -0
  409. /data/bundle/ruby/{3.1.0/gems/reline-0.5.10 → 3.2.0/gems/reline-0.6.3}/README.md +0 -0
  410. /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
  411. /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
  412. /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
  413. /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
  414. /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
  415. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/LICENSE.txt +0 -0
  416. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/README.md +0 -0
  417. /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
  418. /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
  419. /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
  420. /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
  421. /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
  422. /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
  423. /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
  424. /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
  425. /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
  426. /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
  427. /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
  428. /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
  429. /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
  430. /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
  431. /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
  432. /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
  433. /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
  434. /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
  435. /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
  436. /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
  437. /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
  438. /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
  439. /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
  440. /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
  441. /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
  442. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.8 → 3.2.0/gems/rexml-3.4.4}/lib/rexml.rb +0 -0
  443. /data/bundle/ruby/{3.1.0/gems/ruby2ruby-2.5.1 → 3.2.0/gems/ruby2ruby-2.5.2}/Manifest.txt +0 -0
  444. /data/bundle/ruby/{3.1.0/gems/ruby2ruby-2.5.1 → 3.2.0/gems/ruby2ruby-2.5.2}/README.rdoc +0 -0
  445. /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
  446. /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
  447. /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
  448. /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
  449. /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
  450. /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
  451. /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
  452. /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
  453. /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
  454. /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
  455. /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
  456. /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
  457. /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
  458. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/CHANGES +0 -0
  459. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/Gemfile +0 -0
  460. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/LICENSE +0 -0
  461. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/README.jp.md +0 -0
  462. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/README.md +0 -0
  463. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/code_attributes.rb +0 -0
  464. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/command.rb +0 -0
  465. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/controls.rb +0 -0
  466. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/do_inserter.rb +0 -0
  467. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/embedded.rb +0 -0
  468. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/end_inserter.rb +0 -0
  469. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/engine.rb +0 -0
  470. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/erb_converter.rb +0 -0
  471. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/filter.rb +0 -0
  472. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/grammar.rb +0 -0
  473. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/include.rb +0 -0
  474. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/interpolation.rb +0 -0
  475. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/logic_less/context.rb +0 -0
  476. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/logic_less/filter.rb +0 -0
  477. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/logic_less.rb +0 -0
  478. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/parser.rb +0 -0
  479. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/railtie.rb +0 -0
  480. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/smart/escaper.rb +0 -0
  481. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/smart/filter.rb +0 -0
  482. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/smart/parser.rb +0 -0
  483. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/smart.rb +0 -0
  484. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/splat/builder.rb +0 -0
  485. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/splat/filter.rb +0 -0
  486. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/template.rb +0 -0
  487. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/translator.rb +0 -0
  488. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/version.rb +0 -0
  489. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim.rb +0 -0
  490. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/slim.gemspec +0 -0
  491. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/EXPRESSIONS.md +0 -0
  492. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/Gemfile +0 -0
  493. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/LICENSE +0 -0
  494. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/README.md +0 -0
  495. /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
  496. /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
  497. /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
  498. /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
  499. /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
  500. /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
  501. /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
  502. /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
  503. /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
  504. /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
  505. /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
  506. /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
  507. /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
  508. /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
  509. /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
  510. /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
  511. /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
  512. /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
  513. /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
  514. /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
  515. /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
  516. /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
  517. /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
  518. /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
  519. /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
  520. /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
  521. /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
  522. /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
  523. /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
  524. /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
  525. /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
  526. /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
  527. /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
  528. /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
  529. /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
  530. /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
  531. /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
  532. /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
  533. /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
  534. /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
  535. /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
  536. /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
  537. /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
  538. /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
  539. /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
  540. /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
  541. /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
  542. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/lib/temple.rb +0 -0
  543. /data/bundle/ruby/{3.1.0/gems/temple-0.10.3 → 3.2.0/gems/temple-0.10.4}/temple.gemspec +0 -0
  544. /data/bundle/ruby/{3.1.0/gems/terminal-table-1.8.0 → 3.2.0/gems/terminal-table-4.0.0}/Gemfile +0 -0
  545. /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
  546. /data/bundle/ruby/{3.1.0/gems/terminal-table-1.8.0 → 3.2.0/gems/terminal-table-4.0.0}/Manifest +0 -0
  547. /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
  548. /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
  549. /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
  550. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/COPYING +0 -0
  551. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/_emacs_org.rb +0 -0
  552. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/_handlebars.rb +0 -0
  553. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/_jbuilder.rb +0 -0
  554. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/_org.rb +0 -0
  555. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/asciidoc.rb +0 -0
  556. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/babel.rb +0 -0
  557. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/builder.rb +0 -0
  558. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/cli.rb +0 -0
  559. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/coffee.rb +0 -0
  560. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/commonmarker.rb +0 -0
  561. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/csv.rb +0 -0
  562. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/erb.rb +0 -0
  563. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/erubi.rb +0 -0
  564. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/etanni.rb +0 -0
  565. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/haml.rb +0 -0
  566. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/kramdown.rb +0 -0
  567. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/livescript.rb +0 -0
  568. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/markaby.rb +0 -0
  569. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/nokogiri.rb +0 -0
  570. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/pandoc.rb +0 -0
  571. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/pipeline.rb +0 -0
  572. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/plain.rb +0 -0
  573. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/prawn.rb +0 -0
  574. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/radius.rb +0 -0
  575. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/rdiscount.rb +0 -0
  576. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/redcarpet.rb +0 -0
  577. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/redcloth.rb +0 -0
  578. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/rst-pandoc.rb +0 -0
  579. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/sass.rb +0 -0
  580. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/slim.rb +0 -0
  581. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/string.rb +0 -0
  582. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/typescript.rb +0 -0
  583. /data/bundle/ruby/{3.1.0/gems/tilt-2.4.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/yajl.rb +0 -0
@@ -7,6 +7,7 @@ begin
7
7
  require 'brakeman/file_parser'
8
8
  require 'brakeman/parsers/template_parser'
9
9
  require 'brakeman/processors/lib/file_type_detector'
10
+ require 'brakeman/tracker/file_cache'
10
11
  rescue LoadError => e
11
12
  $stderr.puts e.message
12
13
  $stderr.puts "Please install the appropriate dependency."
@@ -31,6 +32,7 @@ class Brakeman::Scanner
31
32
 
32
33
  @processor = processor || Brakeman::Processor.new(@app_tree, options)
33
34
  @show_timing = tracker.options[:debug] || tracker.options[:show_timing]
35
+ @per_file_timing = tracker.options[:debug] && tracker.options[:show_timing]
34
36
  end
35
37
 
36
38
  #Returns the Tracker generated from the scan
@@ -38,6 +40,10 @@ class Brakeman::Scanner
38
40
  @processor.tracked_events
39
41
  end
40
42
 
43
+ def file_cache
44
+ tracker.file_cache
45
+ end
46
+
41
47
  def process_step description
42
48
  Brakeman.notify "#{description}...".ljust(40)
43
49
 
@@ -53,7 +59,7 @@ class Brakeman::Scanner
53
59
  end
54
60
 
55
61
  def process_step_file description
56
- if @show_timing
62
+ if @per_file_timing
57
63
  Brakeman.notify "Processing #{description}"
58
64
 
59
65
  start_t = Time.now
@@ -67,7 +73,7 @@ class Brakeman::Scanner
67
73
  end
68
74
 
69
75
  #Process everything in the Rails application
70
- def process
76
+ def process(ruby_paths: nil, template_paths: nil)
71
77
  process_step 'Processing gems' do
72
78
  process_gems
73
79
  end
@@ -77,14 +83,30 @@ class Brakeman::Scanner
77
83
  process_config
78
84
  end
79
85
 
86
+ # -
87
+ # If ruby_paths or template_paths are set,
88
+ # only parse those files. The rest will be fetched
89
+ # from the file cache.
90
+ #
91
+ # Otherwise, parse everything normally.
92
+ #
93
+ astfiles = nil
94
+ process_step 'Finding files' do
95
+ ruby_paths ||= tracker.app_tree.ruby_file_paths
96
+ template_paths ||= tracker.app_tree.template_paths
97
+ end
98
+
80
99
  process_step 'Parsing files' do
81
- parse_files
100
+ astfiles = parse_files(ruby_paths: ruby_paths, template_paths: template_paths)
82
101
  end
83
102
 
84
103
  process_step 'Detecting file types' do
85
- detect_file_types
104
+ detect_file_types(astfiles)
86
105
  end
87
106
 
107
+ tracker.save_file_cache! if support_rescanning?
108
+ # -
109
+
88
110
  process_step 'Processing initializers' do
89
111
  process_initializers
90
112
  end
@@ -124,44 +146,37 @@ class Brakeman::Scanner
124
146
  tracker
125
147
  end
126
148
 
127
- def parse_files
149
+ def parse_files(ruby_paths:, template_paths:)
128
150
  fp = Brakeman::FileParser.new(tracker.app_tree, tracker.options[:parser_timeout], tracker.options[:parallel_checks], tracker.options[:use_prism])
129
151
 
130
- fp.parse_files tracker.app_tree.ruby_file_paths
152
+ fp.parse_files ruby_paths
131
153
 
132
154
  template_parser = Brakeman::TemplateParser.new(tracker, fp)
133
155
 
134
- fp.read_files(@app_tree.template_paths) do |path, contents|
135
- template_parser.parse_template path, contents
156
+ fp.read_files(template_paths) do |path, contents|
157
+ template_parser.parse_template(path, contents)
136
158
  end
137
159
 
138
160
  # Collect errors raised during parsing
139
161
  tracker.add_errors(fp.errors)
140
162
 
141
- @parsed_files = fp.file_list
163
+ fp.file_list
142
164
  end
143
165
 
144
- def detect_file_types
145
- @file_list = {
146
- controllers: [],
147
- initializers: [],
148
- libs: [],
149
- models: [],
150
- templates: [],
151
- }
152
-
166
+ def detect_file_types(astfiles)
153
167
  detector = Brakeman::FileTypeDetector.new
154
168
 
155
- @parsed_files.each do |file|
169
+ astfiles.each do |file|
156
170
  if file.is_a? Brakeman::TemplateParser::TemplateFile
157
- @file_list[:templates] << file
171
+ file_cache.add_file file, :template
158
172
  else
159
173
  type = detector.detect_type(file)
174
+
160
175
  unless type == :skip
161
- if @file_list[type].nil?
162
- raise type.to_s
176
+ if file_cache.valid_type? type
177
+ file_cache.add_file(file, type)
163
178
  else
164
- @file_list[type] << file
179
+ raise "Unexpected file type: #{type.inspect}"
165
180
  end
166
181
  end
167
182
  end
@@ -216,21 +231,29 @@ class Brakeman::Scanner
216
231
  #Process Gemfile
217
232
  def process_gems
218
233
  gem_files = {}
234
+ gem_file_names = ['Gemfile', 'gems.rb']
235
+ lock_file_names = ['Gemfile.lock', 'gems.locked']
219
236
 
220
- if @app_tree.exists? "Gemfile"
221
- file = @app_tree.file_path("Gemfile")
222
- gem_files[:gemfile] = { :src => parse_ruby_file(file), :file => file }
223
- elsif @app_tree.exists? "gems.rb"
224
- file = @app_tree.file_path("gems.rb")
225
- gem_files[:gemfile] = { :src => parse_ruby_file(file), :file => file }
237
+ if tracker.options[:gemfile]
238
+ name = tracker.options[:gemfile]
239
+ gem_file_names.unshift name
240
+ lock_file_names.unshift "#{name}.lock"
226
241
  end
227
242
 
228
- if @app_tree.exists? "Gemfile.lock"
229
- file = @app_tree.file_path("Gemfile.lock")
230
- gem_files[:gemlock] = { :src => file.read, :file => file }
231
- elsif @app_tree.exists? "gems.locked"
232
- file = @app_tree.file_path("gems.locked")
233
- gem_files[:gemlock] = { :src => file.read, :file => file }
243
+ gem_file_names.each do |name|
244
+ if @app_tree.exists? name
245
+ file = @app_tree.file_path(name)
246
+ gem_files[:gemfile] = { :src => parse_ruby_file(file), :file => file }
247
+ break
248
+ end
249
+ end
250
+
251
+ lock_file_names.each do |name|
252
+ if @app_tree.exists? name
253
+ file = @app_tree.file_path(name)
254
+ gem_files[:gemlock] = { :src => file.read, :file => file }
255
+ break
256
+ end
234
257
  end
235
258
 
236
259
  if @app_tree.gemspec
@@ -268,8 +291,8 @@ class Brakeman::Scanner
268
291
  #
269
292
  #Adds parsed information to tracker.initializers
270
293
  def process_initializers
271
- track_progress @file_list[:initializers] do |init|
272
- process_step_file init[:path] do
294
+ track_progress file_cache.initializers do |path, init|
295
+ process_step_file path do
273
296
  process_initializer init
274
297
  end
275
298
  end
@@ -289,8 +312,10 @@ class Brakeman::Scanner
289
312
  return
290
313
  end
291
314
 
292
- track_progress @file_list[:libs] do |lib|
293
- process_step_file lib.path do
315
+ libs = file_cache.libs.sort_by { |path, _| path }
316
+
317
+ track_progress libs do |path, lib|
318
+ process_step_file path do
294
319
  process_lib lib
295
320
  end
296
321
  end
@@ -322,15 +347,17 @@ class Brakeman::Scanner
322
347
  #
323
348
  #Adds processed controllers to tracker.controllers
324
349
  def process_controllers
325
- track_progress @file_list[:controllers] do |controller|
326
- process_step_file controller.path do
350
+ controllers = file_cache.controllers.sort_by { |path, _| path }
351
+
352
+ track_progress controllers do |path, controller|
353
+ process_step_file path do
327
354
  process_controller controller
328
355
  end
329
356
  end
330
357
  end
331
358
 
332
359
  def process_controller_data_flows
333
- controllers = tracker.controllers.sort_by { |name, _| name.to_s }
360
+ controllers = tracker.controllers.sort_by { |name, _| name }
334
361
 
335
362
  track_progress controllers, "controllers" do |name, controller|
336
363
  process_step_file name do
@@ -356,10 +383,10 @@ class Brakeman::Scanner
356
383
  #
357
384
  #Adds processed views to tracker.views
358
385
  def process_templates
359
- templates = @file_list[:templates].sort_by { |t| t[:path] }
386
+ templates = file_cache.templates.sort_by { |path, _| path }
360
387
 
361
- track_progress templates, "templates" do |template|
362
- process_step_file template[:path] do
388
+ track_progress templates, "templates" do |path, template|
389
+ process_step_file path do
363
390
  process_template template
364
391
  end
365
392
  end
@@ -370,7 +397,7 @@ class Brakeman::Scanner
370
397
  end
371
398
 
372
399
  def process_template_data_flows
373
- templates = tracker.templates.sort_by { |name, _| name.to_s }
400
+ templates = tracker.templates.sort_by { |name, _| name }
374
401
 
375
402
  track_progress templates, "templates" do |name, template|
376
403
  process_step_file name do
@@ -383,15 +410,17 @@ class Brakeman::Scanner
383
410
  #
384
411
  #Adds the processed models to tracker.models
385
412
  def process_models
386
- track_progress @file_list[:models] do |model|
387
- process_step_file model[:path] do
388
- process_model model[:path], model[:ast]
413
+ models = file_cache.models.sort_by { |path, _| path }
414
+
415
+ track_progress models do |path, model|
416
+ process_step_file path do
417
+ process_model model
389
418
  end
390
419
  end
391
420
  end
392
421
 
393
- def process_model path, ast
394
- @processor.process_model(ast, path)
422
+ def process_model astfile
423
+ @processor.process_model(astfile.ast, astfile.path)
395
424
  end
396
425
 
397
426
  def track_progress list, type = "files"
@@ -420,6 +449,10 @@ class Brakeman::Scanner
420
449
  tracker.error(e)
421
450
  nil
422
451
  end
452
+
453
+ def support_rescanning?
454
+ tracker.options[:support_rescanning]
455
+ end
423
456
  end
424
457
 
425
458
  # This is to allow operation without loading the Haml library
@@ -0,0 +1,83 @@
1
+ module Brakeman
2
+ class FileCache
3
+ def initialize(file_list = nil)
4
+ @file_list = file_list || {
5
+ controller: {},
6
+ initializer: {},
7
+ lib: {},
8
+ model: {},
9
+ template: {},
10
+ }
11
+ end
12
+
13
+ def controllers
14
+ @file_list[:controller]
15
+ end
16
+
17
+ def initializers
18
+ @file_list[:initializer]
19
+ end
20
+
21
+ def libs
22
+ @file_list[:lib]
23
+ end
24
+
25
+ def models
26
+ @file_list[:model]
27
+ end
28
+
29
+ def templates
30
+ @file_list[:template]
31
+ end
32
+
33
+ def add_file(astfile, type)
34
+ raise "Unknown type: #{type}" unless valid_type? type
35
+ @file_list[type][astfile.path] = astfile
36
+ end
37
+
38
+ def valid_type?(type)
39
+ @file_list.key? type
40
+ end
41
+
42
+ def cached? path
43
+ @file_list.any? do |name, list|
44
+ list[path]
45
+ end
46
+ end
47
+
48
+ def delete path
49
+ @file_list.each do |name, list|
50
+ list.delete path
51
+ end
52
+ end
53
+
54
+ def diff other
55
+ @file_list.each do |name, list|
56
+ other_list = other.send(:"#{name}s")
57
+
58
+ if list == other_list
59
+ next
60
+ else
61
+ puts "-- #{name} --"
62
+ puts "Old: #{other_list.keys - list.keys}"
63
+ puts "New: #{list.keys - other_list.keys}"
64
+ end
65
+ end
66
+ end
67
+
68
+ def dup
69
+ copy_file_list = @file_list.map do |name, list|
70
+ copy_list = list.map do |path, astfile|
71
+ copy_astfile = astfile.dup
72
+ copy_astfile.ast = copy_astfile.ast.deep_clone
73
+
74
+ [path, copy_astfile]
75
+ end.to_h
76
+
77
+ [name, copy_list]
78
+ end.to_h
79
+
80
+ FileCache.new(copy_file_list)
81
+ end
82
+ end
83
+ end
@@ -12,7 +12,7 @@ class Brakeman::Tracker
12
12
  attr_accessor :controllers, :constants, :templates, :models, :errors,
13
13
  :checks, :initializers, :config, :routes, :processor, :libs,
14
14
  :template_cache, :options, :filter_cache, :start_time, :end_time,
15
- :duration, :ignored_filter, :app_tree
15
+ :duration, :ignored_filter, :app_tree, :file_cache, :pristine_file_cache
16
16
 
17
17
  #Place holder when there should be a model, but it is not
18
18
  #clear what model it will be.
@@ -26,15 +26,22 @@ class Brakeman::Tracker
26
26
  @app_tree = app_tree
27
27
  @processor = processor
28
28
  @options = options
29
+ @file_cache = Brakeman::FileCache.new
30
+ @pristine_file_cache = nil
29
31
 
30
- @config = Brakeman::Config.new(self)
32
+ reset_all
33
+ end
34
+
35
+ def reset_all
31
36
  @templates = {}
32
37
  @controllers = {}
38
+
33
39
  #Initialize models with the unknown model so
34
40
  #we can match models later without knowing precisely what
35
41
  #class they are.
36
42
  @models = {}
37
43
  @models[UNKNOWN_MODEL] = Brakeman::Model.new(UNKNOWN_MODEL, nil, @app_tree.file_path("NOT_REAL.rb"), nil, self)
44
+
38
45
  @method_cache = {}
39
46
  @routes = {}
40
47
  @initializers = {}
@@ -46,11 +53,16 @@ class Brakeman::Tracker
46
53
  @template_cache = Set.new
47
54
  @filter_cache = {}
48
55
  @call_index = nil
56
+ @config = Brakeman::Config.new(self)
49
57
  @start_time = Time.now
50
58
  @end_time = nil
51
59
  @duration = nil
52
60
  end
53
61
 
62
+ def save_file_cache!
63
+ @pristine_file_cache = @file_cache.dup
64
+ end
65
+
54
66
  #Add an error to the list. If no backtrace is given,
55
67
  #the one from the exception will be used.
56
68
  def error exception, backtrace = nil
@@ -301,6 +313,11 @@ class Brakeman::Tracker
301
313
  method_sets << self.controllers
302
314
  end
303
315
 
316
+ if locations.include? :libs
317
+ classes_to_reindex.merge self.libs.keys
318
+ method_sets << self.libs
319
+ end
320
+
304
321
  if locations.include? :initializers
305
322
  self.initializers.each do |file_name, src|
306
323
  @call_index.remove_indexes_by_file file_name
@@ -424,4 +441,10 @@ class Brakeman::Tracker
424
441
 
425
442
  @call_index.remove_indexes_by_file path
426
443
  end
444
+
445
+ # Call this to be able to marshal the Tracker
446
+ def marshallable
447
+ @app_tree.marshallable
448
+ self
449
+ end
427
450
  end
@@ -1,3 +1,3 @@
1
1
  module Brakeman
2
- Version = "6.2.2"
2
+ Version = "7.1.2"
3
3
  end
data/lib/brakeman.rb CHANGED
@@ -24,6 +24,10 @@ module Brakeman
24
24
  #--ensure-ignore-notes is set
25
25
  Empty_Ignore_Note_Exit_Code = 8
26
26
 
27
+ # Exit code returned when at least one obsolete ignore entry is present
28
+ # and `--ensure-no-obsolete-ignore-entries` is set.
29
+ Obsolete_Ignore_Entries_Exit_Code = 9
30
+
27
31
  @debug = false
28
32
  @quiet = false
29
33
  @loaded_dependencies = []
@@ -84,6 +88,15 @@ module Brakeman
84
88
  options[:report_progress] = false
85
89
  end
86
90
 
91
+ if options[:use_prism]
92
+ begin
93
+ require 'prism'
94
+ notify '[Notice] Using Prism parser'
95
+ rescue LoadError => e
96
+ Brakeman.debug "[Notice] Asked to use Prism, but failed to load: #{e}"
97
+ end
98
+ end
99
+
87
100
  scan options
88
101
  end
89
102
 
@@ -118,6 +131,13 @@ module Brakeman
118
131
  options[:output_formats] = get_output_formats options
119
132
  options[:github_url] = get_github_url options
120
133
 
134
+
135
+ # Use ENV value only if option was not already explicitly set
136
+ # (i.e. prefer commandline option over environment variable).
137
+ if options[:gemfile].nil? and ENV['BUNDLE_GEMFILE'] and not ENV['BUNDLE_GEMFILE'].empty?
138
+ options[:gemfile] = ENV['BUNDLE_GEMFILE']
139
+ end
140
+
121
141
  options
122
142
  end
123
143
 
@@ -196,6 +216,7 @@ module Brakeman
196
216
  :pager => true,
197
217
  :parallel_checks => true,
198
218
  :parser_timeout => 10,
219
+ :use_prism => true,
199
220
  :relative_path => false,
200
221
  :report_progress => true,
201
222
  :safe_methods => Set.new,
@@ -464,12 +485,12 @@ module Brakeman
464
485
  def self.rescan tracker, files, options = {}
465
486
  require 'brakeman/rescanner'
466
487
 
467
- tracker.options.merge! options
488
+ options = tracker.options.merge options
468
489
 
469
490
  @quiet = !!tracker.options[:quiet]
470
491
  @debug = !!tracker.options[:debug]
471
492
 
472
- Rescanner.new(tracker.options, tracker.processor, files).recheck
493
+ Rescanner.new(options, tracker.processor, files).recheck
473
494
  end
474
495
 
475
496
  def self.notify message
@@ -172,6 +172,20 @@ class Sexp
172
172
  self[2] = name
173
173
  end
174
174
 
175
+ # Number of arguments in a method call.
176
+ def num_args
177
+ expect :call, :attrasgn, :safe_call, :safe_attrasgn, :super, :zsuper
178
+
179
+ case self.node_type
180
+ when :call, :attrasgn, :safe_call, :safe_attrasgn
181
+ self.length - 3
182
+ when :super
183
+ self.length - 1
184
+ when :zsuper
185
+ 0
186
+ end
187
+ end
188
+
175
189
  #Sets the arglist in a method call.
176
190
  def arglist= exp
177
191
  expect :call, :attrasgn, :safe_call, :safe_attrasgn