brakeman 6.1.2 → 7.1.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 (617) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +65 -0
  3. data/README.md +6 -3
  4. data/bundle/load.rb +16 -13
  5. data/bundle/ruby/3.2.0/gems/csv-3.3.5/LICENSE.txt +33 -0
  6. data/bundle/ruby/3.2.0/gems/csv-3.3.5/NEWS.md +1009 -0
  7. data/bundle/ruby/3.2.0/gems/csv-3.3.5/README.md +55 -0
  8. data/bundle/ruby/3.2.0/gems/csv-3.3.5/lib/csv/core_ext/array.rb +9 -0
  9. data/bundle/ruby/3.2.0/gems/csv-3.3.5/lib/csv/core_ext/string.rb +9 -0
  10. data/bundle/ruby/3.2.0/gems/csv-3.3.5/lib/csv/fields_converter.rb +96 -0
  11. data/bundle/ruby/3.2.0/gems/csv-3.3.5/lib/csv/input_record_separator.rb +18 -0
  12. data/bundle/ruby/3.2.0/gems/csv-3.3.5/lib/csv/parser.rb +1302 -0
  13. data/bundle/ruby/3.2.0/gems/csv-3.3.5/lib/csv/row.rb +757 -0
  14. data/bundle/ruby/3.2.0/gems/csv-3.3.5/lib/csv/table.rb +1055 -0
  15. data/bundle/ruby/3.2.0/gems/csv-3.3.5/lib/csv/version.rb +6 -0
  16. data/bundle/ruby/3.2.0/gems/csv-3.3.5/lib/csv/writer.rb +209 -0
  17. data/bundle/ruby/3.2.0/gems/csv-3.3.5/lib/csv.rb +3017 -0
  18. data/bundle/ruby/{3.3.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.3.0}/CHANGELOG.md +168 -4
  19. data/bundle/ruby/{3.3.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.3.0}/FAQ.md +1 -1
  20. data/bundle/ruby/3.2.0/gems/haml-6.3.0/Gemfile +27 -0
  21. data/bundle/ruby/{3.3.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.3.0}/MIT-LICENSE +1 -1
  22. data/bundle/ruby/{3.3.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.3.0}/README.md +22 -34
  23. data/bundle/ruby/{3.3.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.3.0}/REFERENCE.md +95 -159
  24. data/bundle/ruby/3.2.0/gems/haml-6.3.0/exe/haml +6 -0
  25. data/bundle/ruby/3.2.0/gems/haml-6.3.0/haml.gemspec +43 -0
  26. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/ambles.rb +20 -0
  27. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/attribute_builder.rb +162 -0
  28. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/attribute_compiler.rb +133 -0
  29. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/attribute_parser.rb +116 -0
  30. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/cli.rb +154 -0
  31. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/compiler/children_compiler.rb +155 -0
  32. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/compiler/comment_compiler.rb +51 -0
  33. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/compiler/doctype_compiler.rb +52 -0
  34. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/compiler/script_compiler.rb +114 -0
  35. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/compiler/silent_script_compiler.rb +24 -0
  36. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/compiler/tag_compiler.rb +76 -0
  37. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/compiler.rb +97 -0
  38. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/dynamic_merger.rb +67 -0
  39. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/engine.rb +59 -0
  40. data/bundle/ruby/{3.3.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.3.0}/lib/haml/error.rb +5 -4
  41. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/escape.rb +13 -0
  42. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/escape_any.rb +21 -0
  43. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/base.rb +12 -0
  44. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/cdata.rb +20 -0
  45. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/coffee.rb +17 -0
  46. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/css.rb +33 -0
  47. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/erb.rb +10 -0
  48. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/escaped.rb +22 -0
  49. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/javascript.rb +33 -0
  50. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/less.rb +20 -0
  51. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/markdown.rb +11 -0
  52. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/plain.rb +29 -0
  53. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/preserve.rb +22 -0
  54. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/ruby.rb +10 -0
  55. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/sass.rb +15 -0
  56. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/scss.rb +15 -0
  57. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/text_base.rb +25 -0
  58. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/tilt_base.rb +59 -0
  59. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters.rb +75 -0
  60. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/force_escape.rb +29 -0
  61. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/helpers.rb +15 -0
  62. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/html.rb +22 -0
  63. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/identity.rb +13 -0
  64. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/object_ref.rb +35 -0
  65. data/bundle/ruby/{3.3.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.3.0}/lib/haml/parser.rb +158 -23
  66. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/rails_helpers.rb +53 -0
  67. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/rails_template.rb +62 -0
  68. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/railtie.rb +10 -0
  69. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/ruby_expression.rb +32 -0
  70. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/string_splitter.rb +140 -0
  71. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/template.rb +20 -0
  72. data/bundle/ruby/{3.3.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.3.0}/lib/haml/temple_line_counter.rb +2 -1
  73. data/bundle/ruby/{3.3.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.3.0}/lib/haml/util.rb +19 -15
  74. data/bundle/ruby/{3.3.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.3.0}/lib/haml/version.rb +1 -2
  75. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/whitespace.rb +8 -0
  76. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml.rb +13 -0
  77. data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/Changelog.md +14 -0
  78. data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/Gemfile +2 -0
  79. data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/README.md +3 -0
  80. data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/highline.gemspec +4 -1
  81. data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/list_renderer.rb +2 -2
  82. data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/menu.rb +7 -5
  83. data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/terminal.rb +2 -2
  84. data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/version.rb +1 -1
  85. data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/lib/highline.rb +26 -13
  86. data/bundle/ruby/3.2.0/gems/parallel-1.27.0/lib/parallel/version.rb +4 -0
  87. data/bundle/ruby/{3.3.0/gems/parallel-1.24.0 → 3.2.0/gems/parallel-1.27.0}/lib/parallel.rb +52 -20
  88. data/bundle/ruby/3.2.0/gems/reline-0.6.1/COPYING +56 -0
  89. data/bundle/ruby/3.2.0/gems/reline-0.6.1/README.md +94 -0
  90. data/bundle/ruby/3.2.0/gems/reline-0.6.1/lib/reline/config.rb +373 -0
  91. data/bundle/ruby/3.2.0/gems/reline-0.6.1/lib/reline/face.rb +199 -0
  92. data/bundle/ruby/3.2.0/gems/reline-0.6.1/lib/reline/history.rb +76 -0
  93. data/bundle/ruby/3.2.0/gems/reline-0.6.1/lib/reline/io/ansi.rb +318 -0
  94. data/bundle/ruby/3.2.0/gems/reline-0.6.1/lib/reline/io/dumb.rb +120 -0
  95. data/bundle/ruby/3.2.0/gems/reline-0.6.1/lib/reline/io/windows.rb +530 -0
  96. data/bundle/ruby/3.2.0/gems/reline-0.6.1/lib/reline/io.rb +55 -0
  97. data/bundle/ruby/3.2.0/gems/reline-0.6.1/lib/reline/key_actor/base.rb +37 -0
  98. data/bundle/ruby/3.2.0/gems/reline-0.6.1/lib/reline/key_actor/composite.rb +17 -0
  99. data/bundle/ruby/3.2.0/gems/reline-0.6.1/lib/reline/key_actor/emacs.rb +517 -0
  100. data/bundle/ruby/3.2.0/gems/reline-0.6.1/lib/reline/key_actor/vi_command.rb +518 -0
  101. data/bundle/ruby/3.2.0/gems/reline-0.6.1/lib/reline/key_actor/vi_insert.rb +517 -0
  102. data/bundle/ruby/3.2.0/gems/reline-0.6.1/lib/reline/key_actor.rb +8 -0
  103. data/bundle/ruby/3.2.0/gems/reline-0.6.1/lib/reline/key_stroke.rb +119 -0
  104. data/bundle/ruby/3.2.0/gems/reline-0.6.1/lib/reline/kill_ring.rb +125 -0
  105. data/bundle/ruby/3.2.0/gems/reline-0.6.1/lib/reline/line_editor.rb +2354 -0
  106. data/bundle/ruby/3.2.0/gems/reline-0.6.1/lib/reline/unicode/east_asian_width.rb +1293 -0
  107. data/bundle/ruby/3.2.0/gems/reline-0.6.1/lib/reline/unicode.rb +415 -0
  108. data/bundle/ruby/3.2.0/gems/reline-0.6.1/lib/reline/version.rb +3 -0
  109. data/bundle/ruby/3.2.0/gems/reline-0.6.1/lib/reline.rb +528 -0
  110. data/bundle/ruby/3.2.0/gems/reline-0.6.1/license_of_rb-readline +25 -0
  111. data/bundle/ruby/3.2.0/gems/rexml-3.4.1/LICENSE.txt +22 -0
  112. data/bundle/ruby/3.2.0/gems/rexml-3.4.1/NEWS.md +699 -0
  113. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/attribute.rb +3 -2
  114. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/document.rb +5 -1
  115. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/element.rb +16 -31
  116. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/entity.rb +9 -48
  117. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/formatters/pretty.rb +1 -1
  118. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/functions.rb +1 -2
  119. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/node.rb +8 -4
  120. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/parseexception.rb +1 -0
  121. data/bundle/ruby/3.2.0/gems/rexml-3.4.1/lib/rexml/parsers/baseparser.rb +887 -0
  122. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/parsers/pullparser.rb +16 -0
  123. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/parsers/sax2parser.rb +16 -19
  124. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/parsers/streamparser.rb +16 -10
  125. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/parsers/treeparser.rb +9 -21
  126. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/rexml.rb +1 -1
  127. data/bundle/ruby/3.2.0/gems/rexml-3.4.1/lib/rexml/source.rb +383 -0
  128. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/text.rb +54 -57
  129. data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/xpath_parser.rb +7 -3
  130. data/bundle/ruby/{3.3.0/gems/ruby2ruby-2.4.4 → 3.2.0/gems/ruby2ruby-2.5.2}/History.rdoc +28 -0
  131. data/bundle/ruby/{3.3.0/gems/ruby2ruby-2.4.4 → 3.2.0/gems/ruby2ruby-2.5.2}/lib/ruby2ruby.rb +166 -27
  132. data/bundle/ruby/{3.3.0/gems/sexp_processor-4.17.1 → 3.2.0/gems/sexp_processor-4.17.3}/History.rdoc +12 -0
  133. data/bundle/ruby/{3.3.0/gems/sexp_processor-4.17.1 → 3.2.0/gems/sexp_processor-4.17.3}/lib/sexp.rb +1 -1
  134. data/bundle/ruby/{3.3.0/gems/sexp_processor-4.17.1 → 3.2.0/gems/sexp_processor-4.17.3}/lib/sexp_matcher.rb +1 -1
  135. data/bundle/ruby/{3.3.0/gems/sexp_processor-4.17.1 → 3.2.0/gems/sexp_processor-4.17.3}/lib/sexp_processor.rb +1 -1
  136. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/CHANGES +44 -8
  137. data/bundle/ruby/3.2.0/gems/slim-5.2.1/Gemfile +43 -0
  138. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/LICENSE +1 -1
  139. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/README.jp.md +28 -41
  140. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/README.md +66 -43
  141. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/lib/slim/code_attributes.rb +2 -1
  142. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/lib/slim/command.rb +2 -8
  143. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/lib/slim/controls.rb +1 -0
  144. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/lib/slim/do_inserter.rb +4 -3
  145. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/lib/slim/embedded.rb +17 -17
  146. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/lib/slim/end_inserter.rb +3 -2
  147. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/lib/slim/engine.rb +3 -0
  148. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/lib/slim/erb_converter.rb +1 -0
  149. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/lib/slim/filter.rb +1 -0
  150. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/lib/slim/grammar.rb +1 -0
  151. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/lib/slim/include.rb +1 -0
  152. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/lib/slim/interpolation.rb +1 -0
  153. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/lib/slim/logic_less/context.rb +6 -7
  154. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/lib/slim/logic_less/filter.rb +1 -0
  155. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/lib/slim/logic_less.rb +1 -0
  156. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/lib/slim/parser.rb +26 -39
  157. data/bundle/ruby/3.2.0/gems/slim-5.2.1/lib/slim/railtie.rb +19 -0
  158. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/lib/slim/smart/escaper.rb +1 -1
  159. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/lib/slim/smart/filter.rb +3 -2
  160. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/lib/slim/smart/parser.rb +4 -3
  161. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/lib/slim/smart.rb +1 -0
  162. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/lib/slim/splat/builder.rb +16 -8
  163. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/lib/slim/splat/filter.rb +6 -4
  164. data/bundle/ruby/3.2.0/gems/slim-5.2.1/lib/slim/template.rb +6 -0
  165. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/lib/slim/translator.rb +4 -3
  166. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/lib/slim/version.rb +2 -1
  167. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/lib/slim.rb +2 -0
  168. data/bundle/ruby/{3.3.0/gems/slim-4.1.0 → 3.2.0/gems/slim-5.2.1}/slim.gemspec +14 -5
  169. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/CHANGES +39 -1
  170. data/bundle/ruby/3.2.0/gems/temple-0.10.3/Gemfile +2 -0
  171. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/README.md +1 -1
  172. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/engine.rb +1 -0
  173. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/erb/engine.rb +3 -0
  174. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/erb/parser.rb +2 -1
  175. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/erb/template.rb +1 -0
  176. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/erb/trimming.rb +1 -0
  177. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/exceptions.rb +1 -0
  178. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/filter.rb +1 -0
  179. data/bundle/ruby/3.2.0/gems/temple-0.10.3/lib/temple/filters/ambles.rb +22 -0
  180. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/filters/code_merger.rb +1 -0
  181. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/filters/control_flow.rb +1 -0
  182. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/filters/dynamic_inliner.rb +2 -1
  183. data/bundle/ruby/3.2.0/gems/temple-0.10.3/lib/temple/filters/dynamic_merger.rb +69 -0
  184. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/filters/encoding.rb +1 -0
  185. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/filters/eraser.rb +1 -0
  186. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/filters/escapable.rb +1 -0
  187. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/filters/multi_flattener.rb +1 -0
  188. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/filters/remove_bom.rb +1 -0
  189. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/filters/static_analyzer.rb +1 -0
  190. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/filters/static_merger.rb +1 -0
  191. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/filters/string_splitter.rb +13 -1
  192. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/filters/validator.rb +1 -0
  193. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/generator.rb +5 -2
  194. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/generators/array.rb +1 -0
  195. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/generators/array_buffer.rb +1 -0
  196. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/generators/erb.rb +1 -0
  197. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/generators/rails_output_buffer.rb +4 -4
  198. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/generators/string_buffer.rb +2 -1
  199. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/grammar.rb +1 -0
  200. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/html/attribute_merger.rb +1 -0
  201. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/html/attribute_remover.rb +1 -0
  202. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/html/attribute_sorter.rb +1 -0
  203. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/html/dispatcher.rb +1 -0
  204. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/html/fast.rb +1 -0
  205. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/html/filter.rb +1 -0
  206. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/html/pretty.rb +1 -0
  207. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/html/safe.rb +1 -0
  208. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/map.rb +1 -0
  209. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/mixins/dispatcher.rb +1 -0
  210. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/mixins/engine_dsl.rb +1 -0
  211. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/mixins/grammar_dsl.rb +4 -2
  212. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/mixins/options.rb +1 -0
  213. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/mixins/template.rb +1 -0
  214. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/parser.rb +1 -0
  215. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/static_analyzer.rb +1 -0
  216. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/templates/rails.rb +7 -2
  217. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/templates/tilt.rb +2 -9
  218. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/templates.rb +1 -0
  219. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple/utils.rb +5 -15
  220. data/bundle/ruby/3.2.0/gems/temple-0.10.3/lib/temple/version.rb +4 -0
  221. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/lib/temple.rb +3 -0
  222. data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/temple.gemspec +4 -6
  223. data/bundle/ruby/3.2.0/gems/terminal-table-4.0.0/History.rdoc +149 -0
  224. data/bundle/ruby/3.2.0/gems/terminal-table-4.0.0/README.md +417 -0
  225. data/bundle/ruby/{3.3.0/gems/terminal-table-1.8.0 → 3.2.0/gems/terminal-table-4.0.0}/lib/terminal-table/cell.rb +9 -9
  226. data/bundle/ruby/{3.3.0/gems/terminal-table-1.8.0 → 3.2.0/gems/terminal-table-4.0.0}/lib/terminal-table/row.rb +18 -4
  227. data/bundle/ruby/3.2.0/gems/terminal-table-4.0.0/lib/terminal-table/separator.rb +66 -0
  228. data/bundle/ruby/3.2.0/gems/terminal-table-4.0.0/lib/terminal-table/style.rb +284 -0
  229. data/bundle/ruby/{3.3.0/gems/terminal-table-1.8.0 → 3.2.0/gems/terminal-table-4.0.0}/lib/terminal-table/table.rb +49 -18
  230. data/bundle/ruby/3.2.0/gems/terminal-table-4.0.0/lib/terminal-table/util.rb +13 -0
  231. data/bundle/ruby/{3.3.0/gems/terminal-table-1.8.0 → 3.2.0/gems/terminal-table-4.0.0}/lib/terminal-table/version.rb +1 -1
  232. data/bundle/ruby/{3.3.0/gems/terminal-table-1.8.0 → 3.2.0/gems/terminal-table-4.0.0}/lib/terminal-table.rb +2 -2
  233. data/bundle/ruby/{3.3.0/gems/terminal-table-1.8.0 → 3.2.0/gems/terminal-table-4.0.0}/terminal-table.gemspec +3 -4
  234. data/bundle/ruby/{3.3.0/gems/tilt-2.0.11 → 3.2.0/gems/tilt-2.6.1}/COPYING +1 -0
  235. data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/_emacs_org.rb +2 -0
  236. data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/_handlebars.rb +2 -0
  237. data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/_jbuilder.rb +2 -0
  238. data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/_org.rb +2 -0
  239. data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/asciidoc.rb +15 -0
  240. data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/babel.rb +8 -0
  241. data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/builder.rb +42 -0
  242. data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/cli.rb +134 -0
  243. data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/coffee.rb +39 -0
  244. data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/commonmarker.rb +95 -0
  245. data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/creole.rb +16 -0
  246. data/bundle/ruby/{3.3.0/gems/tilt-2.0.11 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/csv.rb +6 -18
  247. data/bundle/ruby/{3.3.0/gems/tilt-2.0.11 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/erb.rb +23 -21
  248. data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/erubi.rb +55 -0
  249. data/bundle/ruby/{3.3.0/gems/tilt-2.0.11 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/etanni.rb +5 -4
  250. data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/haml.rb +94 -0
  251. data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/kramdown.rb +13 -0
  252. data/bundle/ruby/{3.3.0/gems/tilt-2.0.11 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/liquid.rb +10 -17
  253. data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/livescript.rb +11 -0
  254. data/bundle/ruby/{3.3.0/gems/tilt-2.0.11 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/mapping.rb +228 -109
  255. data/bundle/ruby/{3.3.0/gems/tilt-2.0.11 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/markaby.rb +5 -7
  256. data/bundle/ruby/{3.3.0/gems/tilt-2.0.11 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/nokogiri.rb +11 -10
  257. data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/pandoc.rb +39 -0
  258. data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/pipeline.rb +19 -0
  259. data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/plain.rb +5 -0
  260. data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/prawn.rb +28 -0
  261. data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/radius.rb +41 -0
  262. data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/rdiscount.rb +23 -0
  263. data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/rdoc.rb +11 -0
  264. data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/redcarpet.rb +31 -0
  265. data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/redcloth.rb +13 -0
  266. data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/rst-pandoc.rb +10 -0
  267. data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/sass.rb +78 -0
  268. data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/slim.rb +5 -0
  269. data/bundle/ruby/{3.3.0/gems/tilt-2.0.11 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/string.rb +9 -3
  270. data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/template.rb +611 -0
  271. data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/typescript.rb +19 -0
  272. data/bundle/ruby/{3.3.0/gems/tilt-2.0.11 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/yajl.rb +5 -11
  273. data/bundle/ruby/{3.3.0/gems/tilt-2.0.11 → 3.2.0/gems/tilt-2.6.1}/lib/tilt.rb +68 -43
  274. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.1.4/CHANGELOG.md +291 -0
  275. data/bundle/ruby/{3.3.0/gems/unicode-display_width-1.8.0 → 3.2.0/gems/unicode-display_width-3.1.4}/MIT-LICENSE.txt +1 -1
  276. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.1.4/README.md +194 -0
  277. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.1.4/data/display_width.marshal.gz +0 -0
  278. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.1.4/lib/unicode/display_width/constants.rb +10 -0
  279. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.1.4/lib/unicode/display_width/emoji_support.rb +52 -0
  280. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.1.4/lib/unicode/display_width/index.rb +34 -0
  281. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.1.4/lib/unicode/display_width/no_string_ext.rb +8 -0
  282. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.1.4/lib/unicode/display_width/reline_ext.rb +14 -0
  283. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.1.4/lib/unicode/display_width/string_ext.rb +9 -0
  284. data/bundle/ruby/3.2.0/gems/unicode-display_width-3.1.4/lib/unicode/display_width.rb +247 -0
  285. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/CHANGELOG.md +191 -0
  286. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/CODE_OF_CONDUCT.md +74 -0
  287. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/Gemfile +7 -0
  288. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/Gemfile.lock +33 -0
  289. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/MIT-LICENSE.txt +20 -0
  290. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/README.md +205 -0
  291. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/data/emoji.marshal.gz +0 -0
  292. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/data/generate_constants.rb +344 -0
  293. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/constants.rb +49 -0
  294. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex.rb +8 -0
  295. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_basic.rb +8 -0
  296. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_emoji_keycap.rb +8 -0
  297. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_include_mqe.rb +8 -0
  298. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_include_mqe_uqe.rb +8 -0
  299. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_include_text.rb +8 -0
  300. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_picto.rb +8 -0
  301. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_picto_no_emoji.rb +8 -0
  302. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_possible.rb +8 -0
  303. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_prop_component.rb +8 -0
  304. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_prop_emoji.rb +8 -0
  305. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_prop_modifier.rb +8 -0
  306. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_prop_modifier_base.rb +8 -0
  307. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_prop_presentation.rb +8 -0
  308. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_text.rb +8 -0
  309. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_text_presentation.rb +8 -0
  310. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_valid.rb +8 -0
  311. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_valid_include_text.rb +8 -0
  312. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_well_formed.rb +8 -0
  313. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_well_formed_include_text.rb +8 -0
  314. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex.rb +8 -0
  315. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_basic.rb +8 -0
  316. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_emoji_keycap.rb +8 -0
  317. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_include_mqe.rb +8 -0
  318. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_include_mqe_uqe.rb +8 -0
  319. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_include_text.rb +8 -0
  320. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_picto.rb +8 -0
  321. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_picto_no_emoji.rb +8 -0
  322. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_possible.rb +8 -0
  323. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_prop_component.rb +8 -0
  324. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_prop_emoji.rb +8 -0
  325. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_prop_modifier.rb +8 -0
  326. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_prop_modifier_base.rb +8 -0
  327. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_prop_presentation.rb +8 -0
  328. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_text.rb +8 -0
  329. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_text_presentation.rb +8 -0
  330. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_valid.rb +8 -0
  331. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_valid_include_text.rb +8 -0
  332. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_well_formed.rb +8 -0
  333. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_well_formed_include_text.rb +8 -0
  334. data/bundle/ruby/{3.3.0/gems/unicode-display_width-1.8.0/lib/unicode/display_width → 3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji}/index.rb +5 -3
  335. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/lazy_constants.rb +56 -0
  336. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/list.rb +13 -0
  337. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji.rb +111 -0
  338. data/bundle/ruby/3.2.0/gems/unicode-emoji-4.0.4/unicode-emoji.gemspec +22 -0
  339. data/lib/brakeman/app_tree.rb +50 -13
  340. data/lib/brakeman/checks/check_deserialize.rb +4 -1
  341. data/lib/brakeman/checks/check_eol_rails.rb +7 -0
  342. data/lib/brakeman/checks/check_eol_ruby.rb +1 -0
  343. data/lib/brakeman/checks/check_evaluation.rb +45 -8
  344. data/lib/brakeman/checks/check_execute.rb +28 -0
  345. data/lib/brakeman/checks/check_model_attr_accessible.rb +1 -0
  346. data/lib/brakeman/checks/check_session_settings.rb +1 -1
  347. data/lib/brakeman/checks/check_unscoped_find.rb +1 -1
  348. data/lib/brakeman/checks/check_weak_rsa_key.rb +1 -1
  349. data/lib/brakeman/commandline.rb +5 -0
  350. data/lib/brakeman/file_parser.rb +35 -2
  351. data/lib/brakeman/messages.rb +1 -1
  352. data/lib/brakeman/options.rb +45 -4
  353. data/lib/brakeman/parsers/erubis_patch.rb +11 -0
  354. data/lib/brakeman/parsers/haml6_embedded.rb +23 -0
  355. data/lib/brakeman/parsers/rails2_erubis.rb +3 -0
  356. data/lib/brakeman/parsers/rails2_xss_plugin_erubis.rb +4 -0
  357. data/lib/brakeman/parsers/rails3_erubis.rb +5 -1
  358. data/lib/brakeman/parsers/slim_embedded.rb +2 -0
  359. data/lib/brakeman/parsers/template_parser.rb +32 -7
  360. data/lib/brakeman/processor.rb +2 -0
  361. data/lib/brakeman/processors/alias_processor.rb +43 -17
  362. data/lib/brakeman/processors/base_processor.rb +2 -0
  363. data/lib/brakeman/processors/haml6_template_processor.rb +92 -0
  364. data/lib/brakeman/processors/haml_template_processor.rb +7 -1
  365. data/lib/brakeman/processors/lib/file_type_detector.rb +9 -7
  366. data/lib/brakeman/processors/lib/render_helper.rb +38 -1
  367. data/lib/brakeman/processors/template_processor.rb +1 -1
  368. data/lib/brakeman/report/ignore/config.rb +0 -1
  369. data/lib/brakeman/report/report_html.rb +1 -1
  370. data/lib/brakeman/report/report_junit.rb +4 -57
  371. data/lib/brakeman/report/report_markdown.rb +1 -1
  372. data/lib/brakeman/report/report_sarif.rb +122 -2
  373. data/lib/brakeman/report/report_table.rb +2 -2
  374. data/lib/brakeman/report/report_tabs.rb +0 -1
  375. data/lib/brakeman/report/report_text.rb +8 -1
  376. data/lib/brakeman/report/templates/header.html.erb +7 -2
  377. data/lib/brakeman/report/templates/ignored_warnings.html.erb +3 -3
  378. data/lib/brakeman/rescanner.rb +40 -390
  379. data/lib/brakeman/scanner.rb +86 -53
  380. data/lib/brakeman/tracker/config.rb +9 -1
  381. data/lib/brakeman/tracker/file_cache.rb +83 -0
  382. data/lib/brakeman/tracker.rb +25 -2
  383. data/lib/brakeman/util.rb +1 -3
  384. data/lib/brakeman/version.rb +1 -1
  385. data/lib/brakeman/warning.rb +1 -1
  386. data/lib/brakeman.rb +25 -2
  387. data/lib/ruby_parser/bm_sexp.rb +5 -1
  388. metadata +493 -374
  389. data/bundle/ruby/3.3.0/gems/haml-5.2.2/Gemfile +0 -16
  390. data/bundle/ruby/3.3.0/gems/haml-5.2.2/TODO +0 -24
  391. data/bundle/ruby/3.3.0/gems/haml-5.2.2/haml.gemspec +0 -45
  392. data/bundle/ruby/3.3.0/gems/haml-5.2.2/lib/haml/attribute_builder.rb +0 -219
  393. data/bundle/ruby/3.3.0/gems/haml-5.2.2/lib/haml/attribute_compiler.rb +0 -237
  394. data/bundle/ruby/3.3.0/gems/haml-5.2.2/lib/haml/attribute_parser.rb +0 -150
  395. data/bundle/ruby/3.3.0/gems/haml-5.2.2/lib/haml/buffer.rb +0 -182
  396. data/bundle/ruby/3.3.0/gems/haml-5.2.2/lib/haml/compiler.rb +0 -330
  397. data/bundle/ruby/3.3.0/gems/haml-5.2.2/lib/haml/engine.rb +0 -238
  398. data/bundle/ruby/3.3.0/gems/haml-5.2.2/lib/haml/escapable.rb +0 -77
  399. data/bundle/ruby/3.3.0/gems/haml-5.2.2/lib/haml/exec.rb +0 -347
  400. data/bundle/ruby/3.3.0/gems/haml-5.2.2/lib/haml/filters.rb +0 -399
  401. data/bundle/ruby/3.3.0/gems/haml-5.2.2/lib/haml/generator.rb +0 -42
  402. data/bundle/ruby/3.3.0/gems/haml-5.2.2/lib/haml/helpers/action_view_extensions.rb +0 -60
  403. data/bundle/ruby/3.3.0/gems/haml-5.2.2/lib/haml/helpers/action_view_mods.rb +0 -132
  404. data/bundle/ruby/3.3.0/gems/haml-5.2.2/lib/haml/helpers/action_view_xss_mods.rb +0 -60
  405. data/bundle/ruby/3.3.0/gems/haml-5.2.2/lib/haml/helpers/safe_erubi_template.rb +0 -20
  406. data/bundle/ruby/3.3.0/gems/haml-5.2.2/lib/haml/helpers/safe_erubis_template.rb +0 -33
  407. data/bundle/ruby/3.3.0/gems/haml-5.2.2/lib/haml/helpers/xss_mods.rb +0 -114
  408. data/bundle/ruby/3.3.0/gems/haml-5.2.2/lib/haml/helpers.rb +0 -709
  409. data/bundle/ruby/3.3.0/gems/haml-5.2.2/lib/haml/options.rb +0 -273
  410. data/bundle/ruby/3.3.0/gems/haml-5.2.2/lib/haml/plugin.rb +0 -54
  411. data/bundle/ruby/3.3.0/gems/haml-5.2.2/lib/haml/railtie.rb +0 -53
  412. data/bundle/ruby/3.3.0/gems/haml-5.2.2/lib/haml/sass_rails_filter.rb +0 -47
  413. data/bundle/ruby/3.3.0/gems/haml-5.2.2/lib/haml/template/options.rb +0 -27
  414. data/bundle/ruby/3.3.0/gems/haml-5.2.2/lib/haml/template.rb +0 -39
  415. data/bundle/ruby/3.3.0/gems/haml-5.2.2/lib/haml/temple_engine.rb +0 -124
  416. data/bundle/ruby/3.3.0/gems/haml-5.2.2/lib/haml.rb +0 -25
  417. data/bundle/ruby/3.3.0/gems/haml-5.2.2/yard/default/fulldoc/html/css/common.sass +0 -15
  418. data/bundle/ruby/3.3.0/gems/haml-5.2.2/yard/default/layout/html/footer.erb +0 -12
  419. data/bundle/ruby/3.3.0/gems/parallel-1.24.0/lib/parallel/version.rb +0 -4
  420. data/bundle/ruby/3.3.0/gems/rexml-3.2.6/NEWS.md +0 -276
  421. data/bundle/ruby/3.3.0/gems/rexml-3.2.6/lib/rexml/parsers/baseparser.rb +0 -694
  422. data/bundle/ruby/3.3.0/gems/rexml-3.2.6/lib/rexml/source.rb +0 -298
  423. data/bundle/ruby/3.3.0/gems/slim-4.1.0/Gemfile +0 -70
  424. data/bundle/ruby/3.3.0/gems/slim-4.1.0/lib/slim/template.rb +0 -19
  425. data/bundle/ruby/3.3.0/gems/temple-0.8.2/Gemfile +0 -3
  426. data/bundle/ruby/3.3.0/gems/temple-0.8.2/lib/temple/version.rb +0 -3
  427. data/bundle/ruby/3.3.0/gems/terminal-table-1.8.0/History.rdoc +0 -85
  428. data/bundle/ruby/3.3.0/gems/terminal-table-1.8.0/README.rdoc +0 -247
  429. data/bundle/ruby/3.3.0/gems/terminal-table-1.8.0/lib/terminal-table/separator.rb +0 -14
  430. data/bundle/ruby/3.3.0/gems/terminal-table-1.8.0/lib/terminal-table/style.rb +0 -79
  431. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/asciidoc.rb +0 -27
  432. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/babel.rb +0 -16
  433. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/bluecloth.rb +0 -24
  434. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/builder.rb +0 -37
  435. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/coffee.rb +0 -58
  436. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/commonmarker.rb +0 -88
  437. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/creole.rb +0 -25
  438. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/dummy.rb +0 -3
  439. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/erubi.rb +0 -32
  440. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/erubis.rb +0 -43
  441. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/haml.rb +0 -86
  442. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/kramdown.rb +0 -25
  443. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/less.rb +0 -30
  444. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/livescript.rb +0 -23
  445. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/maruku.rb +0 -22
  446. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/pandoc.rb +0 -57
  447. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/plain.rb +0 -16
  448. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/prawn.rb +0 -43
  449. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/radius.rb +0 -48
  450. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/rdiscount.rb +0 -39
  451. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/rdoc.rb +0 -40
  452. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/redcarpet.rb +0 -86
  453. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/redcloth.rb +0 -23
  454. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/rst-pandoc.rb +0 -23
  455. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/sass.rb +0 -78
  456. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/sigil.rb +0 -34
  457. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/template.rb +0 -308
  458. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/typescript.rb +0 -26
  459. data/bundle/ruby/3.3.0/gems/tilt-2.0.11/lib/tilt/wikicloth.rb +0 -22
  460. data/bundle/ruby/3.3.0/gems/unicode-display_width-1.8.0/CHANGELOG.md +0 -137
  461. data/bundle/ruby/3.3.0/gems/unicode-display_width-1.8.0/README.md +0 -124
  462. data/bundle/ruby/3.3.0/gems/unicode-display_width-1.8.0/data/display_width.marshal.gz +0 -0
  463. data/bundle/ruby/3.3.0/gems/unicode-display_width-1.8.0/lib/unicode/display_width/constants.rb +0 -8
  464. data/bundle/ruby/3.3.0/gems/unicode-display_width-1.8.0/lib/unicode/display_width/no_string_ext.rb +0 -7
  465. data/bundle/ruby/3.3.0/gems/unicode-display_width-1.8.0/lib/unicode/display_width/string_ext.rb +0 -17
  466. data/bundle/ruby/3.3.0/gems/unicode-display_width-1.8.0/lib/unicode/display_width.rb +0 -51
  467. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/CHANGES.txt +0 -0
  468. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/MIT-LICENSE +0 -0
  469. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/README.txt +0 -0
  470. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/contrib/erubis +0 -0
  471. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/contrib/erubis-run.rb +0 -0
  472. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/contrib/inline-require +0 -0
  473. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/context.rb +0 -0
  474. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/converter.rb +0 -0
  475. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/ec.rb +0 -0
  476. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/ecpp.rb +0 -0
  477. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/ejava.rb +0 -0
  478. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/ejavascript.rb +0 -0
  479. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/enhanced.rb +0 -0
  480. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb +0 -0
  481. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/ephp.rb +0 -0
  482. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/eruby.rb +0 -0
  483. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/escheme.rb +0 -0
  484. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/optimized.rb +0 -0
  485. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine.rb +0 -0
  486. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/enhancer.rb +0 -0
  487. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/error.rb +0 -0
  488. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/evaluator.rb +0 -0
  489. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/generator.rb +0 -0
  490. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/helper.rb +0 -0
  491. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/helpers/rails_form_helper.rb +0 -0
  492. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/helpers/rails_helper.rb +0 -0
  493. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/local-setting.rb +0 -0
  494. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/main.rb +0 -0
  495. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/preprocessing.rb +0 -0
  496. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/tiny.rb +0 -0
  497. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/util.rb +0 -0
  498. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis.rb +0 -0
  499. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/erubis-2.7.0/setup.rb +0 -0
  500. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/AUTHORS +0 -0
  501. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/COPYING +0 -0
  502. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/LICENSE +0 -0
  503. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/TODO +0 -0
  504. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/builtin_styles.rb +0 -0
  505. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/color_scheme.rb +0 -0
  506. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/compatibility.rb +0 -0
  507. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/custom_errors.rb +0 -0
  508. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/import.rb +0 -0
  509. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/io_console_compatible.rb +0 -0
  510. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/list.rb +0 -0
  511. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/menu/item.rb +0 -0
  512. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/paginator.rb +0 -0
  513. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/question/answer_converter.rb +0 -0
  514. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/question.rb +0 -0
  515. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/question_asker.rb +0 -0
  516. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/simulate.rb +0 -0
  517. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/statement.rb +0 -0
  518. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/string.rb +0 -0
  519. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/string_extensions.rb +0 -0
  520. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/style.rb +0 -0
  521. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/template_renderer.rb +0 -0
  522. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/terminal/io_console.rb +0 -0
  523. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/terminal/ncurses.rb +0 -0
  524. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/terminal/unix_stty.rb +0 -0
  525. /data/bundle/ruby/{3.3.0/gems/highline-3.0.1 → 3.2.0/gems/highline-3.1.2}/lib/highline/wrapper.rb +0 -0
  526. /data/bundle/ruby/{3.3.0/gems/parallel-1.24.0 → 3.2.0/gems/parallel-1.27.0}/MIT-LICENSE.txt +0 -0
  527. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6/LICENSE.txt → 3.2.0/gems/reline-0.6.1/BSDL} +0 -0
  528. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/README.md +0 -0
  529. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/attlistdecl.rb +0 -0
  530. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/cdata.rb +0 -0
  531. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/child.rb +0 -0
  532. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/comment.rb +0 -0
  533. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/doctype.rb +0 -0
  534. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/dtd/attlistdecl.rb +0 -0
  535. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/dtd/dtd.rb +0 -0
  536. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/dtd/elementdecl.rb +0 -0
  537. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/dtd/entitydecl.rb +0 -0
  538. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/dtd/notationdecl.rb +0 -0
  539. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/encoding.rb +0 -0
  540. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/formatters/default.rb +0 -0
  541. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/formatters/transitive.rb +0 -0
  542. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/instruction.rb +0 -0
  543. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/light/node.rb +0 -0
  544. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/namespace.rb +0 -0
  545. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/output.rb +0 -0
  546. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/parent.rb +0 -0
  547. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/parsers/lightparser.rb +0 -0
  548. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/parsers/ultralightparser.rb +0 -0
  549. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/parsers/xpathparser.rb +0 -0
  550. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/quickpath.rb +0 -0
  551. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/sax2listener.rb +0 -0
  552. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/security.rb +0 -0
  553. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/streamlistener.rb +0 -0
  554. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/undefinednamespaceexception.rb +0 -0
  555. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/validation/relaxng.rb +0 -0
  556. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/validation/validation.rb +0 -0
  557. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/validation/validationexception.rb +0 -0
  558. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/xmldecl.rb +0 -0
  559. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/xmltokens.rb +0 -0
  560. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml/xpath.rb +0 -0
  561. /data/bundle/ruby/{3.3.0/gems/rexml-3.2.6 → 3.2.0/gems/rexml-3.4.1}/lib/rexml.rb +0 -0
  562. /data/bundle/ruby/{3.3.0/gems/ruby2ruby-2.4.4 → 3.2.0/gems/ruby2ruby-2.5.2}/Manifest.txt +0 -0
  563. /data/bundle/ruby/{3.3.0/gems/ruby2ruby-2.4.4 → 3.2.0/gems/ruby2ruby-2.5.2}/README.rdoc +0 -0
  564. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/History.rdoc +0 -0
  565. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/Manifest.txt +0 -0
  566. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/README.rdoc +0 -0
  567. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/compare/normalize.rb +0 -0
  568. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/debugging.md +0 -0
  569. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/gauntlet.md +0 -0
  570. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/rp_extensions.rb +0 -0
  571. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/rp_stringscanner.rb +0 -0
  572. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby20_parser.rb +0 -0
  573. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby20_parser.y +0 -0
  574. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby21_parser.rb +0 -0
  575. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby21_parser.y +0 -0
  576. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby22_parser.rb +0 -0
  577. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby22_parser.y +0 -0
  578. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby23_parser.rb +0 -0
  579. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby23_parser.y +0 -0
  580. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby24_parser.rb +0 -0
  581. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby24_parser.y +0 -0
  582. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby25_parser.rb +0 -0
  583. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby25_parser.y +0 -0
  584. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby26_parser.rb +0 -0
  585. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby26_parser.y +0 -0
  586. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby27_parser.rb +0 -0
  587. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby27_parser.y +0 -0
  588. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby30_parser.rb +0 -0
  589. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby30_parser.y +0 -0
  590. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby31_parser.rb +0 -0
  591. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby31_parser.y +0 -0
  592. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby32_parser.rb +0 -0
  593. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby32_parser.y +0 -0
  594. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby3_parser.yy +0 -0
  595. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby_lexer.rb +0 -0
  596. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby_lexer.rex +0 -0
  597. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby_lexer.rex.rb +0 -0
  598. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby_lexer_strings.rb +0 -0
  599. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby_parser.rb +0 -0
  600. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby_parser.yy +0 -0
  601. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby_parser_extras.rb +0 -0
  602. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/tools/munge.rb +0 -0
  603. /data/bundle/ruby/{3.3.0 → 3.2.0}/gems/ruby_parser-3.20.3/tools/ripper.rb +0 -0
  604. /data/bundle/ruby/{3.3.0/gems/sexp_processor-4.17.1 → 3.2.0/gems/sexp_processor-4.17.3}/Manifest.txt +0 -0
  605. /data/bundle/ruby/{3.3.0/gems/sexp_processor-4.17.1 → 3.2.0/gems/sexp_processor-4.17.3}/README.rdoc +0 -0
  606. /data/bundle/ruby/{3.3.0/gems/sexp_processor-4.17.1 → 3.2.0/gems/sexp_processor-4.17.3}/lib/composite_sexp_processor.rb +0 -0
  607. /data/bundle/ruby/{3.3.0/gems/sexp_processor-4.17.1 → 3.2.0/gems/sexp_processor-4.17.3}/lib/pt_testcase.rb +0 -0
  608. /data/bundle/ruby/{3.3.0/gems/sexp_processor-4.17.1 → 3.2.0/gems/sexp_processor-4.17.3}/lib/strict_sexp.rb +0 -0
  609. /data/bundle/ruby/{3.3.0/gems/sexp_processor-4.17.1 → 3.2.0/gems/sexp_processor-4.17.3}/lib/unique.rb +0 -0
  610. /data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/EXPRESSIONS.md +0 -0
  611. /data/bundle/ruby/{3.3.0/gems/temple-0.8.2 → 3.2.0/gems/temple-0.10.3}/LICENSE +0 -0
  612. /data/bundle/ruby/{3.3.0/gems/terminal-table-1.8.0 → 3.2.0/gems/terminal-table-4.0.0}/Gemfile +0 -0
  613. /data/bundle/ruby/{3.3.0/gems/terminal-table-1.8.0 → 3.2.0/gems/terminal-table-4.0.0}/LICENSE.txt +0 -0
  614. /data/bundle/ruby/{3.3.0/gems/terminal-table-1.8.0 → 3.2.0/gems/terminal-table-4.0.0}/Manifest +0 -0
  615. /data/bundle/ruby/{3.3.0/gems/terminal-table-1.8.0 → 3.2.0/gems/terminal-table-4.0.0}/Todo.rdoc +0 -0
  616. /data/bundle/ruby/{3.3.0/gems/terminal-table-1.8.0 → 3.2.0/gems/terminal-table-4.0.0}/lib/terminal-table/import.rb +0 -0
  617. /data/bundle/ruby/{3.3.0/gems/terminal-table-1.8.0 → 3.2.0/gems/terminal-table-4.0.0}/lib/terminal-table/table_helper.rb +0 -0
@@ -1,73 +1,101 @@
1
- require 'tilt/mapping'
2
- require 'tilt/template'
1
+ # frozen_string_literal: true
2
+ require_relative 'tilt/mapping'
3
+ require_relative 'tilt/template'
3
4
 
4
5
  # Namespace for Tilt. This module is not intended to be included anywhere.
5
6
  module Tilt
6
7
  # Current version.
7
- VERSION = '2.0.11'
8
+ VERSION = '2.6.1'
9
+
10
+ EMPTY_ARRAY = [].freeze
11
+ private_constant :EMPTY_ARRAY
12
+
13
+ EMPTY_HASH = {}.freeze
14
+ private_constant :EMPTY_HASH
8
15
 
9
16
  @default_mapping = Mapping.new
17
+ @extract_fixed_locals = false
18
+
19
+ # Replace the default mapping with a finalized version of the default
20
+ # mapping. This can be done to improve performance after the template
21
+ # libraries you desire to use have already been loaded. Once this is
22
+ # is called, all attempts to modify the default mapping will fail.
23
+ # This also freezes Tilt itself.
24
+ def self.finalize!
25
+ return self if @default_mapping.is_a?(FinalizedMapping)
26
+
27
+ class << self
28
+ prepend(Module.new do
29
+ def lazy_map(*)
30
+ raise "Tilt.#{__callee__} not supported after Tilt.finalize! has been called"
31
+ end
32
+ alias register lazy_map
33
+ alias register_lazy lazy_map
34
+ alias register_pipeline lazy_map
35
+ alias prefer lazy_map
36
+ end)
37
+ end
10
38
 
11
- # @return [Tilt::Mapping] the main mapping object
12
- def self.default_mapping
13
- @default_mapping
39
+ @default_mapping = @default_mapping.finalized
40
+
41
+ freeze
14
42
  end
15
43
 
16
44
  # @private
17
45
  def self.lazy_map
18
- default_mapping.lazy_map
46
+ @default_mapping.lazy_map
19
47
  end
20
48
 
21
49
  # @see Tilt::Mapping#register
22
50
  def self.register(template_class, *extensions)
23
- default_mapping.register(template_class, *extensions)
51
+ @default_mapping.register(template_class, *extensions)
24
52
  end
25
53
 
26
54
  # @see Tilt::Mapping#register_lazy
27
55
  def self.register_lazy(class_name, file, *extensions)
28
- default_mapping.register_lazy(class_name, file, *extensions)
56
+ @default_mapping.register_lazy(class_name, file, *extensions)
29
57
  end
30
58
 
31
- # @deprecated Use {register} instead.
32
- def self.prefer(template_class, *extensions)
33
- register(template_class, *extensions)
59
+ # @see Tilt::Mapping#register_pipeline
60
+ def self.register_pipeline(ext, options=EMPTY_HASH)
61
+ @default_mapping.register_pipeline(ext, options)
34
62
  end
35
63
 
36
64
  # @see Tilt::Mapping#registered?
37
65
  def self.registered?(ext)
38
- default_mapping.registered?(ext)
66
+ @default_mapping.registered?(ext)
39
67
  end
40
68
 
41
69
  # @see Tilt::Mapping#new
42
- def self.new(file, line=nil, options={}, &block)
43
- default_mapping.new(file, line, options, &block)
70
+ def self.new(file, line=nil, options=nil, &block)
71
+ @default_mapping.new(file, line, options, &block)
44
72
  end
45
73
 
46
74
  # @see Tilt::Mapping#[]
47
75
  def self.[](file)
48
- default_mapping[file]
76
+ @default_mapping[file]
49
77
  end
50
78
 
51
79
  # @see Tilt::Mapping#template_for
52
80
  def self.template_for(file)
53
- default_mapping.template_for(file)
81
+ @default_mapping.template_for(file)
54
82
  end
55
83
 
56
84
  # @see Tilt::Mapping#templates_for
57
85
  def self.templates_for(file)
58
- default_mapping.templates_for(file)
86
+ @default_mapping.templates_for(file)
59
87
  end
60
88
 
61
- # @return the template object that is currently rendering.
62
- #
63
- # @example
64
- # tmpl = Tilt['index.erb'].new { '<%= Tilt.current_template %>' }
65
- # tmpl.render == tmpl.to_s
66
- #
67
- # @note This is currently an experimental feature and might return nil
68
- # in the future.
69
- def self.current_template
70
- Thread.current[:tilt_current_template]
89
+ class << self
90
+ # @return [Tilt::Mapping] the main mapping object
91
+ attr_reader :default_mapping
92
+
93
+ # Whether to extract fixed locals from templates by scanning the
94
+ # template content.
95
+ attr_accessor :extract_fixed_locals
96
+
97
+ # Alias register as prefer for Tilt 1.x compatibility.
98
+ alias prefer register
71
99
  end
72
100
 
73
101
  # Extremely simple template cache implementation. Calling applications
@@ -110,18 +138,18 @@ module Tilt
110
138
  @cache = {}
111
139
  end
112
140
  end
113
-
141
+ # :nocov:
142
+ # TILT3: Remove Tilt::Cache
143
+ deprecate_constant :Cache if respond_to?(:deprecate_constant, true)
144
+ # :nocov:
114
145
 
115
146
  # Template Implementations ================================================
116
147
 
117
148
  # ERB
118
149
  register_lazy :ERBTemplate, 'tilt/erb', 'erb', 'rhtml'
119
- register_lazy :ErubisTemplate, 'tilt/erubis', 'erb', 'rhtml', 'erubis'
120
150
  register_lazy :ErubiTemplate, 'tilt/erubi', 'erb', 'rhtml', 'erubi'
121
151
 
122
152
  # Markdown
123
- register_lazy :BlueClothTemplate, 'tilt/bluecloth', 'markdown', 'mkd', 'md'
124
- register_lazy :MarukuTemplate, 'tilt/maruku', 'markdown', 'mkd', 'md'
125
153
  register_lazy :KramdownTemplate, 'tilt/kramdown', 'markdown', 'mkd', 'md'
126
154
  register_lazy :RDiscountTemplate, 'tilt/rdiscount', 'markdown', 'mkd', 'md'
127
155
  register_lazy :RedcarpetTemplate, 'tilt/redcarpet', 'markdown', 'mkd', 'md'
@@ -138,9 +166,8 @@ module Tilt
138
166
  register_lazy :CreoleTemplate, 'tilt/creole', 'wiki', 'creole'
139
167
  register_lazy :EtanniTemplate, 'tilt/etanni', 'etn', 'etanni'
140
168
  register_lazy :HamlTemplate, 'tilt/haml', 'haml'
141
- register_lazy :LessTemplate, 'tilt/less', 'less'
142
169
  register_lazy :LiquidTemplate, 'tilt/liquid', 'liquid'
143
- register_lazy :LiveScriptTemplate, 'tilt/livescript','ls'
170
+ register_lazy :LiveScriptTemplate, 'tilt/livescript','ls', 'livescript'
144
171
  register_lazy :MarkabyTemplate, 'tilt/markaby', 'mab'
145
172
  register_lazy :NokogiriTemplate, 'tilt/nokogiri', 'nokogiri'
146
173
  register_lazy :PlainTemplate, 'tilt/plain', 'html'
@@ -151,17 +178,15 @@ module Tilt
151
178
  register_lazy :RstPandocTemplate, 'tilt/rst-pandoc', 'rst'
152
179
  register_lazy :SassTemplate, 'tilt/sass', 'sass'
153
180
  register_lazy :ScssTemplate, 'tilt/sass', 'scss'
154
- register_lazy :SigilTemplate, 'tilt/sigil', 'sigil'
181
+ register_lazy :SlimTemplate, 'tilt/slim', 'slim'
155
182
  register_lazy :StringTemplate, 'tilt/string', 'str'
156
183
  register_lazy :TypeScriptTemplate, 'tilt/typescript', 'ts', 'tsx'
157
- register_lazy :WikiClothTemplate, 'tilt/wikicloth', 'wiki', 'mediawiki', 'mw'
158
184
  register_lazy :YajlTemplate, 'tilt/yajl', 'yajl'
159
185
 
160
- # External template engines
161
- register_lazy 'Slim::Template', 'slim', 'slim'
162
- register_lazy 'Tilt::HandlebarsTemplate', 'tilt/handlebars', 'handlebars', 'hbs'
163
- register_lazy 'Tilt::OrgTemplate', 'org-ruby', 'org'
164
- register_lazy 'Tilt::EmacsOrgTemplate', 'tilt/emacs_org', 'org'
165
- register_lazy 'Opal::Processor', 'opal', 'opal', 'rb'
166
- register_lazy 'Tilt::JbuilderTemplate', 'tilt/jbuilder', 'jbuilder'
186
+ # TILT3: Remove
187
+ # Deprecated lazy loading of external template engines
188
+ register_lazy 'Tilt::HandlebarsTemplate', 'tilt/_handlebars', 'handlebars', 'hbs'
189
+ register_lazy 'Tilt::OrgTemplate', 'tilt/_org', 'org'
190
+ register_lazy 'Tilt::OrgTemplate', 'tilt/_emacs_org', 'org'
191
+ register_lazy 'Tilt::JbuilderTemplate', 'tilt/_jbuilder', 'jbuilder'
167
192
  end
@@ -0,0 +1,291 @@
1
+ # CHANGELOG
2
+
3
+ ## 3.1.4
4
+
5
+ - Fix that skin tone modifiers were ignored when used in a non-ZWJ sequence
6
+ context (= single emoji char + modifier) #29
7
+ - Add more docs and specs about modifier handling
8
+
9
+ ## 3.1.3
10
+
11
+ Better handling of non-UTF-8 strings, patch by @Earlopain:
12
+
13
+ - Data with *BINARY* encoding is interpreted as UTF-8, if possible
14
+ - Use `invalid: :replace` and `undef: :replace` options when converting to UTF-8
15
+
16
+ ## 3.1.2
17
+
18
+ - Performance improvements
19
+
20
+ ## 3.1.1
21
+
22
+ - Performance improvements
23
+
24
+ ## 3.1.0
25
+
26
+ **Improve Emoji support:**
27
+
28
+ - Emoji modes: Differentiate between well-formed Emoji (`:possible`) and any
29
+ ZWJ/modifier sequence (`:all`). The latter is more common and more efficient
30
+ to implement.
31
+ - Unify `:rgi_{fqe,mqe,uqe}` options to just `:rgi` to keep things simpler (corresponds to
32
+ the former `:rgi_uqe` option). Most terminals that want to support the RGI set
33
+ will probably want to catch Emoji sequences with missing VS16s.
34
+ - Add new `:all_no_vs16` and `:rgi_at` modes to be able to support some terminals
35
+ that needs these quirks
36
+ - Add alias `emoji: :auto` for `emoji: true` and `emoji: :none` for `emoji: false`
37
+ - `:auto` mode: Only consider terminal cells when recommending Emoji support level
38
+ (Emoji themselves might display differently)
39
+ - `:auto` mode: Set default Emoji mode for unknown/unsupported terminals to `:none`
40
+ - Rename `:basic` mode to `:vs16`
41
+
42
+ ## 3.0.1
43
+
44
+
45
+ - Add WezTerm and foot as good Emoji terminals
46
+
47
+ ## 3.0.0
48
+
49
+ **Rework Emoji support:**
50
+
51
+ - Emoji widths are now enabled by default
52
+ - Only reduce Emoji width to 2 when RGI Emoji detected (configurable)
53
+ - VS16 turns Emoji characters of width 1 into full-width
54
+ - Please note that Emoji parsing has a notable impact on performance.
55
+ You can use the `emoji: false` option to disable Emoji adjustments
56
+ - Tries to detect terminal's Emoji support level automatically (from ENV vars)
57
+
58
+ **Index fixes and updates:**
59
+
60
+ - Private-use characters are considered ambiguous (were given width 1 before)
61
+ - Fix that a few zero-width ignorable codepoints from recent Unicode were missing
62
+ - Consider the following separators to be zero-width:
63
+ - U+2028 - LINE SEPARATOR - Zl
64
+ - U+2029 - PARAGRAPH SEPARATOR - Zp
65
+
66
+ **Other:**
67
+
68
+ - Add keyword arguments to `Unicode::DisplayWidth.of`. If you are using a hash
69
+ with overwrite values as third parameter, be sure to put it in curly braces.
70
+ - Using third parameter or explicit hash as fourth parameter is deprecated,
71
+ please migrate to the keyword arguments API
72
+ - Gem raises `ArgumentError` for ambiguous values other than 1 or 2
73
+ - Performance optimizations
74
+ - Require Ruby 2.5
75
+
76
+ ## 2.6.0
77
+
78
+ - Unicode 16
79
+
80
+ ## 2.5.0
81
+
82
+ - Unicode 15.1
83
+
84
+ ## 2.4.2
85
+
86
+ More performance improvements:
87
+
88
+ - Optimize lookup of first 4096 codepoints
89
+ - Avoid overwrite lookup if no overwrites are set
90
+
91
+ ## 2.4.1
92
+
93
+ - Improve general performance!
94
+ - Further improve performance for ASCII strings
95
+
96
+ *You should really upgrade - it's much faster now!*
97
+
98
+ ## 2.4.0
99
+ - Improve performance for ASCII-only strings, by @fatkodima
100
+ - Require Ruby 2.4
101
+
102
+ ## 2.3.0
103
+
104
+ - Unicode 15.0
105
+
106
+ ## 2.2.0
107
+
108
+ - Add *Hangul Jamo Extended-B* block to zero-width chars, thanks @ninjalj #22
109
+
110
+ ## 2.1.0
111
+
112
+ - Unicode 14.0
113
+
114
+ ## 2.0.0
115
+
116
+ Add Support for Ruby 3.0
117
+
118
+ ### Breaking Changes
119
+
120
+ Some features of this library were marked deprecated for a long time and have been removed with Version 2.0:
121
+
122
+ - Aliases of display\_width (…\_size, …\_length) have been removed
123
+ - Auto-loading of string core extension has been removed:
124
+
125
+ If you are relying on the `String#display_width` string extension to be automatically loaded (old behavior), please load it explicitly now:
126
+
127
+ ```ruby
128
+ require "unicode/display_width/string_ext"
129
+ ```
130
+
131
+ You could also change your `Gemfile` line to achieve this:
132
+
133
+ ```ruby
134
+ gem "unicode-display_width", require: "unicode/display_width/string_ext"
135
+ ```
136
+
137
+ ## 2.0.0.pre2
138
+
139
+ - Update 2.0 branch to Unicode 13
140
+
141
+ ## 2.0.0.pre1
142
+
143
+ Will be published as non-pre version on rubygems.org when Ruby 3.0 is released (December 2020)
144
+
145
+ - Introduce new class-based API, which remembers your string-width configuration. See README for details.
146
+ - Remove auto-loading of string extension
147
+ - You can: `require "unicode/display_width/string_ext"` to continue to use the string extension
148
+ - The manual opt-out `require "unicode/display_width/no_string_ext"` is not needed anymore and will
149
+ issue a warning in the future
150
+ - Remove (already deprecated) String#display_size and String#display_width aliases
151
+
152
+ Refactorings / Internal Changes:
153
+
154
+ - Freeze string literals
155
+ - The Unicode::DisplayWidth now is class, instead of a module, this enables the new config-object API
156
+
157
+ ## 1.8.0
158
+
159
+ - Unicode 14.0 (last release of 1.x)
160
+
161
+ ## 1.7.0
162
+
163
+ - Unicode 13
164
+
165
+ ## 1.6.1
166
+
167
+ - Fix that ambiguous and overwrite options where ignored for emoji-measuring
168
+
169
+ ## 1.6.0
170
+
171
+ - Unicode 12.1
172
+
173
+ ## 1.5.0
174
+
175
+ - Unicode 12
176
+
177
+ ## 1.4.1
178
+
179
+ - Only bundle required lib/* and data/* files in actual rubygem, patch by @tas50
180
+
181
+ ## 1.4.0
182
+
183
+ - Unicode 11
184
+
185
+ ## 1.3.3
186
+
187
+ - Replace Gem::Util.gunzip with direct zlib implementation
188
+ This removes the dependency on rubygems, fixes #17
189
+
190
+ ## 1.3.2
191
+
192
+ - Explicitly load rubygems/util, fixes regression in 1.3.1 (autoload issue)
193
+
194
+ ## 1.3.1
195
+
196
+ - Use `Gem::Util` for `gunzip`, removes deprecation warning, patch by @Schwad
197
+
198
+ ## 1.3.0
199
+
200
+ - Unicode 10
201
+
202
+ ## 1.2.1
203
+
204
+ - Fix bug that `emoji: true` would fail for emoji without modifier
205
+
206
+ ## 1.2.0
207
+
208
+ - Add zero-width codepoint ranges: U+2060..U+206F, U+FFF0..U+FFF8, U+E0000..U+E0FFF
209
+ - Add full-witdh codepoint ranges: U+3400..U+4DBF, U+4E00..U+9FFF, U+F900..U+FAFF, U+20000..U+2FFFD, U+30000..U+3FFFD
210
+ - Experimental emoji support using the [unicode-emoji](https://github.com/janlelis/unicode-emoji) gem
211
+ - Fix minor bug in index compression scheme
212
+
213
+ ## 1.1.3
214
+
215
+ - Fix that non-UTF-8 encodings do not throw errors, patch by @windwiny
216
+
217
+ ## 1.1.2
218
+
219
+ - Reduce memory consumption and increase performance, patch by @rrosenblum
220
+
221
+ ## 1.1.1
222
+
223
+ - Always load index into memory, fixes #9
224
+
225
+ ## 1.1.0
226
+
227
+ - Support Unicode 9.0
228
+
229
+ ## 1.0.5
230
+
231
+ - Actually include new index from 1.0.4
232
+
233
+ ## 1.0.4
234
+
235
+ - New index format (much smaller) and internal API changes
236
+ - Move index generation to a builder plugin for the unicoder gem
237
+ - No public API changes
238
+
239
+ ## 1.0.3
240
+
241
+ - Avoid circular dependency warning
242
+
243
+ ## 1.0.2
244
+
245
+ - Fix error that gemspec might be invalid under some circumstances (see gh#6)
246
+
247
+ ## 1.0.1
248
+
249
+ - Inofficially allow Ruby 1.9
250
+
251
+ ## 1.0.0
252
+
253
+ - Faster than 0.3.1
254
+ - Advanced determination of character width
255
+ - This includes: Treat width of most chars of general categories (Mn, Me, Cf) as 0
256
+ - This includes: Introduce list of characters with special widths
257
+ - Allow custom overrides for specific codepoints
258
+ - Set required Ruby version to 2.0
259
+ - Add NO_STRING_EXT mode to disable monkey patching
260
+ - Internal API & index format changed drastically
261
+ - Remove require 'unicode/display_size' (use 'unicode/display_width' instead)
262
+
263
+ ## 0.3.1
264
+
265
+ - Faster than 0.3.0
266
+ - Deprecate usage of aliases: String#display_size and String#display_length
267
+ - Eliminate Ruby warnings (@amatsuda)
268
+
269
+ ## 0.3.0
270
+
271
+ - Update EastAsianWidth from 7.0 to 8.0
272
+ - Add rake task to update EastAsianWidth.txt
273
+ - Move code to generate index from library to Rakefile
274
+ - Update project's meta files
275
+ - Deprecate requiring 'unicode-display_size'
276
+
277
+ ## 0.2.0
278
+
279
+ - Update EastAsianWidth from 6.0 to 7.0
280
+ - Don't build index table automatically when not available
281
+ - Don't include EastAsianWidth.txt in gem (only index)
282
+
283
+
284
+ ## 0.1.0
285
+
286
+ - Fix github issue #1
287
+
288
+
289
+ ## 0.1.0
290
+
291
+ - Initial release
@@ -1,6 +1,6 @@
1
1
  The MIT LICENSE
2
2
 
3
- Copyright (c) 2011, 2015-2020 Jan Lelis
3
+ Copyright (c) 2011, 2015-2024 Jan Lelis
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining
6
6
  a copy of this software and associated documentation files (the
@@ -0,0 +1,194 @@
1
+ # Unicode::DisplayWidth [![[version]](https://badge.fury.io/rb/unicode-display_width.svg)](https://badge.fury.io/rb/unicode-display_width) [<img src="https://github.com/janlelis/unicode-display_width/workflows/Test/badge.svg" />](https://github.com/janlelis/unicode-display_width/actions?query=workflow%3ATest)
2
+
3
+ Determines the monospace display width of a string in Ruby, which is useful for all kinds of terminal-based applications. The implementation is based on [EastAsianWidth.txt](https://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt), the [Emoji specfication](https://www.unicode.org/reports/tr51/) and other data, 100% in Ruby. It does not rely on the OS vendor ([wcwidth()](https://github.com/janlelis/wcswidth-ruby)) to provide an up-to-date method for measuring string width in terminals.
4
+
5
+ Unicode version: **16.0.0** (September 2024)
6
+
7
+ ## Gem Version 3 — Improved Emoji Support
8
+
9
+ **Emoji support is now enabled by default.** See below for description and configuration possibilities.
10
+
11
+ **Unicode::DisplayWidth.of now takes keyword arguments:** { ambiguous:, emoji:, overwrite: }
12
+
13
+ See [CHANGELOG](/CHANGELOG.md) for details.
14
+
15
+ ## Gem Version 2.4.2 — Performance Updates
16
+
17
+ **If you use this gem, you should really upgrade to 2.4.2 or newer. It's often 100x faster, sometimes even 1000x and more!**
18
+
19
+ This is possible because the gem now detects if you use very basic (and common) characters, like ASCII characters. Furthermore, the character width lookup code has been optimized, so even when the string involves full-width or ambiguous characters, the gem is much faster now.
20
+
21
+ ## Introduction to Character Widths
22
+
23
+ Guessing the correct space a character will consume on terminals is not easy. There is no single standard. Most implementations combine data from [East Asian Width](https://www.unicode.org/reports/tr11/), some [General Categories](https://en.wikipedia.org/wiki/Unicode_character_property#General_Category), and hand-picked adjustments.
24
+
25
+ ### How this Library Handles Widths
26
+
27
+ Further at the top means higher precedence. Please expect changes to this algorithm with every MINOR version update (the X in 1.X.0)!
28
+
29
+ Width | Characters | Comment
30
+ -------|------------------------------|--------------------------------------------------
31
+ ? | (user defined) | Overwrites any other values
32
+ ? | Emoji | See "How this Library Handles Emoji Width" below
33
+ -1 | `"\b"` | Backspace (total width never below 0)
34
+ 0 | `"\0"`, `"\x05"`, `"\a"`, `"\n"`, `"\v"`, `"\f"`, `"\r"`, `"\x0E"`, `"\x0F"` | [C0 control codes](https://en.wikipedia.org/wiki/C0_and_C1_control_codes#C0_.28ASCII_and_derivatives.29) which do not change horizontal width
35
+ 1 | `"\u{00AD}"` | SOFT HYPHEN
36
+ 2 | `"\u{2E3A}"` | TWO-EM DASH
37
+ 3 | `"\u{2E3B}"` | THREE-EM DASH
38
+ 0 | General Categories: Mn, Me, Zl, Zp, Cf (non-arabic)| Excludes ARABIC format characters
39
+ 0 | Derived Property: Default_Ignorable_Code_Point | Ignorable ranges
40
+ 0 | `"\u{1160}".."\u{11FF}"`, `"\u{D7B0}".."\u{D7FF}"` | HANGUL JUNGSEONG
41
+ 2 | East Asian Width: F, W | Full-width characters
42
+ 2 | `"\u{3400}".."\u{4DBF}"`, `"\u{4E00}".."\u{9FFF}"`, `"\u{F900}".."\u{FAFF}"`, `"\u{20000}".."\u{2FFFD}"`, `"\u{30000}".."\u{3FFFD}"` | Full-width ranges
43
+ 1 or 2 | East Asian Width: A | Ambiguous characters, user defined, default: 1
44
+ 1 | All other codepoints | -
45
+
46
+ ## Install
47
+
48
+ Install the gem with:
49
+
50
+ $ gem install unicode-display_width
51
+
52
+ Or add to your Gemfile:
53
+
54
+ gem 'unicode-display_width'
55
+
56
+ ## Usage
57
+
58
+ ```ruby
59
+ require 'unicode/display_width'
60
+
61
+ Unicode::DisplayWidth.of("⚀") # => 1
62
+ Unicode::DisplayWidth.of("一") # => 2
63
+ ```
64
+
65
+ ### Ambiguous Characters
66
+
67
+ The second parameter defines the value returned by characters defined as ambiguous:
68
+
69
+ ```ruby
70
+ Unicode::DisplayWidth.of("·", 1) # => 1
71
+ Unicode::DisplayWidth.of("·", 2) # => 2
72
+ ```
73
+
74
+ ### Encoding Notes
75
+
76
+ - Data with *BINARY* encoding is interpreted as UTF-8, if possible
77
+ - Non-UTF-8 strings are converted to UTF-8 before measuring, using the [`{invalid: :replace, undef: :replace}`) options](https://ruby-doc.org/3.3.5/encodings_rdoc.html#label-Encoding+Options)
78
+
79
+ ### Custom Overwrites
80
+
81
+ You can overwrite how to handle specific code points by passing a hash (or even a proc) as `overwrite:` parameter:
82
+
83
+ ```ruby
84
+ Unicode::DisplayWidth.of("a\tb", 1, overwrite: { "\t".ord => 10 })) # => TAB counted as 10, result is 12
85
+ ```
86
+
87
+ Please note that using overwrites disables some perfomance optimizations of this gem.
88
+
89
+ ### Emoji
90
+
91
+ If your terminal supports it, the gem detects Emoji and Emoji sequences and adjusts the width of the measured string. This can be disabled by passing `emoji: false` as an argument:
92
+
93
+ ```ruby
94
+ Unicode::DisplayWidth.of "🤾🏽‍♀️", emoji: :all # => 2
95
+ Unicode::DisplayWidth.of "🤾🏽‍♀️", emoji: false # => 5
96
+ ```
97
+
98
+ #### How this Library Handles Emoji Width
99
+
100
+ There are many Emoji which get constructed by combining other Emoji in a sequence. This makes measuring the width complicated, since terminals might either display the combined Emoji or the separate parts of the Emoji individually.
101
+
102
+ Another aspect where terminals disagree is whether Emoji characters which have a text presentation by default (width 1) should be turned into full-width (width 2) when combined with Variation Selector 16 (*U+FEOF*).
103
+
104
+ Finally, it varies if Skin Tone Modifiers can be applied to all characters or just to those with the "Emoji Base" property.
105
+
106
+ Emoji Type | Width / Comment
107
+ ------------|----------------
108
+ Basic/Single Emoji character without Variation Selector | No special handling
109
+ Basic/Single Emoji character with VS15 (Text) | No special handling
110
+ Basic/Single Emoji character with VS16 (Emoji) | 2 or East Asian Width (see table below)
111
+ Single Emoji character with Skin Tone Modifier | 2
112
+ Skin Tone Modifier used in isolation or with invalid base | 2 if Emoji mode is configured to `:rgi` / `:rgi_at`
113
+ Emoji Sequence | 2 if Emoji belongs to configured Emoji set (see table below)
114
+
115
+ #### Emoji Modes
116
+
117
+ The `emoji:` option can be used to configure which type of Emoji should be considered to have a width of 2 and if VS16-Emoji should be widened. Other sequences are treated as non-combined Emoji, so the widths of all partial Emoji add up (e.g. width of one basic Emoji + one skin tone modifier + another basic Emoji). The following Emoji settings can be used:
118
+
119
+ `emoji:` Option | VS16-Emoji Width | Emoji Sequences Width / Comment | Example Terminals
120
+ ----------------|------------------|---------------------------------|------------------
121
+ `true` or `:auto` | - | Automatically use recommended Emoji setting for your terminal | -
122
+ `:all` | 2 | 2 for all ZWJ/modifier/keycap sequences, even if they are not well-formed Emoji sequences | iTerm, foot
123
+ `:all_no_vs16` | EAW (1 or 2) | 2 for all ZWJ/modifier/keycap sequences, even if they are not well-formed Emoji sequences | WezTerm
124
+ `:possible`| 2 | 2 for all possible/well-formed Emoji sequences | ?
125
+ `:rgi` | 2 | 2 for all [RGI Emoji](https://www.unicode.org/reports/tr51/#def_rgi_set) sequences | ?
126
+ `:rgi_at` | EAW (1 or 2) | 1 or 2: Like `:rgi`, but Emoji sequences starting with a default-text Emoji have EAW | Apple Terminal
127
+ `:vs16` | 2 | 2 * number of partial Emoji (sequences never considered to represent a combined Emoji) | kitty?
128
+ `false` or `:none` | EAW (1 or 2) | No Emoji adjustments | gnome-terminal, many older terminals
129
+
130
+ - *EAW:* East Asian Width
131
+ - *RGI Emoji:* Emoji Recommended for General Interchange
132
+ - *ZWJ:* Zero-width Joiner: Codepoint `U+200D`,used in many Emoji sequences
133
+
134
+ #### Emoji Support in Terminals
135
+
136
+ Unfortunately, the level of Emoji support varies a lot between terminals. While some of them are able to display (almost) all Emoji sequences correctly, others fall back to displaying sequences of basic Emoji. When `emoji: true` or `emoji: :auto` is used, the gem will attempt to set the best fitting Emoji setting for you (e.g. `:rgi_at` on "Apple_Terminal" or `false` on Gnome's terminal widget).
137
+
138
+ Please note that Emoji display and number of terminal columns used might differs a lot. For example, it might be the case that a terminal does not understand which Emoji to display, but still manages to calculate the proper amount of terminal cells. The automatic Emoji support level per terminal only considers the latter (cursor position), not the actual Emoji image(s) displayed. Please [open an issue](https://github.com/janlelis/unicode-display_width/issues/new) if you notice your terminal application could use a better default value. Also see the [ucs-detect project](https://ucs-detect.readthedocs.io/results.html), which is a great resource that compares various terminal's Unicode/Emoji capabilities. You can visually check how your terminals renders different kind of Emoji types with the [terminal-emoji-width.rb script](https://github.com/janlelis/unicode-display_width/blob/main/misc/terminal-emoji-width.rb).
139
+
140
+ **To terminal implementors reading this:** Although the practice of giving all Emoji/ZWJ sequences a width of 2 (`:all` mode described above) has some advantages, it does not lead to a particularly good developer experience. Since there is always the possibility of well-formed Emoji that are currently not supported (non-RGI / future Unicode) appearing, those sequences will take more cells. Instead of overflowing, cutting off sequences or displaying placeholder-Emoji, could it be worthwile to implement the `:rgi` option (only known Emoji get width 2) and give those unknown Emoji the space they need? This would support the idea that the meaning of an unknown Emoji sequence can still be conveyed (without messing up the terminal at the same time). Just a thought…
141
+
142
+ ### Usage with String Extension
143
+
144
+ ```ruby
145
+ require 'unicode/display_width/string_ext'
146
+
147
+ "⚀".display_width # => 1
148
+ '一'.display_width # => 2
149
+ ```
150
+
151
+ ### Usage with Config Object
152
+
153
+ You can use a config object that allows you to save your configuration for later-reuse. This requires an extra line of code, but has the advantage that you'll need to define your string-width options only once:
154
+
155
+ ```ruby
156
+ require 'unicode/display_width'
157
+
158
+ display_width = Unicode::DisplayWidth.new(
159
+ # ambiguous: 1,
160
+ overwrite: { "A".ord => 100 },
161
+ emoji: :all,
162
+ )
163
+
164
+ display_width.of "⚀" # => 1
165
+ display_width.of "🤠‍🤢" # => 2
166
+ display_width.of "A" # => 100
167
+ ```
168
+
169
+ ### Usage from the Command-Line
170
+
171
+ Use this one-liner to print out display widths for strings from the command-line:
172
+
173
+ ```
174
+ $ gem install unicode-display_width
175
+ $ ruby -r unicode/display_width -e 'puts Unicode::DisplayWidth.of $*[0]' -- "一"
176
+ ```
177
+ Replace "一" with the actual string to measure
178
+
179
+ ## Other Implementations & Discussion
180
+
181
+ - Python: https://github.com/jquast/wcwidth
182
+ - JavaScript: https://github.com/mycoboco/wcwidth.js
183
+ - C: https://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c
184
+ - C for Julia: https://github.com/JuliaLang/utf8proc/issues/2
185
+ - Golang: https://github.com/rivo/uniseg
186
+
187
+ See [unicode-x](https://github.com/janlelis/unicode-x) for more Unicode related micro libraries.
188
+
189
+ ## Copyright & Info
190
+
191
+ - Copyright (c) 2011, 2015-2024 Jan Lelis, https://janlelis.com, released under the MIT
192
+ license
193
+ - Early versions based on runpaint's unicode-data interface: Copyright (c) 2009 Run Paint Run Run
194
+ - Unicode data: https://www.unicode.org/copyright.html#Exhibit1