brakeman 5.2.3 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (637) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +111 -0
  3. data/README.md +8 -5
  4. data/bundle/load.rb +15 -15
  5. data/bundle/ruby/3.1.0/gems/csv-3.3.2/LICENSE.txt +33 -0
  6. data/bundle/ruby/3.1.0/gems/csv-3.3.2/NEWS.md +965 -0
  7. data/bundle/ruby/3.1.0/gems/csv-3.3.2/README.md +55 -0
  8. data/bundle/ruby/3.1.0/gems/csv-3.3.2/lib/csv/core_ext/array.rb +9 -0
  9. data/bundle/ruby/3.1.0/gems/csv-3.3.2/lib/csv/core_ext/string.rb +9 -0
  10. data/bundle/ruby/3.1.0/gems/csv-3.3.2/lib/csv/fields_converter.rb +96 -0
  11. data/bundle/ruby/3.1.0/gems/csv-3.3.2/lib/csv/input_record_separator.rb +18 -0
  12. data/bundle/ruby/3.1.0/gems/csv-3.3.2/lib/csv/parser.rb +1292 -0
  13. data/bundle/ruby/3.1.0/gems/csv-3.3.2/lib/csv/row.rb +757 -0
  14. data/bundle/ruby/3.1.0/gems/csv-3.3.2/lib/csv/table.rb +1055 -0
  15. data/bundle/ruby/3.1.0/gems/csv-3.3.2/lib/csv/version.rb +6 -0
  16. data/bundle/ruby/3.1.0/gems/csv-3.3.2/lib/csv/writer.rb +209 -0
  17. data/bundle/ruby/3.1.0/gems/csv-3.3.2/lib/csv.rb +3017 -0
  18. data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/Changelog.md +34 -0
  19. data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/Gemfile +3 -5
  20. data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/README.md +41 -3
  21. data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/highline.gemspec +6 -1
  22. data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/lib/highline/io_console_compatible.rb +1 -1
  23. data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/lib/highline/menu.rb +0 -0
  24. data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/lib/highline/question/answer_converter.rb +2 -5
  25. data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/lib/highline/question.rb +23 -13
  26. data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/lib/highline/question_asker.rb +3 -1
  27. data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/lib/highline/style.rb +0 -0
  28. data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/lib/highline/terminal/io_console.rb +1 -1
  29. data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/lib/highline/terminal/unix_stty.rb +6 -4
  30. data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/lib/highline/terminal.rb +8 -6
  31. data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/lib/highline/version.rb +1 -1
  32. data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/lib/highline.rb +27 -6
  33. data/bundle/ruby/3.1.0/gems/parallel-1.26.3/lib/parallel/version.rb +4 -0
  34. data/bundle/ruby/{2.7.0/gems/parallel-1.22.1 → 3.1.0/gems/parallel-1.26.3}/lib/parallel.rb +109 -13
  35. data/bundle/ruby/3.1.0/gems/reline-0.6.0/COPYING +56 -0
  36. data/bundle/ruby/3.1.0/gems/reline-0.6.0/README.md +94 -0
  37. data/bundle/ruby/3.1.0/gems/reline-0.6.0/lib/reline/config.rb +373 -0
  38. data/bundle/ruby/3.1.0/gems/reline-0.6.0/lib/reline/face.rb +199 -0
  39. data/bundle/ruby/3.1.0/gems/reline-0.6.0/lib/reline/history.rb +76 -0
  40. data/bundle/ruby/3.1.0/gems/reline-0.6.0/lib/reline/io/ansi.rb +325 -0
  41. data/bundle/ruby/3.1.0/gems/reline-0.6.0/lib/reline/io/dumb.rb +120 -0
  42. data/bundle/ruby/3.1.0/gems/reline-0.6.0/lib/reline/io/windows.rb +530 -0
  43. data/bundle/ruby/3.1.0/gems/reline-0.6.0/lib/reline/io.rb +55 -0
  44. data/bundle/ruby/3.1.0/gems/reline-0.6.0/lib/reline/key_actor/base.rb +37 -0
  45. data/bundle/ruby/3.1.0/gems/reline-0.6.0/lib/reline/key_actor/composite.rb +17 -0
  46. data/bundle/ruby/3.1.0/gems/reline-0.6.0/lib/reline/key_actor/emacs.rb +517 -0
  47. data/bundle/ruby/3.1.0/gems/reline-0.6.0/lib/reline/key_actor/vi_command.rb +518 -0
  48. data/bundle/ruby/3.1.0/gems/reline-0.6.0/lib/reline/key_actor/vi_insert.rb +517 -0
  49. data/bundle/ruby/3.1.0/gems/reline-0.6.0/lib/reline/key_actor.rb +8 -0
  50. data/bundle/ruby/3.1.0/gems/reline-0.6.0/lib/reline/key_stroke.rb +119 -0
  51. data/bundle/ruby/3.1.0/gems/reline-0.6.0/lib/reline/kill_ring.rb +125 -0
  52. data/bundle/ruby/3.1.0/gems/reline-0.6.0/lib/reline/line_editor.rb +2382 -0
  53. data/bundle/ruby/3.1.0/gems/reline-0.6.0/lib/reline/unicode/east_asian_width.rb +1267 -0
  54. data/bundle/ruby/3.1.0/gems/reline-0.6.0/lib/reline/unicode.rb +415 -0
  55. data/bundle/ruby/3.1.0/gems/reline-0.6.0/lib/reline/version.rb +3 -0
  56. data/bundle/ruby/3.1.0/gems/reline-0.6.0/lib/reline.rb +519 -0
  57. data/bundle/ruby/3.1.0/gems/reline-0.6.0/license_of_rb-readline +25 -0
  58. data/bundle/ruby/3.1.0/gems/rexml-3.4.0/LICENSE.txt +22 -0
  59. data/bundle/ruby/3.1.0/gems/rexml-3.4.0/NEWS.md +675 -0
  60. data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/README.md +10 -1
  61. data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/attribute.rb +17 -11
  62. data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/document.rb +6 -2
  63. data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/element.rb +19 -34
  64. data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/entity.rb +9 -38
  65. data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/formatters/pretty.rb +3 -3
  66. data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/functions.rb +1 -2
  67. data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/namespace.rb +8 -4
  68. data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/node.rb +8 -4
  69. data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/parseexception.rb +1 -0
  70. data/bundle/ruby/3.1.0/gems/rexml-3.4.0/lib/rexml/parsers/baseparser.rb +866 -0
  71. data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/parsers/pullparser.rb +16 -0
  72. data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/parsers/sax2parser.rb +16 -19
  73. data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/parsers/streamparser.rb +16 -10
  74. data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/parsers/treeparser.rb +9 -21
  75. data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/parsers/xpathparser.rb +136 -86
  76. data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/rexml.rb +3 -1
  77. data/bundle/ruby/3.1.0/gems/rexml-3.4.0/lib/rexml/source.rb +369 -0
  78. data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/text.rb +60 -61
  79. data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/xpath_parser.rb +7 -3
  80. data/bundle/ruby/{2.7.0/gems/ruby2ruby-2.4.4 → 3.1.0/gems/ruby2ruby-2.5.1}/History.rdoc +22 -0
  81. data/bundle/ruby/{2.7.0/gems/ruby2ruby-2.4.4 → 3.1.0/gems/ruby2ruby-2.5.1}/lib/ruby2ruby.rb +162 -26
  82. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/History.rdoc +48 -0
  83. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/Manifest.txt +2 -0
  84. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/README.rdoc +2 -1
  85. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/compare/normalize.rb +1 -0
  86. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/lib/ruby20_parser.rb +4267 -4284
  87. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/lib/ruby20_parser.y +50 -26
  88. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/lib/ruby21_parser.rb +4241 -4240
  89. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/lib/ruby21_parser.y +50 -26
  90. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/lib/ruby22_parser.rb +4289 -4290
  91. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/lib/ruby22_parser.y +50 -26
  92. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/lib/ruby23_parser.rb +4274 -4243
  93. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/lib/ruby23_parser.y +50 -26
  94. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/lib/ruby24_parser.rb +4279 -4298
  95. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/lib/ruby24_parser.y +50 -26
  96. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/lib/ruby25_parser.rb +4270 -4289
  97. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/lib/ruby25_parser.y +50 -26
  98. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/lib/ruby26_parser.rb +4270 -4289
  99. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/lib/ruby26_parser.y +50 -26
  100. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/lib/ruby27_parser.rb +4189 -4206
  101. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/lib/ruby27_parser.y +63 -27
  102. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/lib/ruby30_parser.rb +6037 -5963
  103. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/lib/ruby30_parser.y +148 -87
  104. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/lib/ruby31_parser.rb +6213 -6186
  105. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1/lib/ruby3_parser.yy → 3.1.0/gems/ruby_parser-3.20.3/lib/ruby31_parser.y} +149 -143
  106. data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby32_parser.rb +13601 -0
  107. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1/lib/ruby31_parser.y → 3.1.0/gems/ruby_parser-3.20.3/lib/ruby32_parser.y} +171 -109
  108. data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby3_parser.yy +3635 -0
  109. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/lib/ruby_lexer.rb +26 -11
  110. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/lib/ruby_lexer.rex.rb +1 -1
  111. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/lib/ruby_lexer_strings.rb +2 -2
  112. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/lib/ruby_parser.rb +2 -0
  113. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/lib/ruby_parser.yy +63 -27
  114. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/lib/ruby_parser_extras.rb +36 -23
  115. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/tools/munge.rb +8 -2
  116. data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/tools/ripper.rb +14 -12
  117. data/bundle/ruby/{2.7.0/gems/sexp_processor-4.16.1 → 3.1.0/gems/sexp_processor-4.17.3}/History.rdoc +31 -0
  118. data/bundle/ruby/{2.7.0/gems/sexp_processor-4.16.1 → 3.1.0/gems/sexp_processor-4.17.3}/lib/pt_testcase.rb +3 -3
  119. data/bundle/ruby/{2.7.0/gems/sexp_processor-4.16.1 → 3.1.0/gems/sexp_processor-4.17.3}/lib/sexp.rb +9 -3
  120. data/bundle/ruby/{2.7.0/gems/sexp_processor-4.16.1 → 3.1.0/gems/sexp_processor-4.17.3}/lib/sexp_matcher.rb +1 -1
  121. data/bundle/ruby/{2.7.0/gems/sexp_processor-4.16.1 → 3.1.0/gems/sexp_processor-4.17.3}/lib/sexp_processor.rb +1 -1
  122. data/bundle/ruby/{2.7.0/gems/sexp_processor-4.16.1 → 3.1.0/gems/sexp_processor-4.17.3}/lib/strict_sexp.rb +6 -5
  123. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/CHANGES +44 -8
  124. data/bundle/ruby/3.1.0/gems/slim-5.2.1/Gemfile +43 -0
  125. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/LICENSE +1 -1
  126. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/README.jp.md +28 -41
  127. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/README.md +66 -43
  128. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/code_attributes.rb +2 -1
  129. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/command.rb +2 -8
  130. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/controls.rb +1 -0
  131. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/do_inserter.rb +4 -3
  132. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/embedded.rb +17 -17
  133. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/end_inserter.rb +3 -2
  134. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/engine.rb +3 -0
  135. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/erb_converter.rb +1 -0
  136. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/filter.rb +1 -0
  137. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/grammar.rb +1 -0
  138. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/include.rb +1 -0
  139. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/interpolation.rb +1 -0
  140. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/logic_less/context.rb +6 -7
  141. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/logic_less/filter.rb +1 -0
  142. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/logic_less.rb +1 -0
  143. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/parser.rb +26 -39
  144. data/bundle/ruby/3.1.0/gems/slim-5.2.1/lib/slim/railtie.rb +19 -0
  145. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/smart/escaper.rb +1 -1
  146. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/smart/filter.rb +3 -2
  147. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/smart/parser.rb +4 -3
  148. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/smart.rb +1 -0
  149. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/splat/builder.rb +16 -8
  150. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/splat/filter.rb +6 -4
  151. data/bundle/ruby/3.1.0/gems/slim-5.2.1/lib/slim/template.rb +6 -0
  152. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/translator.rb +4 -3
  153. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/version.rb +2 -1
  154. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim.rb +2 -0
  155. data/bundle/ruby/{2.7.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/slim.gemspec +14 -5
  156. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/CHANGES +39 -1
  157. data/bundle/ruby/3.1.0/gems/temple-0.10.3/Gemfile +2 -0
  158. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/README.md +1 -1
  159. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/engine.rb +1 -0
  160. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/erb/engine.rb +3 -0
  161. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/erb/parser.rb +2 -1
  162. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/erb/template.rb +1 -0
  163. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/erb/trimming.rb +1 -0
  164. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/exceptions.rb +1 -0
  165. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/filter.rb +1 -0
  166. data/bundle/ruby/3.1.0/gems/temple-0.10.3/lib/temple/filters/ambles.rb +22 -0
  167. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/filters/code_merger.rb +1 -0
  168. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/filters/control_flow.rb +1 -0
  169. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/filters/dynamic_inliner.rb +2 -1
  170. data/bundle/ruby/3.1.0/gems/temple-0.10.3/lib/temple/filters/dynamic_merger.rb +69 -0
  171. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/filters/encoding.rb +1 -0
  172. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/filters/eraser.rb +1 -0
  173. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/filters/escapable.rb +1 -0
  174. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/filters/multi_flattener.rb +1 -0
  175. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/filters/remove_bom.rb +1 -0
  176. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/filters/static_analyzer.rb +1 -0
  177. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/filters/static_merger.rb +1 -0
  178. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/filters/string_splitter.rb +13 -1
  179. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/filters/validator.rb +1 -0
  180. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/generator.rb +5 -2
  181. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/generators/array.rb +1 -0
  182. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/generators/array_buffer.rb +1 -0
  183. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/generators/erb.rb +1 -0
  184. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/generators/rails_output_buffer.rb +4 -4
  185. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/generators/string_buffer.rb +2 -1
  186. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/grammar.rb +1 -0
  187. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/html/attribute_merger.rb +1 -0
  188. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/html/attribute_remover.rb +1 -0
  189. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/html/attribute_sorter.rb +1 -0
  190. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/html/dispatcher.rb +1 -0
  191. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/html/fast.rb +1 -0
  192. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/html/filter.rb +1 -0
  193. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/html/pretty.rb +1 -0
  194. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/html/safe.rb +1 -0
  195. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/map.rb +1 -0
  196. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/mixins/dispatcher.rb +1 -0
  197. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/mixins/engine_dsl.rb +1 -0
  198. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/mixins/grammar_dsl.rb +4 -2
  199. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/mixins/options.rb +1 -0
  200. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/mixins/template.rb +1 -0
  201. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/parser.rb +1 -0
  202. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/static_analyzer.rb +1 -0
  203. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/templates/rails.rb +7 -2
  204. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/templates/tilt.rb +2 -9
  205. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/templates.rb +1 -0
  206. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/utils.rb +5 -15
  207. data/bundle/ruby/3.1.0/gems/temple-0.10.3/lib/temple/version.rb +4 -0
  208. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple.rb +3 -0
  209. data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/temple.gemspec +4 -6
  210. data/bundle/ruby/3.1.0/gems/terminal-table-3.0.2/History.rdoc +142 -0
  211. data/bundle/ruby/3.1.0/gems/terminal-table-3.0.2/README.md +417 -0
  212. data/bundle/ruby/{2.7.0/gems/terminal-table-1.8.0 → 3.1.0/gems/terminal-table-3.0.2}/lib/terminal-table/cell.rb +8 -8
  213. data/bundle/ruby/{2.7.0/gems/terminal-table-1.8.0 → 3.1.0/gems/terminal-table-3.0.2}/lib/terminal-table/row.rb +18 -4
  214. data/bundle/ruby/3.1.0/gems/terminal-table-3.0.2/lib/terminal-table/separator.rb +66 -0
  215. data/bundle/ruby/3.1.0/gems/terminal-table-3.0.2/lib/terminal-table/style.rb +284 -0
  216. data/bundle/ruby/{2.7.0/gems/terminal-table-1.8.0 → 3.1.0/gems/terminal-table-3.0.2}/lib/terminal-table/table.rb +47 -18
  217. data/bundle/ruby/3.1.0/gems/terminal-table-3.0.2/lib/terminal-table/util.rb +13 -0
  218. data/bundle/ruby/{2.7.0/gems/terminal-table-1.8.0 → 3.1.0/gems/terminal-table-3.0.2}/lib/terminal-table/version.rb +1 -1
  219. data/bundle/ruby/{2.7.0/gems/terminal-table-1.8.0 → 3.1.0/gems/terminal-table-3.0.2}/lib/terminal-table.rb +2 -2
  220. data/bundle/ruby/{2.7.0/gems/terminal-table-1.8.0 → 3.1.0/gems/terminal-table-3.0.2}/terminal-table.gemspec +3 -3
  221. data/bundle/ruby/{2.7.0/gems/tilt-2.0.10 → 3.1.0/gems/tilt-2.5.0}/COPYING +1 -0
  222. data/bundle/ruby/3.1.0/gems/tilt-2.5.0/lib/tilt/_emacs_org.rb +2 -0
  223. data/bundle/ruby/3.1.0/gems/tilt-2.5.0/lib/tilt/_handlebars.rb +2 -0
  224. data/bundle/ruby/3.1.0/gems/tilt-2.5.0/lib/tilt/_jbuilder.rb +2 -0
  225. data/bundle/ruby/3.1.0/gems/tilt-2.5.0/lib/tilt/_org.rb +2 -0
  226. data/bundle/ruby/3.1.0/gems/tilt-2.5.0/lib/tilt/asciidoc.rb +15 -0
  227. data/bundle/ruby/3.1.0/gems/tilt-2.5.0/lib/tilt/babel.rb +8 -0
  228. data/bundle/ruby/3.1.0/gems/tilt-2.5.0/lib/tilt/builder.rb +42 -0
  229. data/bundle/ruby/3.1.0/gems/tilt-2.5.0/lib/tilt/cli.rb +134 -0
  230. data/bundle/ruby/3.1.0/gems/tilt-2.5.0/lib/tilt/coffee.rb +39 -0
  231. data/bundle/ruby/3.1.0/gems/tilt-2.5.0/lib/tilt/commonmarker.rb +95 -0
  232. data/bundle/ruby/3.1.0/gems/tilt-2.5.0/lib/tilt/creole.rb +16 -0
  233. data/bundle/ruby/{2.7.0/gems/tilt-2.0.10 → 3.1.0/gems/tilt-2.5.0}/lib/tilt/csv.rb +6 -18
  234. data/bundle/ruby/{2.7.0/gems/tilt-2.0.10 → 3.1.0/gems/tilt-2.5.0}/lib/tilt/erb.rb +23 -21
  235. data/bundle/ruby/3.1.0/gems/tilt-2.5.0/lib/tilt/erubi.rb +55 -0
  236. data/bundle/ruby/{2.7.0/gems/tilt-2.0.10 → 3.1.0/gems/tilt-2.5.0}/lib/tilt/etanni.rb +5 -4
  237. data/bundle/ruby/3.1.0/gems/tilt-2.5.0/lib/tilt/haml.rb +94 -0
  238. data/bundle/ruby/3.1.0/gems/tilt-2.5.0/lib/tilt/kramdown.rb +13 -0
  239. data/bundle/ruby/{2.7.0/gems/tilt-2.0.10 → 3.1.0/gems/tilt-2.5.0}/lib/tilt/liquid.rb +10 -17
  240. data/bundle/ruby/3.1.0/gems/tilt-2.5.0/lib/tilt/livescript.rb +11 -0
  241. data/bundle/ruby/{2.7.0/gems/tilt-2.0.10 → 3.1.0/gems/tilt-2.5.0}/lib/tilt/mapping.rb +228 -109
  242. data/bundle/ruby/{2.7.0/gems/tilt-2.0.10 → 3.1.0/gems/tilt-2.5.0}/lib/tilt/markaby.rb +5 -7
  243. data/bundle/ruby/{2.7.0/gems/tilt-2.0.10 → 3.1.0/gems/tilt-2.5.0}/lib/tilt/nokogiri.rb +11 -10
  244. data/bundle/ruby/3.1.0/gems/tilt-2.5.0/lib/tilt/pandoc.rb +39 -0
  245. data/bundle/ruby/3.1.0/gems/tilt-2.5.0/lib/tilt/pipeline.rb +19 -0
  246. data/bundle/ruby/3.1.0/gems/tilt-2.5.0/lib/tilt/plain.rb +5 -0
  247. data/bundle/ruby/3.1.0/gems/tilt-2.5.0/lib/tilt/prawn.rb +28 -0
  248. data/bundle/ruby/3.1.0/gems/tilt-2.5.0/lib/tilt/radius.rb +41 -0
  249. data/bundle/ruby/3.1.0/gems/tilt-2.5.0/lib/tilt/rdiscount.rb +23 -0
  250. data/bundle/ruby/3.1.0/gems/tilt-2.5.0/lib/tilt/rdoc.rb +11 -0
  251. data/bundle/ruby/3.1.0/gems/tilt-2.5.0/lib/tilt/redcarpet.rb +31 -0
  252. data/bundle/ruby/3.1.0/gems/tilt-2.5.0/lib/tilt/redcloth.rb +13 -0
  253. data/bundle/ruby/3.1.0/gems/tilt-2.5.0/lib/tilt/rst-pandoc.rb +10 -0
  254. data/bundle/ruby/3.1.0/gems/tilt-2.5.0/lib/tilt/sass.rb +78 -0
  255. data/bundle/ruby/3.1.0/gems/tilt-2.5.0/lib/tilt/slim.rb +5 -0
  256. data/bundle/ruby/{2.7.0/gems/tilt-2.0.10 → 3.1.0/gems/tilt-2.5.0}/lib/tilt/string.rb +9 -3
  257. data/bundle/ruby/3.1.0/gems/tilt-2.5.0/lib/tilt/template.rb +479 -0
  258. data/bundle/ruby/3.1.0/gems/tilt-2.5.0/lib/tilt/typescript.rb +19 -0
  259. data/bundle/ruby/{2.7.0/gems/tilt-2.0.10 → 3.1.0/gems/tilt-2.5.0}/lib/tilt/yajl.rb +5 -11
  260. data/bundle/ruby/{2.7.0/gems/tilt-2.0.10 → 3.1.0/gems/tilt-2.5.0}/lib/tilt.rb +60 -42
  261. data/bundle/ruby/{2.7.0/gems/unicode-display_width-1.8.0 → 3.1.0/gems/unicode-display_width-2.6.0}/CHANGELOG.md +65 -2
  262. data/bundle/ruby/{2.7.0/gems/unicode-display_width-1.8.0 → 3.1.0/gems/unicode-display_width-2.6.0}/MIT-LICENSE.txt +1 -1
  263. data/bundle/ruby/{2.7.0/gems/unicode-display_width-1.8.0 → 3.1.0/gems/unicode-display_width-2.6.0}/README.md +67 -20
  264. data/bundle/ruby/3.1.0/gems/unicode-display_width-2.6.0/data/display_width.marshal.gz +0 -0
  265. data/bundle/ruby/3.1.0/gems/unicode-display_width-2.6.0/lib/unicode/display_width/constants.rb +10 -0
  266. data/bundle/ruby/3.1.0/gems/unicode-display_width-2.6.0/lib/unicode/display_width/index.rb +34 -0
  267. data/bundle/ruby/3.1.0/gems/unicode-display_width-2.6.0/lib/unicode/display_width/no_string_ext.rb +8 -0
  268. data/bundle/ruby/3.1.0/gems/unicode-display_width-2.6.0/lib/unicode/display_width/string_ext.rb +9 -0
  269. data/bundle/ruby/3.1.0/gems/unicode-display_width-2.6.0/lib/unicode/display_width.rb +123 -0
  270. data/lib/brakeman/app_tree.rb +40 -13
  271. data/lib/brakeman/checks/base_check.rb +2 -3
  272. data/lib/brakeman/checks/check_basic_auth.rb +4 -2
  273. data/lib/brakeman/checks/check_basic_auth_timing_attack.rb +2 -1
  274. data/lib/brakeman/checks/check_content_tag.rb +16 -9
  275. data/lib/brakeman/checks/check_cookie_serialization.rb +2 -1
  276. data/lib/brakeman/checks/check_create_with.rb +4 -2
  277. data/lib/brakeman/checks/check_cross_site_scripting.rb +6 -3
  278. data/lib/brakeman/checks/check_csrf_token_forgery_cve.rb +2 -1
  279. data/lib/brakeman/checks/check_default_routes.rb +6 -3
  280. data/lib/brakeman/checks/check_deserialize.rb +6 -2
  281. data/lib/brakeman/checks/check_detailed_exceptions.rb +4 -2
  282. data/lib/brakeman/checks/check_digest_dos.rb +2 -1
  283. data/lib/brakeman/checks/check_divide_by_zero.rb +2 -1
  284. data/lib/brakeman/checks/check_dynamic_finders.rb +2 -1
  285. data/lib/brakeman/checks/check_eol_rails.rb +6 -0
  286. data/lib/brakeman/checks/check_eol_ruby.rb +4 -1
  287. data/lib/brakeman/checks/check_escape_function.rb +2 -1
  288. data/lib/brakeman/checks/check_evaluation.rb +21 -2
  289. data/lib/brakeman/checks/check_execute.rb +34 -3
  290. data/lib/brakeman/checks/check_file_access.rb +2 -1
  291. data/lib/brakeman/checks/check_file_disclosure.rb +2 -1
  292. data/lib/brakeman/checks/check_filter_skipping.rb +2 -1
  293. data/lib/brakeman/checks/check_force_ssl.rb +2 -1
  294. data/lib/brakeman/checks/check_forgery_setting.rb +4 -2
  295. data/lib/brakeman/checks/check_header_dos.rb +2 -1
  296. data/lib/brakeman/checks/check_i18n_xss.rb +2 -1
  297. data/lib/brakeman/checks/check_jruby_xml.rb +2 -1
  298. data/lib/brakeman/checks/check_json_encoding.rb +2 -1
  299. data/lib/brakeman/checks/check_json_entity_escape.rb +4 -2
  300. data/lib/brakeman/checks/check_json_parsing.rb +4 -2
  301. data/lib/brakeman/checks/check_link_to.rb +2 -1
  302. data/lib/brakeman/checks/check_link_to_href.rb +4 -2
  303. data/lib/brakeman/checks/check_mail_to.rb +2 -1
  304. data/lib/brakeman/checks/check_mass_assignment.rb +6 -3
  305. data/lib/brakeman/checks/check_mime_type_dos.rb +2 -1
  306. data/lib/brakeman/checks/check_model_attr_accessible.rb +3 -1
  307. data/lib/brakeman/checks/check_model_attributes.rb +4 -2
  308. data/lib/brakeman/checks/check_model_serialize.rb +2 -1
  309. data/lib/brakeman/checks/check_nested_attributes.rb +2 -1
  310. data/lib/brakeman/checks/check_nested_attributes_bypass.rb +2 -1
  311. data/lib/brakeman/checks/check_number_to_currency.rb +4 -2
  312. data/lib/brakeman/checks/check_page_caching_cve.rb +2 -1
  313. data/lib/brakeman/checks/check_pathname.rb +48 -0
  314. data/lib/brakeman/checks/check_permit_attributes.rb +2 -1
  315. data/lib/brakeman/checks/check_quote_table_name.rb +2 -1
  316. data/lib/brakeman/checks/check_ransack.rb +53 -0
  317. data/lib/brakeman/checks/check_redirect.rb +67 -31
  318. data/lib/brakeman/checks/check_regex_dos.rb +2 -1
  319. data/lib/brakeman/checks/check_render.rb +10 -3
  320. data/lib/brakeman/checks/check_render_dos.rb +2 -1
  321. data/lib/brakeman/checks/check_render_inline.rb +4 -2
  322. data/lib/brakeman/checks/check_response_splitting.rb +2 -1
  323. data/lib/brakeman/checks/check_reverse_tabnabbing.rb +2 -1
  324. data/lib/brakeman/checks/check_route_dos.rb +2 -1
  325. data/lib/brakeman/checks/check_safe_buffer_manipulation.rb +2 -1
  326. data/lib/brakeman/checks/check_sanitize_config_cve.rb +120 -0
  327. data/lib/brakeman/checks/check_sanitize_methods.rb +6 -3
  328. data/lib/brakeman/checks/check_secrets.rb +2 -1
  329. data/lib/brakeman/checks/check_select_tag.rb +2 -1
  330. data/lib/brakeman/checks/check_select_vulnerability.rb +2 -1
  331. data/lib/brakeman/checks/check_send.rb +2 -1
  332. data/lib/brakeman/checks/check_session_manipulation.rb +2 -1
  333. data/lib/brakeman/checks/check_session_settings.rb +8 -6
  334. data/lib/brakeman/checks/check_simple_format.rb +4 -2
  335. data/lib/brakeman/checks/check_single_quotes.rb +2 -1
  336. data/lib/brakeman/checks/check_skip_before_filter.rb +4 -2
  337. data/lib/brakeman/checks/check_sprockets_path_traversal.rb +2 -1
  338. data/lib/brakeman/checks/check_sql.rb +5 -3
  339. data/lib/brakeman/checks/check_sql_cves.rb +4 -2
  340. data/lib/brakeman/checks/check_ssl_verify.rb +2 -1
  341. data/lib/brakeman/checks/check_strip_tags.rb +6 -3
  342. data/lib/brakeman/checks/check_symbol_dos.rb +2 -1
  343. data/lib/brakeman/checks/check_symbol_dos_cve.rb +2 -1
  344. data/lib/brakeman/checks/check_template_injection.rb +2 -1
  345. data/lib/brakeman/checks/check_translate_bug.rb +2 -1
  346. data/lib/brakeman/checks/check_unsafe_reflection.rb +2 -1
  347. data/lib/brakeman/checks/check_unsafe_reflection_methods.rb +2 -1
  348. data/lib/brakeman/checks/check_unscoped_find.rb +10 -1
  349. data/lib/brakeman/checks/check_validation_regex.rb +2 -1
  350. data/lib/brakeman/checks/check_verb_confusion.rb +2 -1
  351. data/lib/brakeman/checks/check_weak_hash.rb +6 -3
  352. data/lib/brakeman/checks/check_weak_rsa_key.rb +112 -0
  353. data/lib/brakeman/checks/check_without_protection.rb +2 -1
  354. data/lib/brakeman/checks/check_xml_dos.rb +2 -1
  355. data/lib/brakeman/checks/check_yaml_parsing.rb +4 -2
  356. data/lib/brakeman/checks/eol_check.rb +4 -2
  357. data/lib/brakeman/file_parser.rb +35 -2
  358. data/lib/brakeman/options.rb +42 -5
  359. data/lib/brakeman/parsers/erubis_patch.rb +11 -0
  360. data/lib/brakeman/parsers/rails2_erubis.rb +3 -0
  361. data/lib/brakeman/parsers/rails2_xss_plugin_erubis.rb +4 -0
  362. data/lib/brakeman/parsers/rails3_erubis.rb +5 -1
  363. data/lib/brakeman/parsers/slim_embedded.rb +2 -0
  364. data/lib/brakeman/processors/alias_processor.rb +124 -41
  365. data/lib/brakeman/processors/gem_processor.rb +2 -2
  366. data/lib/brakeman/processors/lib/file_type_detector.rb +9 -7
  367. data/lib/brakeman/processors/lib/find_all_calls.rb +1 -0
  368. data/lib/brakeman/processors/lib/module_helper.rb +31 -1
  369. data/lib/brakeman/processors/lib/rails3_config_processor.rb +1 -1
  370. data/lib/brakeman/processors/library_processor.rb +6 -0
  371. data/lib/brakeman/report/ignore/config.rb +0 -1
  372. data/lib/brakeman/report/pager.rb +1 -1
  373. data/lib/brakeman/report/report_codeclimate.rb +1 -1
  374. data/lib/brakeman/report/report_csv.rb +2 -0
  375. data/lib/brakeman/report/report_github.rb +1 -1
  376. data/lib/brakeman/report/report_junit.rb +2 -2
  377. data/lib/brakeman/report/report_markdown.rb +1 -1
  378. data/lib/brakeman/report/report_sarif.rb +122 -2
  379. data/lib/brakeman/report/report_table.rb +7 -7
  380. data/lib/brakeman/report/report_tabs.rb +0 -1
  381. data/lib/brakeman/report/report_text.rb +10 -1
  382. data/lib/brakeman/report/templates/controller_warnings.html.erb +2 -0
  383. data/lib/brakeman/report/templates/ignored_warnings.html.erb +2 -0
  384. data/lib/brakeman/report/templates/model_warnings.html.erb +2 -0
  385. data/lib/brakeman/report/templates/security_warnings.html.erb +2 -0
  386. data/lib/brakeman/report/templates/view_warnings.html.erb +2 -0
  387. data/lib/brakeman/rescanner.rb +40 -388
  388. data/lib/brakeman/scanner.rb +161 -76
  389. data/lib/brakeman/tracker/config.rb +89 -34
  390. data/lib/brakeman/tracker/controller.rb +14 -10
  391. data/lib/brakeman/tracker/file_cache.rb +83 -0
  392. data/lib/brakeman/tracker.rb +21 -4
  393. data/lib/brakeman/util.rb +21 -7
  394. data/lib/brakeman/version.rb +1 -1
  395. data/lib/brakeman/warning.rb +6 -3
  396. data/lib/brakeman/warning_codes.rb +6 -0
  397. data/lib/brakeman.rb +22 -7
  398. data/lib/ruby_parser/bm_sexp.rb +5 -1
  399. metadata +438 -422
  400. data/bundle/ruby/2.7.0/gems/highline-2.0.3/appveyor.yml +0 -37
  401. data/bundle/ruby/2.7.0/gems/parallel-1.22.1/lib/parallel/processor_count.rb +0 -44
  402. data/bundle/ruby/2.7.0/gems/parallel-1.22.1/lib/parallel/version.rb +0 -4
  403. data/bundle/ruby/2.7.0/gems/rexml-3.2.5/NEWS.md +0 -178
  404. data/bundle/ruby/2.7.0/gems/rexml-3.2.5/lib/rexml/parsers/baseparser.rb +0 -694
  405. data/bundle/ruby/2.7.0/gems/rexml-3.2.5/lib/rexml/source.rb +0 -298
  406. data/bundle/ruby/2.7.0/gems/ruby_parser-legacy-1.0.0/History.rdoc +0 -6
  407. data/bundle/ruby/2.7.0/gems/ruby_parser-legacy-1.0.0/Manifest.txt +0 -19
  408. data/bundle/ruby/2.7.0/gems/ruby_parser-legacy-1.0.0/README.rdoc +0 -54
  409. data/bundle/ruby/2.7.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby18_parser.rb +0 -5794
  410. data/bundle/ruby/2.7.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby18_parser.y +0 -1909
  411. data/bundle/ruby/2.7.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby19_parser.rb +0 -6186
  412. data/bundle/ruby/2.7.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby19_parser.y +0 -2117
  413. data/bundle/ruby/2.7.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby_lexer.rb +0 -1412
  414. data/bundle/ruby/2.7.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby_lexer.rex +0 -179
  415. data/bundle/ruby/2.7.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby_lexer.rex.rb +0 -323
  416. data/bundle/ruby/2.7.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby_parser.rb +0 -30
  417. data/bundle/ruby/2.7.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby_parser_extras.rb +0 -1388
  418. data/bundle/ruby/2.7.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy.rb +0 -5
  419. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/CHANGES.md +0 -154
  420. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/Gemfile +0 -11
  421. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/LICENSE.txt +0 -22
  422. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/README.md +0 -191
  423. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/bundle_install_all_ruby_versions.sh +0 -11
  424. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/lib/safe_yaml/deep.rb +0 -34
  425. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/lib/safe_yaml/libyaml_checker.rb +0 -36
  426. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/lib/safe_yaml/load.rb +0 -181
  427. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/date.rb +0 -37
  428. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/hexadecimal.rb +0 -12
  429. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/sexagesimal.rb +0 -26
  430. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/lib/safe_yaml/psych_handler.rb +0 -99
  431. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/lib/safe_yaml/psych_resolver.rb +0 -52
  432. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/lib/safe_yaml/resolver.rb +0 -94
  433. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/lib/safe_yaml/safe_to_ruby_visitor.rb +0 -29
  434. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/lib/safe_yaml/store.rb +0 -39
  435. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/lib/safe_yaml/syck_hack.rb +0 -36
  436. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/lib/safe_yaml/syck_node_monkeypatch.rb +0 -43
  437. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/lib/safe_yaml/syck_resolver.rb +0 -38
  438. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_boolean.rb +0 -21
  439. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_date.rb +0 -13
  440. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_float.rb +0 -33
  441. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_integer.rb +0 -26
  442. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_nil.rb +0 -18
  443. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_symbol.rb +0 -17
  444. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/transformation_map.rb +0 -47
  445. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/lib/safe_yaml/transform.rb +0 -41
  446. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/lib/safe_yaml/version.rb +0 -3
  447. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/lib/safe_yaml.rb +0 -94
  448. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/run_specs_all_ruby_versions.sh +0 -38
  449. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/safe_yaml.gemspec +0 -19
  450. data/bundle/ruby/2.7.0/gems/slim-4.1.0/Gemfile +0 -70
  451. data/bundle/ruby/2.7.0/gems/slim-4.1.0/lib/slim/template.rb +0 -19
  452. data/bundle/ruby/2.7.0/gems/temple-0.8.2/Gemfile +0 -3
  453. data/bundle/ruby/2.7.0/gems/temple-0.8.2/lib/temple/version.rb +0 -3
  454. data/bundle/ruby/2.7.0/gems/terminal-table-1.8.0/History.rdoc +0 -85
  455. data/bundle/ruby/2.7.0/gems/terminal-table-1.8.0/README.rdoc +0 -247
  456. data/bundle/ruby/2.7.0/gems/terminal-table-1.8.0/lib/terminal-table/separator.rb +0 -14
  457. data/bundle/ruby/2.7.0/gems/terminal-table-1.8.0/lib/terminal-table/style.rb +0 -79
  458. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/asciidoc.rb +0 -27
  459. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/babel.rb +0 -16
  460. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/bluecloth.rb +0 -24
  461. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/builder.rb +0 -37
  462. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/coffee.rb +0 -58
  463. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/commonmarker.rb +0 -78
  464. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/creole.rb +0 -25
  465. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/dummy.rb +0 -3
  466. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/erubi.rb +0 -32
  467. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/erubis.rb +0 -43
  468. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/haml.rb +0 -86
  469. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/kramdown.rb +0 -25
  470. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/less.rb +0 -30
  471. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/livescript.rb +0 -23
  472. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/maruku.rb +0 -22
  473. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/pandoc.rb +0 -49
  474. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/plain.rb +0 -16
  475. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/prawn.rb +0 -43
  476. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/radius.rb +0 -48
  477. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/rdiscount.rb +0 -39
  478. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/rdoc.rb +0 -40
  479. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/redcarpet.rb +0 -83
  480. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/redcloth.rb +0 -23
  481. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/rst-pandoc.rb +0 -18
  482. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/sass.rb +0 -52
  483. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/sigil.rb +0 -34
  484. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/template.rb +0 -297
  485. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/typescript.rb +0 -26
  486. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/wikicloth.rb +0 -22
  487. data/bundle/ruby/2.7.0/gems/unicode-display_width-1.8.0/data/display_width.marshal.gz +0 -0
  488. data/bundle/ruby/2.7.0/gems/unicode-display_width-1.8.0/lib/unicode/display_width/constants.rb +0 -8
  489. data/bundle/ruby/2.7.0/gems/unicode-display_width-1.8.0/lib/unicode/display_width/index.rb +0 -12
  490. data/bundle/ruby/2.7.0/gems/unicode-display_width-1.8.0/lib/unicode/display_width/no_string_ext.rb +0 -7
  491. data/bundle/ruby/2.7.0/gems/unicode-display_width-1.8.0/lib/unicode/display_width/string_ext.rb +0 -17
  492. data/bundle/ruby/2.7.0/gems/unicode-display_width-1.8.0/lib/unicode/display_width.rb +0 -51
  493. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/CHANGES.txt +0 -0
  494. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/MIT-LICENSE +0 -0
  495. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/README.txt +0 -0
  496. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/contrib/erubis +0 -0
  497. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/contrib/erubis-run.rb +0 -0
  498. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/contrib/inline-require +0 -0
  499. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/context.rb +0 -0
  500. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/converter.rb +0 -0
  501. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/engine/ec.rb +0 -0
  502. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/engine/ecpp.rb +0 -0
  503. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/engine/ejava.rb +0 -0
  504. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/engine/ejavascript.rb +0 -0
  505. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/engine/enhanced.rb +0 -0
  506. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb +0 -0
  507. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/engine/ephp.rb +0 -0
  508. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/engine/eruby.rb +0 -0
  509. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/engine/escheme.rb +0 -0
  510. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/engine/optimized.rb +0 -0
  511. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/engine.rb +0 -0
  512. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/enhancer.rb +0 -0
  513. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/error.rb +0 -0
  514. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/evaluator.rb +0 -0
  515. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/generator.rb +0 -0
  516. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/helper.rb +0 -0
  517. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/helpers/rails_form_helper.rb +0 -0
  518. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/helpers/rails_helper.rb +0 -0
  519. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/local-setting.rb +0 -0
  520. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/main.rb +0 -0
  521. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/preprocessing.rb +0 -0
  522. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/tiny.rb +0 -0
  523. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/util.rb +0 -0
  524. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis.rb +0 -0
  525. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/erubis-2.7.0/setup.rb +0 -0
  526. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/CHANGELOG.md +0 -0
  527. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/FAQ.md +0 -0
  528. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/Gemfile +0 -0
  529. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/MIT-LICENSE +0 -0
  530. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/README.md +0 -0
  531. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/REFERENCE.md +0 -0
  532. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/TODO +0 -0
  533. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/haml.gemspec +0 -0
  534. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/attribute_builder.rb +0 -0
  535. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/attribute_compiler.rb +0 -0
  536. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/attribute_parser.rb +0 -0
  537. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/buffer.rb +0 -0
  538. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/compiler.rb +0 -0
  539. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/engine.rb +0 -0
  540. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/error.rb +0 -0
  541. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/escapable.rb +0 -0
  542. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/exec.rb +0 -0
  543. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/filters.rb +0 -0
  544. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/generator.rb +0 -0
  545. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/helpers/action_view_extensions.rb +0 -0
  546. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/helpers/action_view_mods.rb +0 -0
  547. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/helpers/action_view_xss_mods.rb +0 -0
  548. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/helpers/safe_erubi_template.rb +0 -0
  549. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/helpers/safe_erubis_template.rb +0 -0
  550. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/helpers/xss_mods.rb +0 -0
  551. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/helpers.rb +0 -0
  552. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/options.rb +0 -0
  553. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/parser.rb +0 -0
  554. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/plugin.rb +0 -0
  555. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/railtie.rb +0 -0
  556. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/sass_rails_filter.rb +0 -0
  557. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/template/options.rb +0 -0
  558. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/template.rb +0 -0
  559. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/temple_engine.rb +0 -0
  560. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/temple_line_counter.rb +0 -0
  561. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/util.rb +0 -0
  562. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/version.rb +0 -0
  563. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/lib/haml.rb +0 -0
  564. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/yard/default/fulldoc/html/css/common.sass +0 -0
  565. /data/bundle/ruby/{2.7.0 → 3.1.0}/gems/haml-5.2.2/yard/default/layout/html/footer.erb +0 -0
  566. /data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/AUTHORS +0 -0
  567. /data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/COPYING +0 -0
  568. /data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/LICENSE +0 -0
  569. /data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/TODO +0 -0
  570. /data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/lib/highline/builtin_styles.rb +0 -0
  571. /data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/lib/highline/color_scheme.rb +0 -0
  572. /data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/lib/highline/compatibility.rb +0 -0
  573. /data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/lib/highline/custom_errors.rb +0 -0
  574. /data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/lib/highline/import.rb +0 -0
  575. /data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/lib/highline/list.rb +0 -0
  576. /data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/lib/highline/list_renderer.rb +0 -0
  577. /data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/lib/highline/menu/item.rb +0 -0
  578. /data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/lib/highline/paginator.rb +0 -0
  579. /data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/lib/highline/simulate.rb +0 -0
  580. /data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/lib/highline/statement.rb +0 -0
  581. /data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/lib/highline/string.rb +0 -0
  582. /data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/lib/highline/string_extensions.rb +0 -0
  583. /data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/lib/highline/template_renderer.rb +0 -0
  584. /data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/lib/highline/terminal/ncurses.rb +0 -0
  585. /data/bundle/ruby/{2.7.0/gems/highline-2.0.3 → 3.1.0/gems/highline-3.1.1}/lib/highline/wrapper.rb +0 -0
  586. /data/bundle/ruby/{2.7.0/gems/parallel-1.22.1 → 3.1.0/gems/parallel-1.26.3}/MIT-LICENSE.txt +0 -0
  587. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5/LICENSE.txt → 3.1.0/gems/reline-0.6.0/BSDL} +0 -0
  588. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/attlistdecl.rb +0 -0
  589. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/cdata.rb +0 -0
  590. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/child.rb +0 -0
  591. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/comment.rb +0 -0
  592. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/doctype.rb +0 -0
  593. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/dtd/attlistdecl.rb +0 -0
  594. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/dtd/dtd.rb +0 -0
  595. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/dtd/elementdecl.rb +0 -0
  596. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/dtd/entitydecl.rb +0 -0
  597. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/dtd/notationdecl.rb +0 -0
  598. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/encoding.rb +0 -0
  599. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/formatters/default.rb +0 -0
  600. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/formatters/transitive.rb +0 -0
  601. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/instruction.rb +0 -0
  602. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/light/node.rb +0 -0
  603. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/output.rb +0 -0
  604. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/parent.rb +0 -0
  605. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/parsers/lightparser.rb +0 -0
  606. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/parsers/ultralightparser.rb +0 -0
  607. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/quickpath.rb +0 -0
  608. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/sax2listener.rb +0 -0
  609. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/security.rb +0 -0
  610. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/streamlistener.rb +0 -0
  611. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/undefinednamespaceexception.rb +0 -0
  612. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/validation/relaxng.rb +0 -0
  613. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/validation/validation.rb +0 -0
  614. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/validation/validationexception.rb +0 -0
  615. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/xmldecl.rb +0 -0
  616. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/xmltokens.rb +0 -0
  617. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml/xpath.rb +0 -0
  618. /data/bundle/ruby/{2.7.0/gems/rexml-3.2.5 → 3.1.0/gems/rexml-3.4.0}/lib/rexml.rb +0 -0
  619. /data/bundle/ruby/{2.7.0/gems/ruby2ruby-2.4.4 → 3.1.0/gems/ruby2ruby-2.5.1}/Manifest.txt +0 -0
  620. /data/bundle/ruby/{2.7.0/gems/ruby2ruby-2.4.4 → 3.1.0/gems/ruby2ruby-2.5.1}/README.rdoc +0 -0
  621. /data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/debugging.md +0 -0
  622. /data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/gauntlet.md +0 -0
  623. /data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/lib/rp_extensions.rb +0 -0
  624. /data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/lib/rp_stringscanner.rb +0 -0
  625. /data/bundle/ruby/{2.7.0/gems/ruby_parser-3.19.1 → 3.1.0/gems/ruby_parser-3.20.3}/lib/ruby_lexer.rex +0 -0
  626. /data/bundle/ruby/{2.7.0/gems/sexp_processor-4.16.1 → 3.1.0/gems/sexp_processor-4.17.3}/Manifest.txt +0 -0
  627. /data/bundle/ruby/{2.7.0/gems/sexp_processor-4.16.1 → 3.1.0/gems/sexp_processor-4.17.3}/README.rdoc +0 -0
  628. /data/bundle/ruby/{2.7.0/gems/sexp_processor-4.16.1 → 3.1.0/gems/sexp_processor-4.17.3}/lib/composite_sexp_processor.rb +0 -0
  629. /data/bundle/ruby/{2.7.0/gems/sexp_processor-4.16.1 → 3.1.0/gems/sexp_processor-4.17.3}/lib/unique.rb +0 -0
  630. /data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/EXPRESSIONS.md +0 -0
  631. /data/bundle/ruby/{2.7.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/LICENSE +0 -0
  632. /data/bundle/ruby/{2.7.0/gems/terminal-table-1.8.0 → 3.1.0/gems/terminal-table-3.0.2}/Gemfile +0 -0
  633. /data/bundle/ruby/{2.7.0/gems/terminal-table-1.8.0 → 3.1.0/gems/terminal-table-3.0.2}/LICENSE.txt +0 -0
  634. /data/bundle/ruby/{2.7.0/gems/terminal-table-1.8.0 → 3.1.0/gems/terminal-table-3.0.2}/Manifest +0 -0
  635. /data/bundle/ruby/{2.7.0/gems/terminal-table-1.8.0 → 3.1.0/gems/terminal-table-3.0.2}/Todo.rdoc +0 -0
  636. /data/bundle/ruby/{2.7.0/gems/terminal-table-1.8.0 → 3.1.0/gems/terminal-table-3.0.2}/lib/terminal-table/import.rb +0 -0
  637. /data/bundle/ruby/{2.7.0/gems/terminal-table-1.8.0 → 3.1.0/gems/terminal-table-3.0.2}/lib/terminal-table/table_helper.rb +0 -0
@@ -1,12 +1,6 @@
1
1
  # -*- racc -*-
2
2
 
3
- #if V == 30
4
- class Ruby30Parser
5
- #elif V == 31
6
3
  class Ruby31Parser
7
- #else
8
- fail "version not specified or supported on code generation"
9
- #endif
10
4
 
11
5
  token kCLASS kMODULE kDEF kUNDEF kBEGIN kRESCUE kENSURE kEND kIF kUNLESS
12
6
  kTHEN kELSIF kELSE kCASE kWHEN kWHILE kUNTIL kFOR kBREAK kNEXT
@@ -102,9 +96,9 @@ rule
102
96
  result = iter
103
97
  }
104
98
 
105
- begin_block: tLCURLY { result = lexer.lineno } top_compstmt tRCURLY
99
+ begin_block: tLCURLY top_compstmt tRCURLY
106
100
  {
107
- _, line, stmt, _ = val
101
+ (_, line), stmt, _ = val
108
102
  result = new_iter s(:preexe).line(line), 0, stmt
109
103
  }
110
104
 
@@ -227,6 +221,7 @@ rule
227
221
  | lhs tEQL mrhs
228
222
  {
229
223
  lhs, _, rhs = val
224
+
230
225
  result = new_assign lhs, s(:svalue, rhs).line(rhs.line)
231
226
  }
232
227
  | mlhs tEQL mrhs_arg kRESCUE_MOD stmt
@@ -288,7 +283,6 @@ rule
288
283
 
289
284
  result = s(:op_asgn, lhs1, rhs, lhs2.to_sym, id.to_sym).line line
290
285
  }
291
- #if V > 30
292
286
  | defn_head f_opt_paren_args tEQL command
293
287
  {
294
288
  result = new_endless_defn val
@@ -305,7 +299,6 @@ rule
305
299
  {
306
300
  result = new_endless_defs val
307
301
  }
308
- #endif
309
302
  | backref tOP_ASGN command_rhs
310
303
  {
311
304
  self.backref_assign_error val[0]
@@ -359,11 +352,7 @@ rule
359
352
  self.in_kwarg = true
360
353
  self.env.extend
361
354
  }
362
- #if V == 30
363
- p_expr
364
- #else
365
355
  p_top_expr_body
366
- #endif
367
356
  {
368
357
  lhs, _, in_kwarg, rhs = val
369
358
 
@@ -383,11 +372,7 @@ rule
383
372
  self.in_kwarg = true
384
373
  self.env.extend
385
374
  }
386
- #if V == 30
387
- p_expr
388
- #else
389
375
  p_top_expr_body
390
- #endif
391
376
  {
392
377
  self.env.unextend
393
378
 
@@ -423,6 +408,7 @@ rule
423
408
  defs_head: k_def singleton dot_or_colon
424
409
  {
425
410
  lexer.lex_state = EXPR_FNAME
411
+ self.in_argdef = true
426
412
  }
427
413
  def_name
428
414
  {
@@ -636,7 +622,7 @@ rule
636
622
  }
637
623
  | tSTAR
638
624
  {
639
- l = lexer.lineno
625
+ (_, l), = val
640
626
  result = s(:masgn, s(:array, s(:splat).line(l)).line(l)).line l
641
627
  }
642
628
  | tSTAR tCOMMA mlhs_post
@@ -1146,8 +1132,10 @@ rule
1146
1132
 
1147
1133
  paren_args: tLPAREN2 opt_call_args rparen
1148
1134
  {
1149
- _, args, _ = val
1135
+ _, args, (_, line_max) = val
1136
+
1150
1137
  result = args
1138
+ result.line_max = line_max if args
1151
1139
  }
1152
1140
  | tLPAREN2 args tCOMMA args_forward rparen
1153
1141
  {
@@ -1249,13 +1237,11 @@ rule
1249
1237
  _, arg = val
1250
1238
  result = s(:block_pass, arg).line arg.line
1251
1239
  }
1252
- #if V > 30
1253
1240
  | tAMPER
1254
1241
  {
1255
1242
  (_, line), = val
1256
1243
  result = s(:block_pass).line line
1257
1244
  }
1258
- #endif
1259
1245
 
1260
1246
  opt_block_arg: tCOMMA block_arg
1261
1247
  {
@@ -1266,7 +1252,7 @@ rule
1266
1252
  args: arg_value
1267
1253
  {
1268
1254
  arg, = val
1269
- lineno = arg.line || lexer.lineno # HACK
1255
+ lineno = arg.line
1270
1256
 
1271
1257
  result = s(:array, arg).line lineno
1272
1258
  }
@@ -1282,9 +1268,7 @@ rule
1282
1268
  }
1283
1269
  | args tCOMMA tSTAR arg_value
1284
1270
  {
1285
- # TODO: the line number from tSTAR has been dropped
1286
- args, _, _, id = val
1287
- line = lexer.lineno
1271
+ args, _, (_, line), id = val
1288
1272
  result = self.list_append args, s(:splat, id).line(line)
1289
1273
  }
1290
1274
 
@@ -1303,7 +1287,6 @@ rule
1303
1287
  }
1304
1288
  | args tCOMMA tSTAR arg_value
1305
1289
  {
1306
- # TODO: make all tXXXX terminals include lexer.lineno
1307
1290
  arg, _, _, splat = val
1308
1291
  result = self.arg_concat arg, splat
1309
1292
  }
@@ -1332,7 +1315,6 @@ rule
1332
1315
  | k_begin
1333
1316
  {
1334
1317
  lexer.cmdarg.push false
1335
- result = self.lexer.lineno
1336
1318
  }
1337
1319
  bodystmt k_end
1338
1320
  {
@@ -1342,11 +1324,10 @@ rule
1342
1324
  | tLPAREN_ARG
1343
1325
  {
1344
1326
  lexer.lex_state = EXPR_ENDARG
1345
- result = lexer.lineno
1346
1327
  }
1347
1328
  rparen
1348
1329
  {
1349
- _, line, _ = val
1330
+ (_, line), _, _ = val
1350
1331
  result = s(:begin).line line
1351
1332
  }
1352
1333
  | tLPAREN_ARG
@@ -1362,9 +1343,8 @@ rule
1362
1343
  }
1363
1344
  | tLPAREN compstmt tRPAREN
1364
1345
  {
1365
- _, stmt, _ = val
1366
- result = stmt
1367
- result ||= s(:nil).line lexer.lineno
1346
+ (_, line), stmt, _ = val
1347
+ result = stmt || s(:nil).line(line)
1368
1348
  result.paren = true
1369
1349
  }
1370
1350
  | primary_value tCOLON2 tCONSTANT
@@ -1377,12 +1357,14 @@ rule
1377
1357
  {
1378
1358
  result = wrap :colon3, val[1]
1379
1359
  }
1380
- | tLBRACK { result = lexer.lineno } aref_args tRBRACK
1360
+ | tLBRACK aref_args rbracket
1381
1361
  {
1382
- _, line, args, _ = val
1362
+ (_, line), args, (_, line_max) = val
1363
+
1383
1364
  result = args || s(:array)
1384
1365
  result.sexp_type = :array # aref_args is :args
1385
1366
  result.line line
1367
+ result.line_max = line_max
1386
1368
  }
1387
1369
  | tLBRACE
1388
1370
  {
@@ -1493,9 +1475,6 @@ rule
1493
1475
  result = new_for iter, var, body
1494
1476
  }
1495
1477
  | k_class
1496
- {
1497
- result = self.lexer.lineno
1498
- }
1499
1478
  cpath superclass
1500
1479
  {
1501
1480
  if (self.in_def || self.in_single > 0) then
@@ -1510,9 +1489,6 @@ rule
1510
1489
  self.lexer.ignore_body_comments
1511
1490
  }
1512
1491
  | k_class tLSHFT
1513
- {
1514
- result = self.lexer.lineno
1515
- }
1516
1492
  expr
1517
1493
  {
1518
1494
  result = self.in_def
@@ -1524,16 +1500,14 @@ rule
1524
1500
  self.in_single = 0
1525
1501
  self.env.extend
1526
1502
  }
1527
- bodystmt k_end
1503
+ bodystmt
1504
+ k_end
1528
1505
  {
1529
1506
  result = new_sclass val
1530
1507
  self.env.unextend
1531
1508
  self.lexer.ignore_body_comments
1532
1509
  }
1533
1510
  | k_module
1534
- {
1535
- result = self.lexer.lineno
1536
- }
1537
1511
  cpath
1538
1512
  {
1539
1513
  yyerror "module definition in method body" if
@@ -1636,6 +1610,7 @@ rule
1636
1610
  k_def: kDEF
1637
1611
  {
1638
1612
  self.comments.push self.lexer.comments
1613
+ self.in_argdef = true
1639
1614
  }
1640
1615
  k_do: kDO
1641
1616
  k_do_block: kDO_BLOCK
@@ -1675,20 +1650,33 @@ rule
1675
1650
  }
1676
1651
 
1677
1652
  f_marg: f_norm_arg
1653
+ {
1654
+ (sym, line), = val
1655
+
1656
+ result = s(:dummy, sym).line line
1657
+ }
1678
1658
  | tLPAREN f_margs rparen
1679
1659
  {
1680
- result = val[1]
1660
+ _, args, _ = val
1661
+ result = args
1681
1662
  }
1682
1663
 
1683
1664
  f_marg_list: f_marg
1684
1665
  {
1685
- sym, = val
1666
+ arg, = val
1667
+ line = arg.line
1686
1668
 
1687
- result = s(:array, sym).line lexer.lineno
1669
+ arg = arg.last if arg.sexp_type == :dummy
1670
+
1671
+ result = s(:array, arg).line line
1688
1672
  }
1689
1673
  | f_marg_list tCOMMA f_marg
1690
1674
  {
1691
- result = list_append val[0], val[2]
1675
+ args, _, arg = val
1676
+
1677
+ arg = arg.last if arg.sexp_type == :dummy
1678
+
1679
+ result = list_append args, arg
1692
1680
  }
1693
1681
 
1694
1682
  f_margs: f_marg_list
@@ -1731,16 +1719,14 @@ rule
1731
1719
  }
1732
1720
  | tSTAR
1733
1721
  {
1734
- result = args [:*]
1735
- result.line lexer.lineno # FIX: tSTAR -> line
1722
+ (_, line), = val
1723
+ result = args([:*]).line line
1736
1724
  }
1737
1725
 
1738
1726
  f_any_kwrest: f_kwrest
1739
1727
  | f_no_kwarg
1740
1728
 
1741
- #if V > 30
1742
- f_eq: tEQL # TODO: self.in_argdef = false
1743
- #endif
1729
+ f_eq: { self.in_argdef = false } tEQL
1744
1730
 
1745
1731
  block_args_tail: f_block_kwarg tCOMMA f_kwrest opt_f_block_arg
1746
1732
  {
@@ -1844,15 +1830,19 @@ opt_block_args_tail: tCOMMA block_args_tail
1844
1830
  {
1845
1831
  # TODO: current_arg = 0
1846
1832
  result = args val
1833
+ self.in_argdef = false
1847
1834
  }
1848
1835
  | tOROP
1849
1836
  {
1850
- result = s(:args).line lexer.lineno
1837
+ (_, line), = val
1838
+
1839
+ result = s(:args).line line
1851
1840
  }
1852
1841
  | tPIPE block_param opt_bv_decl tPIPE
1853
1842
  {
1854
1843
  # TODO: current_arg = 0
1855
1844
  result = args val
1845
+ self.in_argdef = false
1856
1846
  }
1857
1847
 
1858
1848
  opt_bv_decl: opt_nl
@@ -1879,7 +1869,7 @@ opt_block_args_tail: tCOMMA block_args_tail
1879
1869
  lambda: tLAMBDA
1880
1870
  {
1881
1871
  self.env.extend :dynamic
1882
- result = [lexer.lineno, lexer.lpar_beg]
1872
+ result = lexer.lpar_beg
1883
1873
  lexer.paren_nest += 1
1884
1874
  lexer.lpar_beg = lexer.paren_nest
1885
1875
  }
@@ -1889,7 +1879,7 @@ opt_block_args_tail: tCOMMA block_args_tail
1889
1879
  }
1890
1880
  lambda_body
1891
1881
  {
1892
- _, (line, lpar), args, _cmdarg, body = val
1882
+ (_, line), lpar, args, _cmdarg, body = val
1893
1883
  lexer.lpar_beg = lpar
1894
1884
 
1895
1885
  lexer.cmdarg.pop
@@ -1902,10 +1892,12 @@ opt_block_args_tail: tCOMMA block_args_tail
1902
1892
 
1903
1893
  f_larglist: tLPAREN2 f_args opt_bv_decl rparen
1904
1894
  {
1895
+ self.in_argdef = false
1905
1896
  result = args val
1906
1897
  }
1907
1898
  | f_args
1908
1899
  {
1900
+ self.in_argdef = false
1909
1901
  result = val[0]
1910
1902
  result = 0 if result == s(:args)
1911
1903
  }
@@ -1973,13 +1965,19 @@ opt_block_args_tail: tCOMMA block_args_tail
1973
1965
  {
1974
1966
  call, args = val
1975
1967
 
1976
- result = call.concat args.sexp_body if args
1968
+ result = call
1969
+
1970
+ if args then
1971
+ call.concat args.sexp_body
1972
+ result.line_max = args.line_max
1973
+ end
1977
1974
  }
1978
1975
  | primary_value call_op operation2 opt_paren_args
1979
1976
  {
1980
- recv, call_op, (op, _line), args = val
1977
+ recv, call_op, (op, op_line), args = val
1981
1978
 
1982
1979
  result = new_call recv, op.to_sym, args, call_op
1980
+ result.line_max = op_line unless args
1983
1981
  }
1984
1982
  | primary_value tCOLON2 operation2 paren_args
1985
1983
  {
@@ -2007,7 +2005,8 @@ opt_block_args_tail: tCOMMA block_args_tail
2007
2005
  }
2008
2006
  | kSUPER
2009
2007
  {
2010
- result = s(:zsuper).line lexer.lineno
2008
+ (_, line), = val
2009
+ result = s(:zsuper).line line
2011
2010
  }
2012
2011
  | primary_value tLBRACK2 opt_call_args rbracket
2013
2012
  {
@@ -2017,11 +2016,11 @@ opt_block_args_tail: tCOMMA block_args_tail
2017
2016
  brace_block: tLCURLY
2018
2017
  {
2019
2018
  self.env.extend :dynamic
2020
- result = self.lexer.lineno
2021
2019
  }
2022
- brace_body tRCURLY
2020
+ brace_body
2021
+ tRCURLY
2023
2022
  {
2024
- _, line, body, _ = val
2023
+ (_, line), _, body, _ = val
2025
2024
 
2026
2025
  result = body
2027
2026
  result.line line
@@ -2031,11 +2030,11 @@ opt_block_args_tail: tCOMMA block_args_tail
2031
2030
  | k_do
2032
2031
  {
2033
2032
  self.env.extend :dynamic
2034
- result = self.lexer.lineno
2035
2033
  }
2036
- do_body kEND
2034
+ do_body
2035
+ kEND
2037
2036
  {
2038
- _, line, body, _ = val
2037
+ (_, line), _, body, _ = val
2039
2038
 
2040
2039
  result = body
2041
2040
  result.line line
@@ -2093,14 +2092,13 @@ opt_block_args_tail: tCOMMA block_args_tail
2093
2092
  }
2094
2093
 
2095
2094
  case_body: k_when
2096
- {
2097
- result = self.lexer.lineno
2098
- }
2099
2095
  case_args then compstmt cases
2100
2096
  {
2101
- result = new_when(val[2], val[4])
2102
- result.line val[1]
2103
- result << val[5] if val[5]
2097
+ (_, line), case_args, _then, body, cases = val
2098
+
2099
+ result = new_when case_args, body
2100
+ result.line line
2101
+ result << cases if cases
2104
2102
  }
2105
2103
 
2106
2104
  cases: opt_else | case_body
@@ -2211,9 +2209,7 @@ opt_block_args_tail: tCOMMA block_args_tail
2211
2209
  p_lbracket: tLBRACK2 { push_pktbl }
2212
2210
 
2213
2211
  p_expr_basic: p_value
2214
- #if V > 30
2215
2212
  | p_variable
2216
- #endif
2217
2213
  | p_const p_lparen p_args tRPAREN
2218
2214
  {
2219
2215
  lhs, _, args, _ = val
@@ -2500,13 +2496,11 @@ opt_block_args_tail: tCOMMA block_args_tail
2500
2496
  {
2501
2497
  result = wrap :lit, val[0]
2502
2498
  }
2503
- #if V > 30
2504
2499
  | tSTRING_BEG string_contents tLABEL_END
2505
2500
  {
2506
2501
  # you can't actually get here the way I lex labels
2507
2502
  debug 11
2508
2503
  }
2509
- #endif
2510
2504
 
2511
2505
  p_kwrest: kwrest_mark tIDENTIFIER
2512
2506
  {
@@ -2565,13 +2559,8 @@ opt_block_args_tail: tCOMMA block_args_tail
2565
2559
 
2566
2560
  result = s(:dot3, v1, nil).line v1.line
2567
2561
  }
2568
- #if V == 30
2569
- | p_variable
2570
- #endif
2571
2562
  | p_var_ref
2572
- #if V > 30
2573
2563
  | p_expr_ref
2574
- #endif
2575
2564
  | p_const
2576
2565
  | tBDOT2 p_primitive
2577
2566
  {
@@ -2591,9 +2580,21 @@ opt_block_args_tail: tCOMMA block_args_tail
2591
2580
  | xstring
2592
2581
  | regexp
2593
2582
  | words
2583
+ {
2584
+ result = ary_to_pat val[0]
2585
+ }
2594
2586
  | qwords
2587
+ {
2588
+ result = ary_to_pat val[0]
2589
+ }
2595
2590
  | symbols
2591
+ {
2592
+ result = ary_to_pat val[0]
2593
+ }
2596
2594
  | qsymbols
2595
+ {
2596
+ result = ary_to_pat val[0]
2597
+ }
2597
2598
  | keyword_variable
2598
2599
  {
2599
2600
  # TODO? if (!($$ = gettable(p, $1, &@$))) $$ = NEW_BEGIN(0, &@$);
@@ -2607,7 +2608,7 @@ opt_block_args_tail: tCOMMA block_args_tail
2607
2608
  {
2608
2609
  # TODO: error_duplicate_pattern_variable(p, $1, &@1);
2609
2610
  # TODO: assignable(p, $1, 0, &@$);
2610
- result = wrap :lvar, val[0]
2611
+ result = wrap :lasgn, val[0]
2611
2612
  }
2612
2613
 
2613
2614
  p_var_ref: tCARET tIDENTIFIER
@@ -2615,21 +2616,17 @@ opt_block_args_tail: tCOMMA block_args_tail
2615
2616
  # TODO: check id against env for lvar or dvar
2616
2617
  result = wrap :lvar, val[1]
2617
2618
  }
2618
- #if V > 30
2619
2619
  | tCARET nonlocal_var
2620
2620
  {
2621
2621
  _, var = val
2622
2622
  result = var
2623
2623
  }
2624
- #endif
2625
2624
 
2626
- #if V > 30
2627
2625
  p_expr_ref: tCARET tLPAREN expr_value rparen
2628
2626
  {
2629
2627
  _, _, expr, _ = val
2630
2628
  result = expr # TODO? s(:begin, expr).line expr.line
2631
2629
  }
2632
- #endif
2633
2630
 
2634
2631
  p_const: tCOLON3 cname
2635
2632
  {
@@ -2737,15 +2734,17 @@ opt_block_args_tail: tCOMMA block_args_tail
2737
2734
 
2738
2735
  words: tWORDS_BEG tSPACE tSTRING_END
2739
2736
  {
2740
- (_, line), _, _ = val
2737
+ (_, line), _, (_, line_max) = val
2741
2738
 
2742
2739
  result = s(:array).line line
2740
+ result.line_max = line_max
2743
2741
  }
2744
2742
  | tWORDS_BEG word_list tSTRING_END
2745
2743
  {
2746
- (_, line), list, _ = val
2744
+ (_, line), list, (_, line_max) = val
2747
2745
 
2748
2746
  result = list.line line
2747
+ result.line_max = line_max
2749
2748
  }
2750
2749
 
2751
2750
  word_list: none
@@ -2765,15 +2764,17 @@ opt_block_args_tail: tCOMMA block_args_tail
2765
2764
 
2766
2765
  symbols: tSYMBOLS_BEG tSPACE tSTRING_END
2767
2766
  {
2768
- (_, line), _, _ = val
2767
+ (_, line), _, (_, line_max) = val
2769
2768
 
2770
2769
  result = s(:array).line line
2770
+ result.line_max = line_max
2771
2771
  }
2772
2772
  | tSYMBOLS_BEG symbol_list tSTRING_END
2773
2773
  {
2774
- (_, line), list, _, = val
2775
- list.line line
2776
- result = list
2774
+ (_, line), list, (_, line_max), = val
2775
+
2776
+ result = list.line line
2777
+ result.line_max = line_max
2777
2778
  }
2778
2779
 
2779
2780
  symbol_list: none
@@ -2788,28 +2789,32 @@ opt_block_args_tail: tCOMMA block_args_tail
2788
2789
 
2789
2790
  qwords: tQWORDS_BEG tSPACE tSTRING_END
2790
2791
  {
2791
- (_, line), _, _ = val
2792
+ (_, line), _, (_, line_max) = val
2792
2793
 
2793
2794
  result = s(:array).line line
2795
+ result.line_max = line_max
2794
2796
  }
2795
2797
  | tQWORDS_BEG qword_list tSTRING_END
2796
2798
  {
2797
- (_, line), list, _ = val
2799
+ (_, line), list, (_, line_max) = val
2798
2800
 
2799
2801
  result = list.line line
2802
+ result.line_max = line_max
2800
2803
  }
2801
2804
 
2802
2805
  qsymbols: tQSYMBOLS_BEG tSPACE tSTRING_END
2803
2806
  {
2804
- (_, line), _, _ = val
2807
+ (_, line), _, (_, line_max) = val
2805
2808
 
2806
2809
  result = s(:array).line line
2810
+ result.line_max = line_max
2807
2811
  }
2808
2812
  | tQSYMBOLS_BEG qsym_list tSTRING_END
2809
2813
  {
2810
- (_, line), list, _ = val
2814
+ (_, line), list, (_, line_max) = val
2811
2815
 
2812
2816
  result = list.line line
2817
+ result.line_max = line_max
2813
2818
  }
2814
2819
 
2815
2820
  qword_list: none
@@ -2884,7 +2889,6 @@ regexp_contents: none
2884
2889
  lexer.brace_nest,
2885
2890
  lexer.string_nest, # TODO: remove
2886
2891
  lexer.lex_state,
2887
- lexer.lineno,
2888
2892
  ]
2889
2893
 
2890
2894
  lexer.cmdarg.push false
@@ -2899,9 +2903,9 @@ regexp_contents: none
2899
2903
  compstmt
2900
2904
  tSTRING_DEND
2901
2905
  {
2902
- _, memo, stmt, _ = val
2906
+ (_, line), memo, stmt, _ = val
2903
2907
 
2904
- lex_strterm, brace_nest, string_nest, oldlex_state, line = memo
2908
+ lex_strterm, brace_nest, string_nest, oldlex_state = memo
2905
2909
  # TODO: heredoc_indent
2906
2910
 
2907
2911
  lexer.lex_strterm = lex_strterm
@@ -2961,11 +2965,11 @@ regexp_contents: none
2961
2965
 
2962
2966
  dsym: tSYMBEG string_contents tSTRING_END
2963
2967
  {
2964
- _, result, _ = val
2968
+ (_, line), result, _ = val
2965
2969
 
2966
2970
  lexer.lex_state = EXPR_END
2967
2971
 
2968
- result ||= s(:str, "").line lexer.lineno
2972
+ result ||= s(:str, "").line line
2969
2973
 
2970
2974
  case result.sexp_type
2971
2975
  when :dstr then
@@ -2991,11 +2995,9 @@ regexp_contents: none
2991
2995
  | tRATIONAL
2992
2996
  | tIMAGINARY
2993
2997
 
2994
- #if V > 30
2995
2998
  nonlocal_var: tIVAR { result = wrap :ivar, val[0] }
2996
2999
  | tGVAR { result = wrap :gvar, val[0] }
2997
3000
  | tCVAR { result = wrap :cvar, val[0] }
2998
- #endif
2999
3001
 
3000
3002
  user_variable: tIDENTIFIER
3001
3003
  | tIVAR
@@ -3003,15 +3005,15 @@ regexp_contents: none
3003
3005
  | tCONSTANT
3004
3006
  | tCVAR
3005
3007
 
3006
- keyword_variable: kNIL { result = s(:nil).line lexer.lineno }
3007
- | kSELF { result = s(:self).line lexer.lineno }
3008
- | kTRUE { result = s(:true).line lexer.lineno }
3009
- | kFALSE { result = s(:false).line lexer.lineno }
3010
- | k__FILE__ { result = s(:str, self.file).line lexer.lineno }
3011
- | k__LINE__ { result = s(:lit, lexer.lineno).line lexer.lineno }
3008
+ keyword_variable: kNIL { (_, line), = val; result = s(:nil).line line }
3009
+ | kSELF { (_, line), = val; result = s(:self).line line }
3010
+ | kTRUE { (_, line), = val; result = s(:true).line line }
3011
+ | kFALSE { (_, line), = val; result = s(:false).line line }
3012
+ | k__FILE__ { (_, line), = val; result = s(:str, self.file).line line }
3013
+ | k__LINE__ { (_, line), = val; result = s(:lit, line).line line }
3012
3014
  | k__ENCODING__
3013
3015
  {
3014
- l = lexer.lineno
3016
+ (_, l), = val
3015
3017
  result =
3016
3018
  if defined? Encoding then
3017
3019
  s(:colon2, s(:const, :Encoding).line(l), :UTF_8).line l
@@ -3072,32 +3074,26 @@ keyword_variable: kNIL { result = s(:nil).line lexer.lineno }
3072
3074
  f_opt_paren_args: f_paren_args
3073
3075
  | none
3074
3076
  {
3077
+ self.in_argdef = false
3075
3078
  result = end_args val
3076
3079
  }
3077
3080
 
3078
3081
  f_paren_args: tLPAREN2 f_args rparen
3079
3082
  {
3083
+ self.in_argdef = false
3080
3084
  result = end_args val
3081
3085
  }
3082
- #if V == 30
3083
- | tLPAREN2 f_arg tCOMMA args_forward rparen
3084
- {
3085
- result = end_args val
3086
- }
3087
- | tLPAREN2 args_forward rparen
3088
- {
3089
- result = end_args val
3090
- }
3091
- #endif
3092
3086
 
3093
3087
  f_arglist: f_paren_args
3094
3088
  | {
3095
3089
  result = self.in_kwarg
3096
3090
  self.in_kwarg = true
3091
+ self.in_argdef = true
3097
3092
  self.lexer.lex_state |= EXPR_LABEL
3098
3093
  }
3099
3094
  f_args term
3100
3095
  {
3096
+ self.in_argdef = false
3101
3097
  result = end_args val
3102
3098
  }
3103
3099
 
@@ -3114,9 +3110,7 @@ f_opt_paren_args: f_paren_args
3114
3110
  result = args val
3115
3111
  }
3116
3112
  | f_block_arg
3117
- #if V > 30
3118
3113
  | args_forward
3119
- #endif
3120
3114
 
3121
3115
  opt_args_tail: tCOMMA args_tail
3122
3116
  {
@@ -3186,12 +3180,12 @@ f_opt_paren_args: f_paren_args
3186
3180
  |
3187
3181
  {
3188
3182
  result = args val
3189
- # result.line lexer.lineno
3190
3183
  }
3191
3184
 
3192
3185
  args_forward: tBDOT3
3193
3186
  {
3194
- result = s(:forward_args).line lexer.lineno
3187
+ (_, line), = val
3188
+ result = s(:forward_args).line line
3195
3189
  }
3196
3190
 
3197
3191
  f_bad_arg: tCONSTANT
@@ -3245,10 +3239,25 @@ f_opt_paren_args: f_paren_args
3245
3239
  result = s(:args, list).line list.line
3246
3240
  end
3247
3241
 
3248
- result << (Sexp === item ? item : item.first)
3242
+ if Sexp === item then
3243
+ line_max = item.line_max
3244
+ else
3245
+ item, line_max = item
3246
+ end
3247
+
3248
+ result << item
3249
+ result.line_max = line_max
3249
3250
  }
3250
3251
 
3251
3252
  f_label: tLABEL
3253
+ {
3254
+ label, = val
3255
+ # arg_var(p, formal_argument(p, $1));
3256
+ # p->cur_arg = get_id($1);
3257
+ # p->max_numparam = ORDINAL_PARAM;
3258
+ self.in_argdef = false
3259
+ result = label
3260
+ }
3252
3261
 
3253
3262
  f_kw: f_label arg_value
3254
3263
  {
@@ -3257,6 +3266,7 @@ f_opt_paren_args: f_paren_args
3257
3266
 
3258
3267
  identifier = label.to_sym
3259
3268
  self.env[identifier] = :lvar
3269
+ self.in_argdef = true
3260
3270
 
3261
3271
  kwarg = s(:kwarg, identifier, arg).line line
3262
3272
  result = s(:array, kwarg).line line
@@ -3267,6 +3277,7 @@ f_opt_paren_args: f_paren_args
3267
3277
 
3268
3278
  id = label.to_sym
3269
3279
  self.env[id] = :lvar
3280
+ self.in_argdef = true
3270
3281
 
3271
3282
  result = s(:array, s(:kwarg, id).line(line)).line line
3272
3283
  }
@@ -3277,6 +3288,7 @@ f_opt_paren_args: f_paren_args
3277
3288
  (label, line), expr = val
3278
3289
  id = label.to_sym
3279
3290
  self.env[id] = :lvar
3291
+ self.in_argdef = true
3280
3292
 
3281
3293
  result = s(:array, s(:kwarg, id, expr).line(line)).line line
3282
3294
  }
@@ -3286,6 +3298,7 @@ f_opt_paren_args: f_paren_args
3286
3298
  (label, line), = val
3287
3299
  id = label.to_sym
3288
3300
  self.env[id] = :lvar
3301
+ self.in_argdef = true
3289
3302
 
3290
3303
  result = s(:array, s(:kwarg, id).line(line)).line line
3291
3304
  }
@@ -3322,38 +3335,31 @@ f_opt_paren_args: f_paren_args
3322
3335
  }
3323
3336
  | kwrest_mark
3324
3337
  {
3338
+ (_, line), = val
3325
3339
  id = :"**"
3326
- self.env[id] = :lvar # TODO: needed?!?
3327
- result = [id, lexer.lineno] # TODO: tPOW/tDSTAR include lineno
3340
+ self.env[id] = :lvar
3341
+ result = [id, line]
3328
3342
  }
3329
3343
 
3330
3344
  f_opt: f_arg_asgn
3331
- #if V > 30
3332
3345
  f_eq
3333
- #else
3334
- tEQL
3335
- #endif
3336
3346
  arg_value
3337
3347
  {
3338
3348
  lhs, _, rhs = val
3349
+ self.in_argdef = true
3339
3350
  result = self.assignable lhs, rhs
3340
3351
  # TODO: detect duplicate names
3341
3352
  # TODO? p->cur_arg = 0;
3342
- # TODO? p->ctxt.in_argdef = 1;
3343
3353
  }
3344
3354
 
3345
3355
  f_block_opt: f_arg_asgn
3346
- #if V > 30
3347
3356
  f_eq
3348
- #else
3349
- tEQL
3350
- #endif
3351
3357
  primary_value
3352
3358
  {
3353
3359
  lhs, _, rhs = val
3360
+ self.in_argdef = true
3354
3361
  result = self.assignable lhs, rhs
3355
3362
  # TODO? p->cur_arg = 0;
3356
- # TODO? p->ctxt.in_argdef = 1;
3357
3363
  }
3358
3364
 
3359
3365
  f_block_optarg: f_block_opt
@@ -3390,9 +3396,10 @@ f_opt_paren_args: f_paren_args
3390
3396
  }
3391
3397
  | restarg_mark
3392
3398
  {
3399
+ (_, line), = val
3393
3400
  name = :"*"
3394
3401
  self.env[name] = :lvar
3395
- result = [name, lexer.lineno] # FIX: tSTAR to include lineno
3402
+ result = [name, line]
3396
3403
  }
3397
3404
 
3398
3405
  blkarg_mark: tAMPER2 | tAMPER
@@ -3497,11 +3504,10 @@ f_opt_paren_args: f_paren_args
3497
3504
  opt_terms: | terms
3498
3505
  opt_nl: | tNL
3499
3506
  rparen: opt_nl tRPAREN
3500
- # TODO:
3501
- # {
3502
- # _, close = val
3503
- # result = [close, lexer.lineno]
3504
- # }
3507
+ {
3508
+ _, close = val # TODO: include lineno in close?
3509
+ result = [close, lexer.lineno]
3510
+ }
3505
3511
  rbracket: opt_nl tRBRACK
3506
3512
  {
3507
3513
  _, close = val