brakeman 6.1.2 → 6.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (478) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +14 -0
  3. data/README.md +5 -1
  4. data/bundle/load.rb +15 -13
  5. data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/Changelog.md +4 -0
  6. data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/highline.gemspec +4 -1
  7. data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/lib/highline/terminal.rb +2 -2
  8. data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/lib/highline/version.rb +1 -1
  9. data/bundle/ruby/3.1.0/gems/io-console-0.7.2/README.md +46 -0
  10. data/bundle/ruby/3.1.0/gems/io-console-0.7.2/ext/io/console/Makefile +270 -0
  11. data/bundle/ruby/3.1.0/gems/io-console-0.7.2/ext/io/console/console.c +1838 -0
  12. data/bundle/ruby/3.1.0/gems/io-console-0.7.2/ext/io/console/console.o +0 -0
  13. data/bundle/ruby/3.1.0/gems/io-console-0.7.2/ext/io/console/console.so +0 -0
  14. data/bundle/ruby/3.1.0/gems/io-console-0.7.2/ext/io/console/extconf.rb +43 -0
  15. data/bundle/ruby/3.1.0/gems/io-console-0.7.2/ext/io/console/win32_vk.inc +1391 -0
  16. data/bundle/ruby/3.1.0/gems/io-console-0.7.2/lib/io/console/size.rb +23 -0
  17. data/bundle/ruby/3.1.0/gems/io-console-0.7.2/lib/io/console.so +0 -0
  18. data/bundle/ruby/3.1.0/gems/parallel-1.26.3/lib/parallel/version.rb +4 -0
  19. data/bundle/ruby/{3.3.0/gems/parallel-1.24.0 → 3.1.0/gems/parallel-1.26.3}/lib/parallel.rb +51 -19
  20. data/bundle/ruby/3.1.0/gems/reline-0.5.9/BSDL +22 -0
  21. data/bundle/ruby/3.1.0/gems/reline-0.5.9/COPYING +56 -0
  22. data/bundle/ruby/3.1.0/gems/reline-0.5.9/README.md +94 -0
  23. data/bundle/ruby/3.1.0/gems/reline-0.5.9/lib/reline/config.rb +382 -0
  24. data/bundle/ruby/3.1.0/gems/reline-0.5.9/lib/reline/face.rb +199 -0
  25. data/bundle/ruby/3.1.0/gems/reline-0.5.9/lib/reline/history.rb +76 -0
  26. data/bundle/ruby/3.1.0/gems/reline-0.5.9/lib/reline/io/ansi.rb +364 -0
  27. data/bundle/ruby/3.1.0/gems/reline-0.5.9/lib/reline/io/dumb.rb +106 -0
  28. data/bundle/ruby/3.1.0/gems/reline-0.5.9/lib/reline/io/windows.rb +503 -0
  29. data/bundle/ruby/3.1.0/gems/reline-0.5.9/lib/reline/io.rb +41 -0
  30. data/bundle/ruby/3.1.0/gems/reline-0.5.9/lib/reline/key_actor/base.rb +31 -0
  31. data/bundle/ruby/3.1.0/gems/reline-0.5.9/lib/reline/key_actor/composite.rb +17 -0
  32. data/bundle/ruby/3.1.0/gems/reline-0.5.9/lib/reline/key_actor/emacs.rb +517 -0
  33. data/bundle/ruby/3.1.0/gems/reline-0.5.9/lib/reline/key_actor/vi_command.rb +518 -0
  34. data/bundle/ruby/3.1.0/gems/reline-0.5.9/lib/reline/key_actor/vi_insert.rb +517 -0
  35. data/bundle/ruby/3.1.0/gems/reline-0.5.9/lib/reline/key_actor.rb +8 -0
  36. data/bundle/ruby/3.1.0/gems/reline-0.5.9/lib/reline/key_stroke.rb +109 -0
  37. data/bundle/ruby/3.1.0/gems/reline-0.5.9/lib/reline/kill_ring.rb +125 -0
  38. data/bundle/ruby/3.1.0/gems/reline-0.5.9/lib/reline/line_editor.rb +2557 -0
  39. data/bundle/ruby/3.1.0/gems/reline-0.5.9/lib/reline/terminfo.rb +158 -0
  40. data/bundle/ruby/3.1.0/gems/reline-0.5.9/lib/reline/unicode/east_asian_width.rb +1196 -0
  41. data/bundle/ruby/3.1.0/gems/reline-0.5.9/lib/reline/unicode.rb +696 -0
  42. data/bundle/ruby/3.1.0/gems/reline-0.5.9/lib/reline/version.rb +3 -0
  43. data/bundle/ruby/3.1.0/gems/reline-0.5.9/lib/reline.rb +516 -0
  44. data/bundle/ruby/3.1.0/gems/reline-0.5.9/license_of_rb-readline +25 -0
  45. data/bundle/ruby/3.1.0/gems/rexml-3.3.6/LICENSE.txt +22 -0
  46. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/NEWS.md +306 -0
  47. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/element.rb +16 -31
  48. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/entity.rb +5 -47
  49. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/formatters/pretty.rb +1 -1
  50. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/functions.rb +1 -2
  51. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/node.rb +8 -4
  52. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/parseexception.rb +1 -0
  53. data/bundle/ruby/3.1.0/gems/rexml-3.3.6/lib/rexml/parsers/baseparser.rb +852 -0
  54. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/parsers/pullparser.rb +4 -0
  55. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/parsers/sax2parser.rb +6 -19
  56. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/parsers/streamparser.rb +8 -10
  57. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/parsers/treeparser.rb +9 -21
  58. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/rexml.rb +1 -1
  59. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/source.rb +128 -98
  60. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/text.rb +34 -14
  61. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/xpath_parser.rb +7 -3
  62. data/bundle/ruby/{3.3.0/gems/ruby2ruby-2.4.4 → 3.1.0/gems/ruby2ruby-2.5.1}/History.rdoc +22 -0
  63. data/bundle/ruby/{3.3.0/gems/ruby2ruby-2.4.4 → 3.1.0/gems/ruby2ruby-2.5.1}/lib/ruby2ruby.rb +162 -26
  64. data/bundle/ruby/{3.3.0/gems/sexp_processor-4.17.1 → 3.1.0/gems/sexp_processor-4.17.2}/History.rdoc +6 -0
  65. data/bundle/ruby/{3.3.0/gems/sexp_processor-4.17.1 → 3.1.0/gems/sexp_processor-4.17.2}/lib/sexp_matcher.rb +1 -1
  66. data/bundle/ruby/{3.3.0/gems/sexp_processor-4.17.1 → 3.1.0/gems/sexp_processor-4.17.2}/lib/sexp_processor.rb +1 -1
  67. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/CHANGES +44 -8
  68. data/bundle/ruby/3.1.0/gems/slim-5.2.1/Gemfile +43 -0
  69. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/LICENSE +1 -1
  70. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/README.jp.md +28 -41
  71. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/README.md +66 -43
  72. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/code_attributes.rb +2 -1
  73. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/command.rb +2 -8
  74. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/controls.rb +1 -0
  75. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/do_inserter.rb +4 -3
  76. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/embedded.rb +17 -17
  77. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/end_inserter.rb +3 -2
  78. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/engine.rb +3 -0
  79. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/erb_converter.rb +1 -0
  80. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/filter.rb +1 -0
  81. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/grammar.rb +1 -0
  82. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/include.rb +1 -0
  83. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/interpolation.rb +1 -0
  84. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/logic_less/context.rb +6 -7
  85. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/logic_less/filter.rb +1 -0
  86. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/logic_less.rb +1 -0
  87. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/parser.rb +26 -39
  88. data/bundle/ruby/3.1.0/gems/slim-5.2.1/lib/slim/railtie.rb +19 -0
  89. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/smart/escaper.rb +1 -1
  90. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/smart/filter.rb +3 -2
  91. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/smart/parser.rb +4 -3
  92. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/smart.rb +1 -0
  93. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/splat/builder.rb +16 -8
  94. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/splat/filter.rb +6 -4
  95. data/bundle/ruby/3.1.0/gems/slim-5.2.1/lib/slim/template.rb +6 -0
  96. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/translator.rb +4 -3
  97. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim/version.rb +2 -1
  98. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/lib/slim.rb +2 -0
  99. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.1.0/gems/slim-5.2.1}/slim.gemspec +14 -5
  100. data/bundle/ruby/3.1.0/gems/strscan-3.1.0/COPYING +56 -0
  101. data/bundle/ruby/3.1.0/gems/strscan-3.1.0/LICENSE.txt +22 -0
  102. data/bundle/ruby/3.1.0/gems/strscan-3.1.0/ext/strscan/Makefile +268 -0
  103. data/bundle/ruby/3.1.0/gems/strscan-3.1.0/ext/strscan/extconf.rb +10 -0
  104. data/bundle/ruby/3.1.0/gems/strscan-3.1.0/ext/strscan/strscan.c +1741 -0
  105. data/bundle/ruby/3.1.0/gems/strscan-3.1.0/ext/strscan/strscan.o +0 -0
  106. data/bundle/ruby/3.1.0/gems/strscan-3.1.0/ext/strscan/strscan.so +0 -0
  107. data/bundle/ruby/3.1.0/gems/strscan-3.1.0/lib/strscan.so +0 -0
  108. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/CHANGES +39 -1
  109. data/bundle/ruby/3.1.0/gems/temple-0.10.3/Gemfile +2 -0
  110. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/README.md +1 -1
  111. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/engine.rb +1 -0
  112. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/erb/engine.rb +3 -0
  113. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/erb/parser.rb +2 -1
  114. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/erb/template.rb +1 -0
  115. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/erb/trimming.rb +1 -0
  116. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/exceptions.rb +1 -0
  117. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/filter.rb +1 -0
  118. data/bundle/ruby/3.1.0/gems/temple-0.10.3/lib/temple/filters/ambles.rb +22 -0
  119. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/filters/code_merger.rb +1 -0
  120. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/filters/control_flow.rb +1 -0
  121. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/filters/dynamic_inliner.rb +2 -1
  122. data/bundle/ruby/3.1.0/gems/temple-0.10.3/lib/temple/filters/dynamic_merger.rb +69 -0
  123. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/filters/encoding.rb +1 -0
  124. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/filters/eraser.rb +1 -0
  125. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/filters/escapable.rb +1 -0
  126. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/filters/multi_flattener.rb +1 -0
  127. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/filters/remove_bom.rb +1 -0
  128. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/filters/static_analyzer.rb +1 -0
  129. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/filters/static_merger.rb +1 -0
  130. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/filters/string_splitter.rb +13 -1
  131. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/filters/validator.rb +1 -0
  132. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/generator.rb +5 -2
  133. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/generators/array.rb +1 -0
  134. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/generators/array_buffer.rb +1 -0
  135. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/generators/erb.rb +1 -0
  136. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/generators/rails_output_buffer.rb +4 -4
  137. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/generators/string_buffer.rb +2 -1
  138. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/grammar.rb +1 -0
  139. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/html/attribute_merger.rb +1 -0
  140. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/html/attribute_remover.rb +1 -0
  141. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/html/attribute_sorter.rb +1 -0
  142. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/html/dispatcher.rb +1 -0
  143. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/html/fast.rb +1 -0
  144. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/html/filter.rb +1 -0
  145. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/html/pretty.rb +1 -0
  146. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/html/safe.rb +1 -0
  147. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/map.rb +1 -0
  148. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/mixins/dispatcher.rb +1 -0
  149. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/mixins/engine_dsl.rb +1 -0
  150. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/mixins/grammar_dsl.rb +4 -2
  151. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/mixins/options.rb +1 -0
  152. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/mixins/template.rb +1 -0
  153. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/parser.rb +1 -0
  154. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/static_analyzer.rb +1 -0
  155. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/templates/rails.rb +7 -2
  156. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/templates/tilt.rb +2 -9
  157. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/templates.rb +1 -0
  158. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple/utils.rb +5 -15
  159. data/bundle/ruby/3.1.0/gems/temple-0.10.3/lib/temple/version.rb +4 -0
  160. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/lib/temple.rb +3 -0
  161. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/temple.gemspec +4 -6
  162. data/bundle/ruby/{3.3.0/gems/tilt-2.0.11 → 3.1.0/gems/tilt-2.4.0}/COPYING +1 -0
  163. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/_emacs_org.rb +2 -0
  164. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/_handlebars.rb +2 -0
  165. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/_jbuilder.rb +2 -0
  166. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/_org.rb +2 -0
  167. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/asciidoc.rb +15 -0
  168. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/babel.rb +8 -0
  169. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/builder.rb +42 -0
  170. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/cli.rb +134 -0
  171. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/coffee.rb +39 -0
  172. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/commonmarker.rb +95 -0
  173. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/creole.rb +14 -0
  174. data/bundle/ruby/{3.3.0/gems/tilt-2.0.11 → 3.1.0/gems/tilt-2.4.0}/lib/tilt/csv.rb +6 -18
  175. data/bundle/ruby/{3.3.0/gems/tilt-2.0.11 → 3.1.0/gems/tilt-2.4.0}/lib/tilt/erb.rb +23 -21
  176. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/erubi.rb +55 -0
  177. data/bundle/ruby/{3.3.0/gems/tilt-2.0.11 → 3.1.0/gems/tilt-2.4.0}/lib/tilt/erubis.rb +19 -11
  178. data/bundle/ruby/{3.3.0/gems/tilt-2.0.11 → 3.1.0/gems/tilt-2.4.0}/lib/tilt/etanni.rb +5 -4
  179. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/haml.rb +94 -0
  180. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/kramdown.rb +13 -0
  181. data/bundle/ruby/{3.3.0/gems/tilt-2.0.11 → 3.1.0/gems/tilt-2.4.0}/lib/tilt/liquid.rb +10 -14
  182. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/livescript.rb +11 -0
  183. data/bundle/ruby/{3.3.0/gems/tilt-2.0.11 → 3.1.0/gems/tilt-2.4.0}/lib/tilt/mapping.rb +228 -109
  184. data/bundle/ruby/{3.3.0/gems/tilt-2.0.11 → 3.1.0/gems/tilt-2.4.0}/lib/tilt/markaby.rb +5 -7
  185. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/maruku.rb +10 -0
  186. data/bundle/ruby/{3.3.0/gems/tilt-2.0.11 → 3.1.0/gems/tilt-2.4.0}/lib/tilt/nokogiri.rb +11 -10
  187. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/pandoc.rb +39 -0
  188. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/pipeline.rb +19 -0
  189. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/plain.rb +5 -0
  190. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/prawn.rb +28 -0
  191. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/radius.rb +41 -0
  192. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/rdiscount.rb +23 -0
  193. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/rdoc.rb +19 -0
  194. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/redcarpet.rb +31 -0
  195. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/redcloth.rb +13 -0
  196. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/rst-pandoc.rb +10 -0
  197. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/sass.rb +78 -0
  198. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/slim.rb +5 -0
  199. data/bundle/ruby/{3.3.0/gems/tilt-2.0.11 → 3.1.0/gems/tilt-2.4.0}/lib/tilt/string.rb +9 -3
  200. data/bundle/ruby/{3.3.0/gems/tilt-2.0.11 → 3.1.0/gems/tilt-2.4.0}/lib/tilt/template.rb +229 -82
  201. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/typescript.rb +19 -0
  202. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/wikicloth.rb +12 -0
  203. data/bundle/ruby/{3.3.0/gems/tilt-2.0.11 → 3.1.0/gems/tilt-2.4.0}/lib/tilt/yajl.rb +5 -11
  204. data/bundle/ruby/{3.3.0/gems/tilt-2.0.11 → 3.1.0/gems/tilt-2.4.0}/lib/tilt.rb +60 -40
  205. data/lib/brakeman/app_tree.rb +20 -5
  206. data/lib/brakeman/checks/check_session_settings.rb +1 -1
  207. data/lib/brakeman/checks/check_unscoped_find.rb +1 -1
  208. data/lib/brakeman/file_parser.rb +34 -2
  209. data/lib/brakeman/options.rb +34 -4
  210. data/lib/brakeman/parsers/erubis_patch.rb +11 -0
  211. data/lib/brakeman/parsers/rails2_erubis.rb +3 -0
  212. data/lib/brakeman/parsers/rails2_xss_plugin_erubis.rb +4 -0
  213. data/lib/brakeman/parsers/rails3_erubis.rb +5 -1
  214. data/lib/brakeman/parsers/slim_embedded.rb +2 -0
  215. data/lib/brakeman/processors/alias_processor.rb +34 -13
  216. data/lib/brakeman/report/report_markdown.rb +1 -1
  217. data/lib/brakeman/report/report_table.rb +2 -2
  218. data/lib/brakeman/report/report_tabs.rb +0 -1
  219. data/lib/brakeman/report/report_text.rb +8 -1
  220. data/lib/brakeman/scanner.rb +2 -2
  221. data/lib/brakeman/tracker/config.rb +9 -1
  222. data/lib/brakeman/util.rb +1 -3
  223. data/lib/brakeman/version.rb +1 -1
  224. data/lib/brakeman/warning.rb +1 -1
  225. data/lib/brakeman.rb +2 -0
  226. data/lib/ruby_parser/bm_sexp.rb +5 -1
  227. metadata +422 -372
  228. data/bundle/ruby/3.3.0/gems/parallel-1.24.0/lib/parallel/version.rb +0 -4
  229. data/bundle/ruby/3.3.0/gems/rexml-3.2.6/lib/rexml/parsers/baseparser.rb +0 -694
  230. data/bundle/ruby/3.3.0/gems/slim-4.1.0/Gemfile +0 -70
  231. data/bundle/ruby/3.3.0/gems/slim-4.1.0/lib/slim/template.rb +0 -19
  232. data/bundle/ruby/3.3.0/gems/temple-0.8.2/Gemfile +0 -3
  233. data/bundle/ruby/3.3.0/gems/temple-0.8.2/lib/temple/version.rb +0 -3
  234. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/asciidoc.rb +0 -27
  235. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/babel.rb +0 -16
  236. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/bluecloth.rb +0 -24
  237. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/builder.rb +0 -37
  238. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/coffee.rb +0 -58
  239. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/commonmarker.rb +0 -88
  240. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/creole.rb +0 -25
  241. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/dummy.rb +0 -3
  242. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/erubi.rb +0 -32
  243. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/haml.rb +0 -86
  244. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/kramdown.rb +0 -25
  245. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/less.rb +0 -30
  246. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/livescript.rb +0 -23
  247. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/maruku.rb +0 -22
  248. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/pandoc.rb +0 -57
  249. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/plain.rb +0 -16
  250. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/prawn.rb +0 -43
  251. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/radius.rb +0 -48
  252. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/rdiscount.rb +0 -39
  253. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/rdoc.rb +0 -40
  254. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/redcarpet.rb +0 -86
  255. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/redcloth.rb +0 -23
  256. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/rst-pandoc.rb +0 -23
  257. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/sass.rb +0 -78
  258. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/sigil.rb +0 -34
  259. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/typescript.rb +0 -26
  260. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/wikicloth.rb +0 -22
  261. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/CHANGES.txt +0 -0
  262. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/MIT-LICENSE +0 -0
  263. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/README.txt +0 -0
  264. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/contrib/erubis +0 -0
  265. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/contrib/erubis-run.rb +0 -0
  266. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/contrib/inline-require +0 -0
  267. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/context.rb +0 -0
  268. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/converter.rb +0 -0
  269. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/engine/ec.rb +0 -0
  270. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/engine/ecpp.rb +0 -0
  271. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/engine/ejava.rb +0 -0
  272. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/engine/ejavascript.rb +0 -0
  273. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/engine/enhanced.rb +0 -0
  274. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb +0 -0
  275. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/engine/ephp.rb +0 -0
  276. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/engine/eruby.rb +0 -0
  277. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/engine/escheme.rb +0 -0
  278. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/engine/optimized.rb +0 -0
  279. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/engine.rb +0 -0
  280. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/enhancer.rb +0 -0
  281. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/error.rb +0 -0
  282. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/evaluator.rb +0 -0
  283. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/generator.rb +0 -0
  284. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/helper.rb +0 -0
  285. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/helpers/rails_form_helper.rb +0 -0
  286. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/helpers/rails_helper.rb +0 -0
  287. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/local-setting.rb +0 -0
  288. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/main.rb +0 -0
  289. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/preprocessing.rb +0 -0
  290. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/tiny.rb +0 -0
  291. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis/util.rb +0 -0
  292. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/lib/erubis.rb +0 -0
  293. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/erubis-2.7.0/setup.rb +0 -0
  294. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/CHANGELOG.md +0 -0
  295. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/FAQ.md +0 -0
  296. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/Gemfile +0 -0
  297. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/MIT-LICENSE +0 -0
  298. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/README.md +0 -0
  299. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/REFERENCE.md +0 -0
  300. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/TODO +0 -0
  301. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/haml.gemspec +0 -0
  302. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/attribute_builder.rb +0 -0
  303. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/attribute_compiler.rb +0 -0
  304. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/attribute_parser.rb +0 -0
  305. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/buffer.rb +0 -0
  306. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/compiler.rb +0 -0
  307. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/engine.rb +0 -0
  308. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/error.rb +0 -0
  309. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/escapable.rb +0 -0
  310. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/exec.rb +0 -0
  311. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/filters.rb +0 -0
  312. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/generator.rb +0 -0
  313. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/helpers/action_view_extensions.rb +0 -0
  314. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/helpers/action_view_mods.rb +0 -0
  315. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/helpers/action_view_xss_mods.rb +0 -0
  316. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/helpers/safe_erubi_template.rb +0 -0
  317. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/helpers/safe_erubis_template.rb +0 -0
  318. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/helpers/xss_mods.rb +0 -0
  319. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/helpers.rb +0 -0
  320. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/options.rb +0 -0
  321. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/parser.rb +0 -0
  322. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/plugin.rb +0 -0
  323. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/railtie.rb +0 -0
  324. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/sass_rails_filter.rb +0 -0
  325. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/template/options.rb +0 -0
  326. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/template.rb +0 -0
  327. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/temple_engine.rb +0 -0
  328. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/temple_line_counter.rb +0 -0
  329. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/util.rb +0 -0
  330. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml/version.rb +0 -0
  331. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/lib/haml.rb +0 -0
  332. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/yard/default/fulldoc/html/css/common.sass +0 -0
  333. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/haml-5.2.2/yard/default/layout/html/footer.erb +0 -0
  334. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/AUTHORS +0 -0
  335. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/COPYING +0 -0
  336. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/Gemfile +0 -0
  337. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/LICENSE +0 -0
  338. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/README.md +0 -0
  339. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/TODO +0 -0
  340. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/lib/highline/builtin_styles.rb +0 -0
  341. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/lib/highline/color_scheme.rb +0 -0
  342. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/lib/highline/compatibility.rb +0 -0
  343. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/lib/highline/custom_errors.rb +0 -0
  344. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/lib/highline/import.rb +0 -0
  345. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/lib/highline/io_console_compatible.rb +0 -0
  346. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/lib/highline/list.rb +0 -0
  347. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/lib/highline/list_renderer.rb +0 -0
  348. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/lib/highline/menu/item.rb +0 -0
  349. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/lib/highline/menu.rb +0 -0
  350. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/lib/highline/paginator.rb +0 -0
  351. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/lib/highline/question/answer_converter.rb +0 -0
  352. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/lib/highline/question.rb +0 -0
  353. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/lib/highline/question_asker.rb +0 -0
  354. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/lib/highline/simulate.rb +0 -0
  355. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/lib/highline/statement.rb +0 -0
  356. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/lib/highline/string.rb +0 -0
  357. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/lib/highline/string_extensions.rb +0 -0
  358. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/lib/highline/style.rb +0 -0
  359. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/lib/highline/template_renderer.rb +0 -0
  360. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/lib/highline/terminal/io_console.rb +0 -0
  361. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/lib/highline/terminal/ncurses.rb +0 -0
  362. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/lib/highline/terminal/unix_stty.rb +0 -0
  363. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/lib/highline/wrapper.rb +0 -0
  364. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.1.0/gems/highline-3.1.0}/lib/highline.rb +0 -0
  365. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/io-console-0.7.2}/LICENSE.txt +0 -0
  366. /data/bundle/ruby/{3.3.0/gems/parallel-1.24.0 → 3.1.0/gems/parallel-1.26.3}/MIT-LICENSE.txt +0 -0
  367. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/README.md +0 -0
  368. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/attlistdecl.rb +0 -0
  369. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/attribute.rb +0 -0
  370. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/cdata.rb +0 -0
  371. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/child.rb +0 -0
  372. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/comment.rb +0 -0
  373. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/doctype.rb +0 -0
  374. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/document.rb +0 -0
  375. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/dtd/attlistdecl.rb +0 -0
  376. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/dtd/dtd.rb +0 -0
  377. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/dtd/elementdecl.rb +0 -0
  378. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/dtd/entitydecl.rb +0 -0
  379. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/dtd/notationdecl.rb +0 -0
  380. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/encoding.rb +0 -0
  381. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/formatters/default.rb +0 -0
  382. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/formatters/transitive.rb +0 -0
  383. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/instruction.rb +0 -0
  384. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/light/node.rb +0 -0
  385. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/namespace.rb +0 -0
  386. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/output.rb +0 -0
  387. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/parent.rb +0 -0
  388. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/parsers/lightparser.rb +0 -0
  389. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/parsers/ultralightparser.rb +0 -0
  390. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/parsers/xpathparser.rb +0 -0
  391. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/quickpath.rb +0 -0
  392. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/sax2listener.rb +0 -0
  393. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/security.rb +0 -0
  394. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/streamlistener.rb +0 -0
  395. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/undefinednamespaceexception.rb +0 -0
  396. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/validation/relaxng.rb +0 -0
  397. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/validation/validation.rb +0 -0
  398. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/validation/validationexception.rb +0 -0
  399. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/xmldecl.rb +0 -0
  400. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/xmltokens.rb +0 -0
  401. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml/xpath.rb +0 -0
  402. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.1.0/gems/rexml-3.3.6}/lib/rexml.rb +0 -0
  403. /data/bundle/ruby/{3.3.0/gems/ruby2ruby-2.4.4 → 3.1.0/gems/ruby2ruby-2.5.1}/Manifest.txt +0 -0
  404. /data/bundle/ruby/{3.3.0/gems/ruby2ruby-2.4.4 → 3.1.0/gems/ruby2ruby-2.5.1}/README.rdoc +0 -0
  405. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/History.rdoc +0 -0
  406. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/Manifest.txt +0 -0
  407. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/README.rdoc +0 -0
  408. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/compare/normalize.rb +0 -0
  409. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/debugging.md +0 -0
  410. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/gauntlet.md +0 -0
  411. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/rp_extensions.rb +0 -0
  412. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/rp_stringscanner.rb +0 -0
  413. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby20_parser.rb +0 -0
  414. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby20_parser.y +0 -0
  415. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby21_parser.rb +0 -0
  416. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby21_parser.y +0 -0
  417. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby22_parser.rb +0 -0
  418. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby22_parser.y +0 -0
  419. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby23_parser.rb +0 -0
  420. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby23_parser.y +0 -0
  421. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby24_parser.rb +0 -0
  422. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby24_parser.y +0 -0
  423. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby25_parser.rb +0 -0
  424. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby25_parser.y +0 -0
  425. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby26_parser.rb +0 -0
  426. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby26_parser.y +0 -0
  427. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby27_parser.rb +0 -0
  428. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby27_parser.y +0 -0
  429. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby30_parser.rb +0 -0
  430. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby30_parser.y +0 -0
  431. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby31_parser.rb +0 -0
  432. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby31_parser.y +0 -0
  433. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby32_parser.rb +0 -0
  434. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby32_parser.y +0 -0
  435. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby3_parser.yy +0 -0
  436. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby_lexer.rb +0 -0
  437. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby_lexer.rex +0 -0
  438. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby_lexer.rex.rb +0 -0
  439. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby_lexer_strings.rb +0 -0
  440. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby_parser.rb +0 -0
  441. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby_parser.yy +0 -0
  442. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/lib/ruby_parser_extras.rb +0 -0
  443. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/tools/munge.rb +0 -0
  444. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/ruby_parser-3.20.3/tools/ripper.rb +0 -0
  445. /data/bundle/ruby/{3.3.0/gems/sexp_processor-4.17.1 → 3.1.0/gems/sexp_processor-4.17.2}/Manifest.txt +0 -0
  446. /data/bundle/ruby/{3.3.0/gems/sexp_processor-4.17.1 → 3.1.0/gems/sexp_processor-4.17.2}/README.rdoc +0 -0
  447. /data/bundle/ruby/{3.3.0/gems/sexp_processor-4.17.1 → 3.1.0/gems/sexp_processor-4.17.2}/lib/composite_sexp_processor.rb +0 -0
  448. /data/bundle/ruby/{3.3.0/gems/sexp_processor-4.17.1 → 3.1.0/gems/sexp_processor-4.17.2}/lib/pt_testcase.rb +0 -0
  449. /data/bundle/ruby/{3.3.0/gems/sexp_processor-4.17.1 → 3.1.0/gems/sexp_processor-4.17.2}/lib/sexp.rb +0 -0
  450. /data/bundle/ruby/{3.3.0/gems/sexp_processor-4.17.1 → 3.1.0/gems/sexp_processor-4.17.2}/lib/strict_sexp.rb +0 -0
  451. /data/bundle/ruby/{3.3.0/gems/sexp_processor-4.17.1 → 3.1.0/gems/sexp_processor-4.17.2}/lib/unique.rb +0 -0
  452. /data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/EXPRESSIONS.md +0 -0
  453. /data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.1.0/gems/temple-0.10.3}/LICENSE +0 -0
  454. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/terminal-table-1.8.0/Gemfile +0 -0
  455. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/terminal-table-1.8.0/History.rdoc +0 -0
  456. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/terminal-table-1.8.0/LICENSE.txt +0 -0
  457. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/terminal-table-1.8.0/Manifest +0 -0
  458. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/terminal-table-1.8.0/README.rdoc +0 -0
  459. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/terminal-table-1.8.0/Todo.rdoc +0 -0
  460. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/terminal-table-1.8.0/lib/terminal-table/cell.rb +0 -0
  461. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/terminal-table-1.8.0/lib/terminal-table/import.rb +0 -0
  462. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/terminal-table-1.8.0/lib/terminal-table/row.rb +0 -0
  463. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/terminal-table-1.8.0/lib/terminal-table/separator.rb +0 -0
  464. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/terminal-table-1.8.0/lib/terminal-table/style.rb +0 -0
  465. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/terminal-table-1.8.0/lib/terminal-table/table.rb +0 -0
  466. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/terminal-table-1.8.0/lib/terminal-table/table_helper.rb +0 -0
  467. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/terminal-table-1.8.0/lib/terminal-table/version.rb +0 -0
  468. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/terminal-table-1.8.0/lib/terminal-table.rb +0 -0
  469. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/terminal-table-1.8.0/terminal-table.gemspec +0 -0
  470. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/unicode-display_width-1.8.0/CHANGELOG.md +0 -0
  471. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/unicode-display_width-1.8.0/MIT-LICENSE.txt +0 -0
  472. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/unicode-display_width-1.8.0/README.md +0 -0
  473. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/unicode-display_width-1.8.0/data/display_width.marshal.gz +0 -0
  474. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/unicode-display_width-1.8.0/lib/unicode/display_width/constants.rb +0 -0
  475. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/unicode-display_width-1.8.0/lib/unicode/display_width/index.rb +0 -0
  476. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/unicode-display_width-1.8.0/lib/unicode/display_width/no_string_ext.rb +0 -0
  477. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/unicode-display_width-1.8.0/lib/unicode/display_width/string_ext.rb +0 -0
  478. /data/bundle/ruby/{3.3.0 → 3.1.0}/gems/unicode-display_width-1.8.0/lib/unicode/display_width.rb +0 -0
@@ -0,0 +1,382 @@
1
+ class Reline::Config
2
+ attr_reader :test_mode
3
+
4
+ KEYSEQ_PATTERN = /\\(?:C|Control)-[A-Za-z_]|\\(?:M|Meta)-[0-9A-Za-z_]|\\(?:C|Control)-(?:M|Meta)-[A-Za-z_]|\\(?:M|Meta)-(?:C|Control)-[A-Za-z_]|\\e|\\[\\\"\'abdfnrtv]|\\\d{1,3}|\\x\h{1,2}|./
5
+
6
+ class InvalidInputrc < RuntimeError
7
+ attr_accessor :file, :lineno
8
+ end
9
+
10
+ VARIABLE_NAMES = %w{
11
+ completion-ignore-case
12
+ convert-meta
13
+ disable-completion
14
+ history-size
15
+ keyseq-timeout
16
+ show-all-if-ambiguous
17
+ show-mode-in-prompt
18
+ vi-cmd-mode-string
19
+ vi-ins-mode-string
20
+ emacs-mode-string
21
+ enable-bracketed-paste
22
+ isearch-terminators
23
+ }
24
+ VARIABLE_NAME_SYMBOLS = VARIABLE_NAMES.map { |v| :"#{v.tr(?-, ?_)}" }
25
+ VARIABLE_NAME_SYMBOLS.each do |v|
26
+ attr_accessor v
27
+ end
28
+
29
+ attr_accessor :autocompletion
30
+
31
+ def initialize
32
+ @additional_key_bindings = { # from inputrc
33
+ emacs: Reline::KeyActor::Base.new,
34
+ vi_insert: Reline::KeyActor::Base.new,
35
+ vi_command: Reline::KeyActor::Base.new
36
+ }
37
+ @oneshot_key_bindings = Reline::KeyActor::Base.new
38
+ @editing_mode_label = :emacs
39
+ @keymap_label = :emacs
40
+ @keymap_prefix = []
41
+ @default_key_bindings = {
42
+ emacs: Reline::KeyActor::Base.new(Reline::KeyActor::EMACS_MAPPING),
43
+ vi_insert: Reline::KeyActor::Base.new(Reline::KeyActor::VI_INSERT_MAPPING),
44
+ vi_command: Reline::KeyActor::Base.new(Reline::KeyActor::VI_COMMAND_MAPPING)
45
+ }
46
+ @vi_cmd_mode_string = '(cmd)'
47
+ @vi_ins_mode_string = '(ins)'
48
+ @emacs_mode_string = '@'
49
+ # https://tiswww.case.edu/php/chet/readline/readline.html#IDX25
50
+ @history_size = -1 # unlimited
51
+ @keyseq_timeout = 500
52
+ @test_mode = false
53
+ @autocompletion = false
54
+ @convert_meta = true if seven_bit_encoding?(Reline::IOGate.encoding)
55
+ @loaded = false
56
+ @enable_bracketed_paste = true
57
+ end
58
+
59
+ def reset
60
+ if editing_mode_is?(:vi_command)
61
+ @editing_mode_label = :vi_insert
62
+ end
63
+ @oneshot_key_bindings.clear
64
+ end
65
+
66
+ def editing_mode
67
+ @default_key_bindings[@editing_mode_label]
68
+ end
69
+
70
+ def editing_mode=(val)
71
+ @editing_mode_label = val
72
+ end
73
+
74
+ def editing_mode_is?(*val)
75
+ val.any?(@editing_mode_label)
76
+ end
77
+
78
+ def keymap
79
+ @default_key_bindings[@keymap_label]
80
+ end
81
+
82
+ def loaded?
83
+ @loaded
84
+ end
85
+
86
+ def inputrc_path
87
+ case ENV['INPUTRC']
88
+ when nil, ''
89
+ else
90
+ return File.expand_path(ENV['INPUTRC'])
91
+ end
92
+
93
+ # In the XDG Specification, if ~/.config/readline/inputrc exists, then
94
+ # ~/.inputrc should not be read, but for compatibility with GNU Readline,
95
+ # if ~/.inputrc exists, then it is given priority.
96
+ home_rc_path = File.expand_path('~/.inputrc')
97
+ return home_rc_path if File.exist?(home_rc_path)
98
+
99
+ case path = ENV['XDG_CONFIG_HOME']
100
+ when nil, ''
101
+ else
102
+ path = File.join(path, 'readline/inputrc')
103
+ return path if File.exist?(path) and path == File.expand_path(path)
104
+ end
105
+
106
+ path = File.expand_path('~/.config/readline/inputrc')
107
+ return path if File.exist?(path)
108
+
109
+ return home_rc_path
110
+ end
111
+
112
+ private def default_inputrc_path
113
+ @default_inputrc_path ||= inputrc_path
114
+ end
115
+
116
+ def read(file = nil)
117
+ @loaded = true
118
+ file ||= default_inputrc_path
119
+ begin
120
+ if file.respond_to?(:readlines)
121
+ lines = file.readlines
122
+ else
123
+ lines = File.readlines(file)
124
+ end
125
+ rescue Errno::ENOENT
126
+ return nil
127
+ end
128
+
129
+ read_lines(lines, file)
130
+ self
131
+ rescue InvalidInputrc => e
132
+ warn e.message
133
+ nil
134
+ end
135
+
136
+ def key_bindings
137
+ # The key bindings for each editing mode will be overwritten by the user-defined ones.
138
+ Reline::KeyActor::Composite.new([@oneshot_key_bindings, @additional_key_bindings[@editing_mode_label], @default_key_bindings[@editing_mode_label]])
139
+ end
140
+
141
+ def add_oneshot_key_binding(keystroke, target)
142
+ # IRB sets invalid keystroke [Reline::Key]. We should ignore it.
143
+ return unless keystroke.all? { |c| c.is_a?(Integer) }
144
+
145
+ @oneshot_key_bindings.add(keystroke, target)
146
+ end
147
+
148
+ def reset_oneshot_key_bindings
149
+ @oneshot_key_bindings.clear
150
+ end
151
+
152
+ def add_default_key_binding_by_keymap(keymap, keystroke, target)
153
+ @default_key_bindings[keymap].add(keystroke, target)
154
+ end
155
+
156
+ def add_default_key_binding(keystroke, target)
157
+ add_default_key_binding_by_keymap(@keymap_label, keystroke, target)
158
+ end
159
+
160
+ def read_lines(lines, file = nil)
161
+ if not lines.empty? and lines.first.encoding != Reline.encoding_system_needs
162
+ begin
163
+ lines = lines.map do |l|
164
+ l.encode(Reline.encoding_system_needs)
165
+ rescue Encoding::UndefinedConversionError
166
+ mes = "The inputrc encoded in #{lines.first.encoding.name} can't be converted to the locale #{Reline.encoding_system_needs.name}."
167
+ raise Reline::ConfigEncodingConversionError.new(mes)
168
+ end
169
+ end
170
+ end
171
+ if_stack = []
172
+
173
+ lines.each_with_index do |line, no|
174
+ next if line.match(/\A\s*#/)
175
+
176
+ no += 1
177
+
178
+ line = line.chomp.lstrip
179
+ if line.start_with?('$')
180
+ handle_directive(line[1..-1], file, no, if_stack)
181
+ next
182
+ end
183
+
184
+ next if if_stack.any? { |_no, skip| skip }
185
+
186
+ case line
187
+ when /^set +([^ ]+) +(.+)/i
188
+ # value ignores everything after a space, raw_value does not.
189
+ var, value, raw_value = $1.downcase, $2.partition(' ').first, $2
190
+ bind_variable(var, value, raw_value)
191
+ next
192
+ when /\s*("#{KEYSEQ_PATTERN}+")\s*:\s*(.*)\s*$/o
193
+ key, func_name = $1, $2
194
+ func_name = func_name.split.first
195
+ keystroke, func = bind_key(key, func_name)
196
+ next unless keystroke
197
+ @additional_key_bindings[@keymap_label].add(@keymap_prefix + keystroke, func)
198
+ end
199
+ end
200
+ unless if_stack.empty?
201
+ raise InvalidInputrc, "#{file}:#{if_stack.last[0]}: unclosed if"
202
+ end
203
+ end
204
+
205
+ def handle_directive(directive, file, no, if_stack)
206
+ directive, args = directive.split(' ')
207
+ case directive
208
+ when 'if'
209
+ condition = false
210
+ case args
211
+ when /^mode=(vi|emacs)$/i
212
+ mode = $1.downcase
213
+ # NOTE: mode=vi means vi-insert mode
214
+ mode = 'vi_insert' if mode == 'vi'
215
+ if @editing_mode_label == mode.to_sym
216
+ condition = true
217
+ end
218
+ when 'term'
219
+ when 'version'
220
+ else # application name
221
+ condition = true if args == 'Ruby'
222
+ condition = true if args == 'Reline'
223
+ end
224
+ if_stack << [no, !condition]
225
+ when 'else'
226
+ if if_stack.empty?
227
+ raise InvalidInputrc, "#{file}:#{no}: unmatched else"
228
+ end
229
+ if_stack.last[1] = !if_stack.last[1]
230
+ when 'endif'
231
+ if if_stack.empty?
232
+ raise InvalidInputrc, "#{file}:#{no}: unmatched endif"
233
+ end
234
+ if_stack.pop
235
+ when 'include'
236
+ read(File.expand_path(args))
237
+ end
238
+ end
239
+
240
+ def bind_variable(name, value, raw_value)
241
+ case name
242
+ when 'history-size'
243
+ begin
244
+ @history_size = Integer(value)
245
+ rescue ArgumentError
246
+ @history_size = 500
247
+ end
248
+ when 'bell-style'
249
+ @bell_style =
250
+ case value
251
+ when 'none', 'off'
252
+ :none
253
+ when 'audible', 'on'
254
+ :audible
255
+ when 'visible'
256
+ :visible
257
+ else
258
+ :audible
259
+ end
260
+ when 'comment-begin'
261
+ @comment_begin = value.dup
262
+ when 'completion-query-items'
263
+ @completion_query_items = value.to_i
264
+ when 'isearch-terminators'
265
+ @isearch_terminators = retrieve_string(raw_value)
266
+ when 'editing-mode'
267
+ case value
268
+ when 'emacs'
269
+ @editing_mode_label = :emacs
270
+ @keymap_label = :emacs
271
+ @keymap_prefix = []
272
+ when 'vi'
273
+ @editing_mode_label = :vi_insert
274
+ @keymap_label = :vi_insert
275
+ @keymap_prefix = []
276
+ end
277
+ when 'keymap'
278
+ case value
279
+ when 'emacs', 'emacs-standard'
280
+ @keymap_label = :emacs
281
+ @keymap_prefix = []
282
+ when 'emacs-ctlx'
283
+ @keymap_label = :emacs
284
+ @keymap_prefix = [?\C-x.ord]
285
+ when 'emacs-meta'
286
+ @keymap_label = :emacs
287
+ @keymap_prefix = [?\e.ord]
288
+ when 'vi', 'vi-move', 'vi-command'
289
+ @keymap_label = :vi_command
290
+ @keymap_prefix = []
291
+ when 'vi-insert'
292
+ @keymap_label = :vi_insert
293
+ @keymap_prefix = []
294
+ end
295
+ when 'keyseq-timeout'
296
+ @keyseq_timeout = value.to_i
297
+ when 'show-mode-in-prompt'
298
+ case value
299
+ when 'off'
300
+ @show_mode_in_prompt = false
301
+ when 'on'
302
+ @show_mode_in_prompt = true
303
+ else
304
+ @show_mode_in_prompt = false
305
+ end
306
+ when 'vi-cmd-mode-string'
307
+ @vi_cmd_mode_string = retrieve_string(raw_value)
308
+ when 'vi-ins-mode-string'
309
+ @vi_ins_mode_string = retrieve_string(raw_value)
310
+ when 'emacs-mode-string'
311
+ @emacs_mode_string = retrieve_string(raw_value)
312
+ when *VARIABLE_NAMES then
313
+ variable_name = :"@#{name.tr(?-, ?_)}"
314
+ instance_variable_set(variable_name, value.nil? || value == '1' || value == 'on')
315
+ end
316
+ end
317
+
318
+ def retrieve_string(str)
319
+ str = $1 if str =~ /\A"(.*)"\z/
320
+ parse_keyseq(str).map { |c| c.chr(Reline.encoding_system_needs) }.join
321
+ end
322
+
323
+ def bind_key(key, func_name)
324
+ if key =~ /\A"(.*)"\z/
325
+ keyseq = parse_keyseq($1)
326
+ else
327
+ keyseq = nil
328
+ end
329
+ if func_name =~ /"(.*)"/
330
+ func = parse_keyseq($1)
331
+ else
332
+ func = func_name.tr(?-, ?_).to_sym # It must be macro.
333
+ end
334
+ [keyseq, func]
335
+ end
336
+
337
+ def key_notation_to_code(notation)
338
+ case notation
339
+ when /\\(?:C|Control)-([A-Za-z_])/
340
+ (1 + $1.downcase.ord - ?a.ord)
341
+ when /\\(?:M|Meta)-([0-9A-Za-z_])/
342
+ modified_key = $1
343
+ case $1
344
+ when /[0-9]/
345
+ ?\M-0.bytes.first + (modified_key.ord - ?0.ord)
346
+ when /[A-Z]/
347
+ ?\M-A.bytes.first + (modified_key.ord - ?A.ord)
348
+ when /[a-z]/
349
+ ?\M-a.bytes.first + (modified_key.ord - ?a.ord)
350
+ end
351
+ when /\\(?:C|Control)-(?:M|Meta)-[A-Za-z_]/, /\\(?:M|Meta)-(?:C|Control)-[A-Za-z_]/
352
+ # 129 M-^A
353
+ when /\\(\d{1,3})/ then $1.to_i(8) # octal
354
+ when /\\x(\h{1,2})/ then $1.to_i(16) # hexadecimal
355
+ when "\\e" then ?\e.ord
356
+ when "\\\\" then ?\\.ord
357
+ when "\\\"" then ?".ord
358
+ when "\\'" then ?'.ord
359
+ when "\\a" then ?\a.ord
360
+ when "\\b" then ?\b.ord
361
+ when "\\d" then ?\d.ord
362
+ when "\\f" then ?\f.ord
363
+ when "\\n" then ?\n.ord
364
+ when "\\r" then ?\r.ord
365
+ when "\\t" then ?\t.ord
366
+ when "\\v" then ?\v.ord
367
+ else notation.ord
368
+ end
369
+ end
370
+
371
+ def parse_keyseq(str)
372
+ ret = []
373
+ str.scan(KEYSEQ_PATTERN) do
374
+ ret << key_notation_to_code($&)
375
+ end
376
+ ret
377
+ end
378
+
379
+ private def seven_bit_encoding?(encoding)
380
+ encoding == Encoding::US_ASCII
381
+ end
382
+ end
@@ -0,0 +1,199 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Reline::Face
4
+ SGR_PARAMETERS = {
5
+ foreground: {
6
+ black: 30,
7
+ red: 31,
8
+ green: 32,
9
+ yellow: 33,
10
+ blue: 34,
11
+ magenta: 35,
12
+ cyan: 36,
13
+ white: 37,
14
+ bright_black: 90,
15
+ gray: 90,
16
+ bright_red: 91,
17
+ bright_green: 92,
18
+ bright_yellow: 93,
19
+ bright_blue: 94,
20
+ bright_magenta: 95,
21
+ bright_cyan: 96,
22
+ bright_white: 97
23
+ },
24
+ background: {
25
+ black: 40,
26
+ red: 41,
27
+ green: 42,
28
+ yellow: 43,
29
+ blue: 44,
30
+ magenta: 45,
31
+ cyan: 46,
32
+ white: 47,
33
+ bright_black: 100,
34
+ gray: 100,
35
+ bright_red: 101,
36
+ bright_green: 102,
37
+ bright_yellow: 103,
38
+ bright_blue: 104,
39
+ bright_magenta: 105,
40
+ bright_cyan: 106,
41
+ bright_white: 107,
42
+ },
43
+ style: {
44
+ reset: 0,
45
+ bold: 1,
46
+ faint: 2,
47
+ italicized: 3,
48
+ underlined: 4,
49
+ slowly_blinking: 5,
50
+ blinking: 5,
51
+ rapidly_blinking: 6,
52
+ negative: 7,
53
+ concealed: 8,
54
+ crossed_out: 9
55
+ }
56
+ }.freeze
57
+
58
+ class Config
59
+ ESSENTIAL_DEFINE_NAMES = %i(default enhanced scrollbar).freeze
60
+ RESET_SGR = "\e[0m".freeze
61
+
62
+ def initialize(name, &block)
63
+ @definition = {}
64
+ block.call(self)
65
+ ESSENTIAL_DEFINE_NAMES.each do |name|
66
+ @definition[name] ||= { style: :reset, escape_sequence: RESET_SGR }
67
+ end
68
+ end
69
+
70
+ attr_reader :definition
71
+
72
+ def define(name, **values)
73
+ values[:escape_sequence] = format_to_sgr(values.to_a).freeze
74
+ @definition[name] = values
75
+ end
76
+
77
+ def reconfigure
78
+ @definition.each_value do |values|
79
+ values.delete(:escape_sequence)
80
+ values[:escape_sequence] = format_to_sgr(values.to_a).freeze
81
+ end
82
+ end
83
+
84
+ def [](name)
85
+ @definition.dig(name, :escape_sequence) or raise ArgumentError, "unknown face: #{name}"
86
+ end
87
+
88
+ private
89
+
90
+ def sgr_rgb(key, value)
91
+ return nil unless rgb_expression?(value)
92
+ if Reline::Face.truecolor?
93
+ sgr_rgb_truecolor(key, value)
94
+ else
95
+ sgr_rgb_256color(key, value)
96
+ end
97
+ end
98
+
99
+ def sgr_rgb_truecolor(key, value)
100
+ case key
101
+ when :foreground
102
+ "38;2;"
103
+ when :background
104
+ "48;2;"
105
+ end + value[1, 6].scan(/../).map(&:hex).join(";")
106
+ end
107
+
108
+ def sgr_rgb_256color(key, value)
109
+ # 256 colors are
110
+ # 0..15: standard colors, hight intensity colors
111
+ # 16..232: 216 colors (R, G, B each 6 steps)
112
+ # 233..255: grayscale colors (24 steps)
113
+ # This methods converts rgb_expression to 216 colors
114
+ rgb = value[1, 6].scan(/../).map(&:hex)
115
+ # Color steps are [0, 95, 135, 175, 215, 255]
116
+ r, g, b = rgb.map { |v| v <= 95 ? v / 48 : (v - 35) / 40 }
117
+ color = (16 + 36 * r + 6 * g + b)
118
+ case key
119
+ when :foreground
120
+ "38;5;#{color}"
121
+ when :background
122
+ "48;5;#{color}"
123
+ end
124
+ end
125
+
126
+ def format_to_sgr(ordered_values)
127
+ sgr = "\e[" + ordered_values.map do |key_value|
128
+ key, value = key_value
129
+ case key
130
+ when :foreground, :background
131
+ case value
132
+ when Symbol
133
+ SGR_PARAMETERS[key][value]
134
+ when String
135
+ sgr_rgb(key, value)
136
+ end
137
+ when :style
138
+ [ value ].flatten.map do |style_name|
139
+ SGR_PARAMETERS[:style][style_name]
140
+ end.then do |sgr_parameters|
141
+ sgr_parameters.include?(nil) ? nil : sgr_parameters
142
+ end
143
+ end.then do |rendition_expression|
144
+ unless rendition_expression
145
+ raise ArgumentError, "invalid SGR parameter: #{value.inspect}"
146
+ end
147
+ rendition_expression
148
+ end
149
+ end.join(';') + "m"
150
+ sgr == RESET_SGR ? RESET_SGR : RESET_SGR + sgr
151
+ end
152
+
153
+ def rgb_expression?(color)
154
+ color.respond_to?(:match?) and color.match?(/\A#[0-9a-fA-F]{6}\z/)
155
+ end
156
+ end
157
+
158
+ private_constant :SGR_PARAMETERS, :Config
159
+
160
+ def self.truecolor?
161
+ @force_truecolor || %w[truecolor 24bit].include?(ENV['COLORTERM'])
162
+ end
163
+
164
+ def self.force_truecolor
165
+ @force_truecolor = true
166
+ @configs&.each_value(&:reconfigure)
167
+ end
168
+
169
+ def self.[](name)
170
+ @configs[name]
171
+ end
172
+
173
+ def self.config(name, &block)
174
+ @configs ||= {}
175
+ @configs[name] = Config.new(name, &block)
176
+ end
177
+
178
+ def self.configs
179
+ @configs.transform_values(&:definition)
180
+ end
181
+
182
+ def self.load_initial_configs
183
+ config(:default) do |conf|
184
+ conf.define :default, style: :reset
185
+ conf.define :enhanced, style: :reset
186
+ conf.define :scrollbar, style: :reset
187
+ end
188
+ config(:completion_dialog) do |conf|
189
+ conf.define :default, foreground: :bright_white, background: :gray
190
+ conf.define :enhanced, foreground: :black, background: :white
191
+ conf.define :scrollbar, foreground: :white, background: :gray
192
+ end
193
+ end
194
+
195
+ def self.reset_to_initial_configs
196
+ @configs = {}
197
+ load_initial_configs
198
+ end
199
+ end
@@ -0,0 +1,76 @@
1
+ class Reline::History < Array
2
+ def initialize(config)
3
+ @config = config
4
+ end
5
+
6
+ def to_s
7
+ 'HISTORY'
8
+ end
9
+
10
+ def delete_at(index)
11
+ index = check_index(index)
12
+ super(index)
13
+ end
14
+
15
+ def [](index)
16
+ index = check_index(index) unless index.is_a?(Range)
17
+ super(index)
18
+ end
19
+
20
+ def []=(index, val)
21
+ index = check_index(index)
22
+ super(index, String.new(val, encoding: Reline.encoding_system_needs))
23
+ end
24
+
25
+ def concat(*val)
26
+ val.each do |v|
27
+ push(*v)
28
+ end
29
+ end
30
+
31
+ def push(*val)
32
+ # If history_size is zero, all histories are dropped.
33
+ return self if @config.history_size.zero?
34
+ # If history_size is negative, history size is unlimited.
35
+ if @config.history_size.positive?
36
+ diff = size + val.size - @config.history_size
37
+ if diff > 0
38
+ if diff <= size
39
+ shift(diff)
40
+ else
41
+ diff -= size
42
+ clear
43
+ val.shift(diff)
44
+ end
45
+ end
46
+ end
47
+ super(*(val.map{ |v|
48
+ String.new(v, encoding: Reline.encoding_system_needs)
49
+ }))
50
+ end
51
+
52
+ def <<(val)
53
+ # If history_size is zero, all histories are dropped.
54
+ return self if @config.history_size.zero?
55
+ # If history_size is negative, history size is unlimited.
56
+ if @config.history_size.positive?
57
+ shift if size + 1 > @config.history_size
58
+ end
59
+ super(String.new(val, encoding: Reline.encoding_system_needs))
60
+ end
61
+
62
+ private def check_index(index)
63
+ index += size if index < 0
64
+ if index < -2147483648 or 2147483647 < index
65
+ raise RangeError.new("integer #{index} too big to convert to 'int'")
66
+ end
67
+ # If history_size is negative, history size is unlimited.
68
+ if @config.history_size.positive?
69
+ if index < -@config.history_size or @config.history_size < index
70
+ raise RangeError.new("index=<#{index}>")
71
+ end
72
+ end
73
+ raise IndexError.new("index=<#{index}>") if index < 0 or size <= index
74
+ index
75
+ end
76
+ end