brakeman 7.0.2 → 7.1.1

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 (404) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +24 -0
  3. data/README.md +1 -1
  4. data/bundle/load.rb +10 -10
  5. data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/NEWS.md +20 -1
  6. data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv/parser.rb +1 -1
  7. data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv/version.rb +1 -1
  8. data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/CHANGELOG.md +180 -4
  9. data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/FAQ.md +1 -1
  10. data/bundle/ruby/3.1.0/gems/haml-6.4.0/Gemfile +34 -0
  11. data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/MIT-LICENSE +1 -1
  12. data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/README.md +23 -34
  13. data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/REFERENCE.md +100 -171
  14. data/bundle/ruby/3.1.0/gems/haml-6.4.0/exe/haml +6 -0
  15. data/bundle/ruby/3.1.0/gems/haml-6.4.0/haml.gemspec +45 -0
  16. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/ambles.rb +20 -0
  17. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/attribute_builder.rb +162 -0
  18. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/attribute_compiler.rb +133 -0
  19. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/attribute_parser.rb +116 -0
  20. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/cli.rb +154 -0
  21. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/compiler/children_compiler.rb +155 -0
  22. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/compiler/comment_compiler.rb +51 -0
  23. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/compiler/doctype_compiler.rb +52 -0
  24. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/compiler/script_compiler.rb +114 -0
  25. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/compiler/silent_script_compiler.rb +24 -0
  26. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/compiler/tag_compiler.rb +76 -0
  27. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/compiler.rb +97 -0
  28. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/dynamic_merger.rb +67 -0
  29. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/engine.rb +59 -0
  30. data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/lib/haml/error.rb +5 -4
  31. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/escape.rb +13 -0
  32. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/escape_any.rb +21 -0
  33. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/base.rb +12 -0
  34. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/cdata.rb +20 -0
  35. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/coffee.rb +17 -0
  36. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/css.rb +33 -0
  37. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/erb.rb +10 -0
  38. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/escaped.rb +22 -0
  39. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/javascript.rb +33 -0
  40. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/less.rb +20 -0
  41. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/markdown.rb +11 -0
  42. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/plain.rb +29 -0
  43. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/preserve.rb +22 -0
  44. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/ruby.rb +10 -0
  45. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/sass.rb +15 -0
  46. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/scss.rb +15 -0
  47. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/text_base.rb +25 -0
  48. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/tilt_base.rb +59 -0
  49. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters.rb +75 -0
  50. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/force_escape.rb +29 -0
  51. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/helpers.rb +15 -0
  52. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/html.rb +22 -0
  53. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/identity.rb +13 -0
  54. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/object_ref.rb +35 -0
  55. data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/lib/haml/parser.rb +159 -24
  56. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/rails_helpers.rb +53 -0
  57. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/rails_template.rb +62 -0
  58. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/railtie.rb +10 -0
  59. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/ruby_expression.rb +32 -0
  60. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/string_splitter.rb +140 -0
  61. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/template.rb +20 -0
  62. data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/lib/haml/temple_line_counter.rb +2 -1
  63. data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/lib/haml/util.rb +19 -15
  64. data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/lib/haml/version.rb +1 -2
  65. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/whitespace.rb +8 -0
  66. data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml.rb +13 -0
  67. data/bundle/ruby/3.1.0/gems/parallel-1.27.0/lib/parallel/version.rb +4 -0
  68. data/bundle/ruby/3.1.0/gems/{parallel-1.26.3 → parallel-1.27.0}/lib/parallel.rb +1 -1
  69. data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/config.rb +5 -0
  70. data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/io/ansi.rb +7 -3
  71. data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/io.rb +2 -2
  72. data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/key_actor/emacs.rb +2 -2
  73. data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/line_editor.rb +10 -8
  74. data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/unicode/east_asian_width.rb +7 -8
  75. data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/unicode.rb +21 -15
  76. data/bundle/ruby/3.1.0/gems/reline-0.6.2/lib/reline/version.rb +3 -0
  77. data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline.rb +2 -3
  78. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/NEWS.md +145 -1
  79. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/attribute.rb +7 -8
  80. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/cdata.rb +1 -1
  81. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/child.rb +2 -3
  82. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/comment.rb +1 -1
  83. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/doctype.rb +3 -8
  84. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/document.rb +21 -5
  85. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/element.rb +53 -59
  86. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/encoding.rb +3 -6
  87. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/functions.rb +3 -3
  88. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/instruction.rb +1 -1
  89. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/namespace.rb +4 -4
  90. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/node.rb +2 -2
  91. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parsers/baseparser.rb +143 -81
  92. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parsers/xpathparser.rb +4 -4
  93. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/quickpath.rb +19 -18
  94. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/rexml.rb +1 -1
  95. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/security.rb +2 -2
  96. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/source.rb +7 -2
  97. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/text.rb +14 -17
  98. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/validation/relaxng.rb +27 -26
  99. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/validation/validation.rb +8 -8
  100. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/xpath.rb +2 -13
  101. data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/xpath_parser.rb +44 -42
  102. data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/History.rdoc +8 -0
  103. data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/lib/pt_testcase.rb +1 -1
  104. data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/lib/sexp_processor.rb +1 -1
  105. data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/CHANGES +4 -0
  106. data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/encoding.rb +1 -1
  107. data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/version.rb +1 -1
  108. data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/template.rb +6 -1
  109. data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt.rb +1 -1
  110. data/bundle/ruby/3.1.0/gems/{unicode-display_width-3.1.4 → unicode-display_width-3.2.0}/CHANGELOG.md +8 -0
  111. data/bundle/ruby/3.1.0/gems/{unicode-display_width-3.1.4 → unicode-display_width-3.2.0}/README.md +5 -5
  112. data/bundle/ruby/3.1.0/gems/unicode-display_width-3.2.0/data/display_width.marshal.gz +0 -0
  113. data/bundle/ruby/3.1.0/gems/{unicode-display_width-3.1.4 → unicode-display_width-3.2.0}/lib/unicode/display_width/constants.rb +2 -2
  114. data/bundle/ruby/3.1.0/gems/{unicode-display_width-3.1.4 → unicode-display_width-3.2.0}/lib/unicode/display_width/emoji_support.rb +5 -2
  115. data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/CHANGELOG.md +5 -0
  116. data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/Gemfile.lock +1 -1
  117. data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/README.md +4 -4
  118. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/data/emoji.marshal.gz +0 -0
  119. data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/constants.rb +3 -3
  120. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex.rb +8 -0
  121. data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated/regex_basic.rb +1 -1
  122. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_include_mqe.rb +8 -0
  123. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_include_mqe_uqe.rb +8 -0
  124. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_include_text.rb +8 -0
  125. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_picto.rb +8 -0
  126. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_picto_no_emoji.rb +8 -0
  127. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_possible.rb +8 -0
  128. data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated/regex_prop_emoji.rb +1 -1
  129. data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated/regex_prop_presentation.rb +1 -1
  130. data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated/regex_text.rb +1 -1
  131. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_valid.rb +8 -0
  132. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_valid_include_text.rb +8 -0
  133. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_well_formed.rb +8 -0
  134. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_well_formed_include_text.rb +8 -0
  135. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated_native/regex.rb +8 -0
  136. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated_native/regex_include_mqe.rb +8 -0
  137. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated_native/regex_include_mqe_uqe.rb +8 -0
  138. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated_native/regex_include_text.rb +8 -0
  139. data/lib/brakeman/app_tree.rb +56 -9
  140. data/lib/brakeman/checks/base_check.rb +5 -2
  141. data/lib/brakeman/checks/check_eol_rails.rb +1 -0
  142. data/lib/brakeman/checks/check_eol_ruby.rb +1 -0
  143. data/lib/brakeman/checks/check_render.rb +5 -0
  144. data/lib/brakeman/checks/check_sql.rb +9 -2
  145. data/lib/brakeman/commandline.rb +5 -0
  146. data/lib/brakeman/file_path.rb +4 -0
  147. data/lib/brakeman/messages.rb +1 -1
  148. data/lib/brakeman/options.rb +4 -0
  149. data/lib/brakeman/parsers/haml6_embedded.rb +23 -0
  150. data/lib/brakeman/parsers/template_parser.rb +32 -7
  151. data/lib/brakeman/processor.rb +2 -0
  152. data/lib/brakeman/processors/alias_processor.rb +9 -0
  153. data/lib/brakeman/processors/base_processor.rb +2 -0
  154. data/lib/brakeman/processors/haml6_template_processor.rb +92 -0
  155. data/lib/brakeman/processors/haml_template_processor.rb +8 -2
  156. data/lib/brakeman/processors/lib/render_helper.rb +38 -1
  157. data/lib/brakeman/processors/template_processor.rb +1 -1
  158. data/lib/brakeman/report/pager.rb +1 -1
  159. data/lib/brakeman/report/report_html.rb +1 -1
  160. data/lib/brakeman/report/report_junit.rb +4 -57
  161. data/lib/brakeman/report/templates/header.html.erb +8 -3
  162. data/lib/brakeman/report/templates/ignored_warnings.html.erb +3 -3
  163. data/lib/brakeman/tracker.rb +6 -0
  164. data/lib/brakeman/version.rb +1 -1
  165. data/lib/brakeman.rb +4 -0
  166. metadata +327 -306
  167. data/bundle/ruby/3.1.0/gems/haml-5.2.2/Gemfile +0 -16
  168. data/bundle/ruby/3.1.0/gems/haml-5.2.2/TODO +0 -24
  169. data/bundle/ruby/3.1.0/gems/haml-5.2.2/haml.gemspec +0 -45
  170. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/attribute_builder.rb +0 -219
  171. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/attribute_compiler.rb +0 -237
  172. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/attribute_parser.rb +0 -150
  173. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/buffer.rb +0 -182
  174. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/compiler.rb +0 -330
  175. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/engine.rb +0 -238
  176. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/escapable.rb +0 -77
  177. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/exec.rb +0 -347
  178. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/filters.rb +0 -399
  179. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/generator.rb +0 -42
  180. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/action_view_extensions.rb +0 -60
  181. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/action_view_mods.rb +0 -132
  182. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/action_view_xss_mods.rb +0 -60
  183. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/safe_erubi_template.rb +0 -20
  184. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/safe_erubis_template.rb +0 -33
  185. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/xss_mods.rb +0 -114
  186. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers.rb +0 -709
  187. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/options.rb +0 -273
  188. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/plugin.rb +0 -54
  189. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/railtie.rb +0 -53
  190. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/sass_rails_filter.rb +0 -47
  191. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/template/options.rb +0 -27
  192. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/template.rb +0 -39
  193. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/temple_engine.rb +0 -124
  194. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml.rb +0 -25
  195. data/bundle/ruby/3.1.0/gems/haml-5.2.2/yard/default/fulldoc/html/css/common.sass +0 -15
  196. data/bundle/ruby/3.1.0/gems/haml-5.2.2/yard/default/layout/html/footer.erb +0 -12
  197. data/bundle/ruby/3.1.0/gems/parallel-1.26.3/lib/parallel/version.rb +0 -4
  198. data/bundle/ruby/3.1.0/gems/reline-0.6.1/lib/reline/version.rb +0 -3
  199. data/bundle/ruby/3.1.0/gems/unicode-display_width-3.1.4/data/display_width.marshal.gz +0 -0
  200. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/data/emoji.marshal.gz +0 -0
  201. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex.rb +0 -8
  202. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_include_mqe.rb +0 -8
  203. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_include_mqe_uqe.rb +0 -8
  204. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_include_text.rb +0 -8
  205. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_picto.rb +0 -8
  206. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_picto_no_emoji.rb +0 -8
  207. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_possible.rb +0 -8
  208. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_valid.rb +0 -8
  209. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_valid_include_text.rb +0 -8
  210. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_well_formed.rb +0 -8
  211. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_well_formed_include_text.rb +0 -8
  212. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex.rb +0 -8
  213. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_include_mqe.rb +0 -8
  214. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_include_mqe_uqe.rb +0 -8
  215. data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_include_text.rb +0 -8
  216. /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/LICENSE.txt +0 -0
  217. /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/README.md +0 -0
  218. /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv/core_ext/array.rb +0 -0
  219. /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv/core_ext/string.rb +0 -0
  220. /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv/fields_converter.rb +0 -0
  221. /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv/input_record_separator.rb +0 -0
  222. /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv/row.rb +0 -0
  223. /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv/table.rb +0 -0
  224. /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv/writer.rb +0 -0
  225. /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv.rb +0 -0
  226. /data/bundle/ruby/3.1.0/gems/{parallel-1.26.3 → parallel-1.27.0}/MIT-LICENSE.txt +0 -0
  227. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/BSDL +0 -0
  228. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/COPYING +0 -0
  229. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/README.md +0 -0
  230. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/face.rb +0 -0
  231. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/history.rb +0 -0
  232. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/io/dumb.rb +0 -0
  233. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/io/windows.rb +0 -0
  234. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/key_actor/base.rb +0 -0
  235. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/key_actor/composite.rb +0 -0
  236. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/key_actor/vi_command.rb +0 -0
  237. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/key_actor/vi_insert.rb +0 -0
  238. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/key_actor.rb +0 -0
  239. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/key_stroke.rb +0 -0
  240. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/kill_ring.rb +0 -0
  241. /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/license_of_rb-readline +0 -0
  242. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/LICENSE.txt +0 -0
  243. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/README.md +0 -0
  244. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/attlistdecl.rb +0 -0
  245. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/dtd/attlistdecl.rb +0 -0
  246. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/dtd/dtd.rb +0 -0
  247. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/dtd/elementdecl.rb +0 -0
  248. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/dtd/entitydecl.rb +0 -0
  249. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/dtd/notationdecl.rb +0 -0
  250. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/entity.rb +0 -0
  251. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/formatters/default.rb +0 -0
  252. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/formatters/pretty.rb +0 -0
  253. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/formatters/transitive.rb +0 -0
  254. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/light/node.rb +0 -0
  255. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/output.rb +0 -0
  256. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parent.rb +0 -0
  257. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parseexception.rb +0 -0
  258. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parsers/lightparser.rb +0 -0
  259. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parsers/pullparser.rb +0 -0
  260. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parsers/sax2parser.rb +0 -0
  261. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parsers/streamparser.rb +0 -0
  262. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parsers/treeparser.rb +0 -0
  263. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parsers/ultralightparser.rb +0 -0
  264. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/sax2listener.rb +0 -0
  265. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/streamlistener.rb +0 -0
  266. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/undefinednamespaceexception.rb +0 -0
  267. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/validation/validationexception.rb +0 -0
  268. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/xmldecl.rb +0 -0
  269. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/xmltokens.rb +0 -0
  270. /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml.rb +0 -0
  271. /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/Manifest.txt +0 -0
  272. /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/README.rdoc +0 -0
  273. /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/lib/composite_sexp_processor.rb +0 -0
  274. /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/lib/sexp.rb +0 -0
  275. /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/lib/sexp_matcher.rb +0 -0
  276. /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/lib/strict_sexp.rb +0 -0
  277. /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/lib/unique.rb +0 -0
  278. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/EXPRESSIONS.md +0 -0
  279. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/Gemfile +0 -0
  280. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/LICENSE +0 -0
  281. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/README.md +0 -0
  282. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/engine.rb +0 -0
  283. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/erb/engine.rb +0 -0
  284. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/erb/parser.rb +0 -0
  285. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/erb/template.rb +0 -0
  286. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/erb/trimming.rb +0 -0
  287. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/exceptions.rb +0 -0
  288. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filter.rb +0 -0
  289. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/ambles.rb +0 -0
  290. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/code_merger.rb +0 -0
  291. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/control_flow.rb +0 -0
  292. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/dynamic_inliner.rb +0 -0
  293. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/dynamic_merger.rb +0 -0
  294. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/eraser.rb +0 -0
  295. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/escapable.rb +0 -0
  296. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/multi_flattener.rb +0 -0
  297. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/remove_bom.rb +0 -0
  298. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/static_analyzer.rb +0 -0
  299. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/static_merger.rb +0 -0
  300. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/string_splitter.rb +0 -0
  301. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/validator.rb +0 -0
  302. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/generator.rb +0 -0
  303. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/generators/array.rb +0 -0
  304. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/generators/array_buffer.rb +0 -0
  305. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/generators/erb.rb +0 -0
  306. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/generators/rails_output_buffer.rb +0 -0
  307. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/generators/string_buffer.rb +0 -0
  308. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/grammar.rb +0 -0
  309. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/html/attribute_merger.rb +0 -0
  310. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/html/attribute_remover.rb +0 -0
  311. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/html/attribute_sorter.rb +0 -0
  312. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/html/dispatcher.rb +0 -0
  313. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/html/fast.rb +0 -0
  314. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/html/filter.rb +0 -0
  315. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/html/pretty.rb +0 -0
  316. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/html/safe.rb +0 -0
  317. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/map.rb +0 -0
  318. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/mixins/dispatcher.rb +0 -0
  319. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/mixins/engine_dsl.rb +0 -0
  320. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/mixins/grammar_dsl.rb +0 -0
  321. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/mixins/options.rb +0 -0
  322. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/mixins/template.rb +0 -0
  323. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/parser.rb +0 -0
  324. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/static_analyzer.rb +0 -0
  325. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/templates/rails.rb +0 -0
  326. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/templates/tilt.rb +0 -0
  327. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/templates.rb +0 -0
  328. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/utils.rb +0 -0
  329. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple.rb +0 -0
  330. /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/temple.gemspec +0 -0
  331. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/COPYING +0 -0
  332. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/_emacs_org.rb +0 -0
  333. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/_handlebars.rb +0 -0
  334. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/_jbuilder.rb +0 -0
  335. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/_org.rb +0 -0
  336. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/asciidoc.rb +0 -0
  337. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/babel.rb +0 -0
  338. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/builder.rb +0 -0
  339. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/cli.rb +0 -0
  340. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/coffee.rb +0 -0
  341. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/commonmarker.rb +0 -0
  342. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/creole.rb +0 -0
  343. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/csv.rb +0 -0
  344. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/erb.rb +0 -0
  345. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/erubi.rb +0 -0
  346. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/etanni.rb +0 -0
  347. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/haml.rb +0 -0
  348. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/kramdown.rb +0 -0
  349. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/liquid.rb +0 -0
  350. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/livescript.rb +0 -0
  351. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/mapping.rb +0 -0
  352. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/markaby.rb +0 -0
  353. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/nokogiri.rb +0 -0
  354. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/pandoc.rb +0 -0
  355. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/pipeline.rb +0 -0
  356. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/plain.rb +0 -0
  357. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/prawn.rb +0 -0
  358. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/radius.rb +0 -0
  359. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/rdiscount.rb +0 -0
  360. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/rdoc.rb +0 -0
  361. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/redcarpet.rb +0 -0
  362. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/redcloth.rb +0 -0
  363. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/rst-pandoc.rb +0 -0
  364. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/sass.rb +0 -0
  365. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/slim.rb +0 -0
  366. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/string.rb +0 -0
  367. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/typescript.rb +0 -0
  368. /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/yajl.rb +0 -0
  369. /data/bundle/ruby/3.1.0/gems/{unicode-display_width-3.1.4 → unicode-display_width-3.2.0}/MIT-LICENSE.txt +0 -0
  370. /data/bundle/ruby/3.1.0/gems/{unicode-display_width-3.1.4 → unicode-display_width-3.2.0}/lib/unicode/display_width/index.rb +0 -0
  371. /data/bundle/ruby/3.1.0/gems/{unicode-display_width-3.1.4 → unicode-display_width-3.2.0}/lib/unicode/display_width/no_string_ext.rb +0 -0
  372. /data/bundle/ruby/3.1.0/gems/{unicode-display_width-3.1.4 → unicode-display_width-3.2.0}/lib/unicode/display_width/reline_ext.rb +0 -0
  373. /data/bundle/ruby/3.1.0/gems/{unicode-display_width-3.1.4 → unicode-display_width-3.2.0}/lib/unicode/display_width/string_ext.rb +0 -0
  374. /data/bundle/ruby/3.1.0/gems/{unicode-display_width-3.1.4 → unicode-display_width-3.2.0}/lib/unicode/display_width.rb +0 -0
  375. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/CODE_OF_CONDUCT.md +0 -0
  376. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/Gemfile +0 -0
  377. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/MIT-LICENSE.txt +0 -0
  378. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/data/generate_constants.rb +0 -0
  379. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated/regex_emoji_keycap.rb +0 -0
  380. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated/regex_prop_component.rb +0 -0
  381. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated/regex_prop_modifier.rb +0 -0
  382. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated/regex_prop_modifier_base.rb +0 -0
  383. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated/regex_text_presentation.rb +0 -0
  384. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_basic.rb +0 -0
  385. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_emoji_keycap.rb +0 -0
  386. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_picto.rb +0 -0
  387. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_picto_no_emoji.rb +0 -0
  388. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_possible.rb +0 -0
  389. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_prop_component.rb +0 -0
  390. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_prop_emoji.rb +0 -0
  391. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_prop_modifier.rb +0 -0
  392. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_prop_modifier_base.rb +0 -0
  393. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_prop_presentation.rb +0 -0
  394. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_text.rb +0 -0
  395. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_text_presentation.rb +0 -0
  396. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_valid.rb +0 -0
  397. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_valid_include_text.rb +0 -0
  398. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_well_formed.rb +0 -0
  399. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/generated_native/regex_well_formed_include_text.rb +0 -0
  400. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/index.rb +0 -0
  401. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/lazy_constants.rb +0 -0
  402. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/list.rb +0 -0
  403. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji.rb +0 -0
  404. /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/unicode-emoji.gemspec +0 -0
@@ -0,0 +1,114 @@
1
+ # frozen_string_literal: true
2
+ require 'temple/static_analyzer'
3
+ require 'haml/ruby_expression'
4
+ require 'haml/string_splitter'
5
+
6
+ module Haml
7
+ class Compiler
8
+ class ScriptCompiler
9
+ def self.find_and_preserve(input, tags)
10
+ tags = tags.map { |tag| Regexp.escape(tag) }.join('|')
11
+ re = /<(#{tags})([^>]*)>(.*?)(<\/\1>)/im
12
+ input.to_s.gsub(re) do |s|
13
+ s =~ re # Can't rely on $1, etc. existing since Rails' SafeBuffer#gsub is incompatible
14
+ "<#{$1}#{$2}>#{Haml::Helpers.preserve($3)}</#{$1}>"
15
+ end
16
+ end
17
+
18
+ def initialize(identity, options)
19
+ @identity = identity
20
+ @disable_capture = options[:disable_capture]
21
+ end
22
+
23
+ def compile(node, &block)
24
+ unless Ripper.respond_to?(:lex) # No Ripper.lex in truffleruby
25
+ return dynamic_compile(node, &block)
26
+ end
27
+
28
+ no_children = node.children.empty?
29
+ case
30
+ when no_children && node.value[:escape_interpolation]
31
+ compile_interpolated_plain(node)
32
+ when no_children && RubyExpression.string_literal?(node.value[:text])
33
+ delegate_optimization(node)
34
+ when no_children && Temple::StaticAnalyzer.static?(node.value[:text])
35
+ static_compile(node)
36
+ else
37
+ dynamic_compile(node, &block)
38
+ end
39
+ end
40
+
41
+ private
42
+
43
+ # String-interpolated plain text must be compiled with this method
44
+ # because we have to escape only interpolated values.
45
+ def compile_interpolated_plain(node)
46
+ temple = [:multi]
47
+ StringSplitter.compile(node.value[:text]).each do |type, value|
48
+ case type
49
+ when :static
50
+ temple << [:static, value]
51
+ when :dynamic
52
+ temple << [:escape, node.value[:escape_interpolation], [:dynamic, value]]
53
+ end
54
+ end
55
+ temple << [:newline]
56
+ end
57
+
58
+ # :dynamic is optimized in other filter: StringSplitter
59
+ def delegate_optimization(node)
60
+ [:multi,
61
+ [:escape, node.value[:escape_html], [:dynamic, node.value[:text]]],
62
+ [:newline],
63
+ ]
64
+ end
65
+
66
+ def static_compile(node)
67
+ str = eval(node.value[:text]).to_s
68
+ if node.value[:escape_html]
69
+ str = Haml::Util.escape_html(str)
70
+ elsif node.value[:preserve]
71
+ str = ScriptCompiler.find_and_preserve(str, %w(textarea pre code))
72
+ end
73
+ [:multi, [:static, str], [:newline]]
74
+ end
75
+
76
+ def dynamic_compile(node, &block)
77
+ var = @identity.generate
78
+ temple = compile_script_assign(var, node, &block)
79
+ temple << compile_script_result(var, node)
80
+ end
81
+
82
+ def compile_script_assign(var, node, &block)
83
+ if node.children.empty?
84
+ [:multi,
85
+ [:code, "#{var} = (#{node.value[:text]}"],
86
+ [:newline],
87
+ [:code, ')'],
88
+ ]
89
+ else
90
+ [:multi,
91
+ [:block, "#{var} = #{node.value[:text]}",
92
+ [:multi, [:newline], @disable_capture ? yield(node) : [:capture, Temple::Utils.unique_name, yield(node)]]
93
+ ],
94
+ ]
95
+ end
96
+ end
97
+
98
+ def compile_script_result(result, node)
99
+ if !node.value[:escape_html] && node.value[:preserve]
100
+ result = find_and_preserve(result)
101
+ end
102
+ [:escapeany, node.value[:escape_html], [:dynamic, result]]
103
+ end
104
+
105
+ def find_and_preserve(code)
106
+ %Q[::Haml::Compiler::ScriptCompiler.find_and_preserve(#{code}, %w(textarea pre code))]
107
+ end
108
+
109
+ def escape_html(temple)
110
+ [:escape, true, temple]
111
+ end
112
+ end
113
+ end
114
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+ module Haml
3
+ class Compiler
4
+ class SilentScriptCompiler
5
+ def compile(node, &block)
6
+ if node.children.empty?
7
+ [:multi, [:code, node.value[:text]], [:newline]]
8
+ else
9
+ compile_with_children(node, &block)
10
+ end
11
+ end
12
+
13
+ private
14
+
15
+ def compile_with_children(node, &block)
16
+ [:multi,
17
+ [:block, node.value[:text],
18
+ [:multi, [:newline], yield(node)],
19
+ ],
20
+ ]
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,76 @@
1
+ # frozen_string_literal: true
2
+ require 'haml/util'
3
+ require 'haml/attribute_compiler'
4
+ require 'haml/string_splitter'
5
+
6
+ module Haml
7
+ class Compiler
8
+ class TagCompiler
9
+ def initialize(identity, options)
10
+ @autoclose = options[:autoclose]
11
+ @identity = identity
12
+ @attribute_compiler = AttributeCompiler.new(identity, options)
13
+ end
14
+
15
+ def compile(node, &block)
16
+ attrs = @attribute_compiler.compile(node)
17
+ contents = compile_contents(node, &block)
18
+ [:html, :tag, node.value[:name], attrs, contents]
19
+ end
20
+
21
+ private
22
+
23
+ def compile_contents(node, &block)
24
+ case
25
+ when !node.children.empty?
26
+ yield(node)
27
+ when node.value[:value].nil? && self_closing?(node)
28
+ nil
29
+ when node.value[:parse]
30
+ return compile_interpolated_plain(node) if node.value[:escape_interpolation]
31
+ if Ripper.respond_to?(:lex) # No Ripper.lex in truffleruby
32
+ return delegate_optimization(node) if RubyExpression.string_literal?(node.value[:value])
33
+ return delegate_optimization(node) if Temple::StaticAnalyzer.static?(node.value[:value])
34
+ end
35
+
36
+ var = @identity.generate
37
+ [:multi,
38
+ [:code, "#{var} = (#{node.value[:value]}"],
39
+ [:newline],
40
+ [:code, ')'],
41
+ [:escape, node.value[:escape_html], [:dynamic, var]]
42
+ ]
43
+ else
44
+ [:static, node.value[:value]]
45
+ end
46
+ end
47
+
48
+ # :dynamic is optimized in other filters: StringSplitter or StaticAnalyzer
49
+ def delegate_optimization(node)
50
+ [:multi,
51
+ [:escape, node.value[:escape_html], [:dynamic, node.value[:value]]],
52
+ [:newline],
53
+ ]
54
+ end
55
+
56
+ # We should handle interpolation here to escape only interpolated values.
57
+ def compile_interpolated_plain(node)
58
+ temple = [:multi]
59
+ StringSplitter.compile(node.value[:value]).each do |type, value|
60
+ case type
61
+ when :static
62
+ temple << [:static, value]
63
+ when :dynamic
64
+ temple << [:escape, node.value[:escape_interpolation], [:dynamic, value]]
65
+ end
66
+ end
67
+ temple << [:newline]
68
+ end
69
+
70
+ def self_closing?(node)
71
+ return true if @autoclose && @autoclose.include?(node.value[:name])
72
+ node.value[:self_closing]
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,97 @@
1
+ # frozen_string_literal: true
2
+ require 'haml/compiler/children_compiler'
3
+ require 'haml/compiler/comment_compiler'
4
+ require 'haml/compiler/doctype_compiler'
5
+ require 'haml/compiler/script_compiler'
6
+ require 'haml/compiler/silent_script_compiler'
7
+ require 'haml/compiler/tag_compiler'
8
+ require 'haml/filters'
9
+ require 'haml/identity'
10
+
11
+ module Haml
12
+ class Compiler
13
+ def initialize(options = {})
14
+ identity = Identity.new
15
+ @children_compiler = ChildrenCompiler.new
16
+ @comment_compiler = CommentCompiler.new
17
+ @doctype_compiler = DoctypeCompiler.new(options)
18
+ @filter_compiler = Filters.new(options)
19
+ @script_compiler = ScriptCompiler.new(identity, options)
20
+ @silent_script_compiler = SilentScriptCompiler.new
21
+ @tag_compiler = TagCompiler.new(identity, options)
22
+ end
23
+
24
+ def call(ast)
25
+ return runtime_error(ast) if ast.is_a?(Error)
26
+ compile(ast)
27
+ rescue Error => e
28
+ runtime_error(e)
29
+ end
30
+
31
+ private
32
+
33
+ def compile(node)
34
+ case node.type
35
+ when :root
36
+ compile_children(node)
37
+ when :comment
38
+ compile_comment(node)
39
+ when :doctype
40
+ compile_doctype(node)
41
+ when :filter
42
+ compile_filter(node)
43
+ when :plain
44
+ compile_plain(node)
45
+ when :script
46
+ compile_script(node)
47
+ when :silent_script
48
+ compile_silent_script(node)
49
+ when :tag
50
+ compile_tag(node)
51
+ when :haml_comment
52
+ [:multi]
53
+ else
54
+ raise InternalError.new("Unexpected node type: #{node.type}")
55
+ end
56
+ end
57
+
58
+ def compile_children(node)
59
+ @children_compiler.compile(node) { |n| compile(n) }
60
+ end
61
+
62
+ def compile_comment(node)
63
+ @comment_compiler.compile(node) { |n| compile_children(n) }
64
+ end
65
+
66
+ def compile_doctype(node)
67
+ @doctype_compiler.compile(node)
68
+ end
69
+
70
+ def compile_filter(node)
71
+ @filter_compiler.compile(node)
72
+ end
73
+
74
+ def compile_plain(node)
75
+ [:static, node.value[:text]]
76
+ end
77
+
78
+ def compile_script(node)
79
+ @script_compiler.compile(node) { |n| compile_children(n) }
80
+ end
81
+
82
+ def compile_silent_script(node)
83
+ @silent_script_compiler.compile(node) { |n| compile_children(n) }
84
+ end
85
+
86
+ def compile_tag(node)
87
+ @tag_compiler.compile(node) { |n| compile_children(n) }
88
+ end
89
+
90
+ def runtime_error(error)
91
+ [:multi].tap do |temple|
92
+ error.line.times { temple << [:newline] } if error.line
93
+ temple << [:code, %Q[raise #{error.class}.new(%q[#{error.message}], #{error.line.inspect})]]
94
+ end
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,67 @@
1
+ # frozen_string_literal: true
2
+ module Haml
3
+ # Compile [:multi, [:static, 'foo'], [:dynamic, 'bar']] to [:dynamic, '"foo#{bar}"']
4
+ class DynamicMerger < Temple::Filter
5
+ def on_multi(*exps)
6
+ exps = exps.dup
7
+ result = [:multi]
8
+ buffer = []
9
+
10
+ until exps.empty?
11
+ type, arg = exps.first
12
+ if type == :dynamic && arg.count("\n") == 0
13
+ buffer << exps.shift
14
+ elsif type == :static && exps.size > (count = arg.count("\n")) &&
15
+ exps[1, count].all? { |e| e == [:newline] }
16
+ (1 + count).times { buffer << exps.shift }
17
+ elsif type == :newline && exps.size > (count = count_newline(exps)) &&
18
+ exps[count].first == :static && count == exps[count].last.count("\n")
19
+ (count + 1).times { buffer << exps.shift }
20
+ else
21
+ result.concat(merge_dynamic(buffer))
22
+ buffer = []
23
+ result << compile(exps.shift)
24
+ end
25
+ end
26
+ result.concat(merge_dynamic(buffer))
27
+
28
+ result.size == 2 ? result[1] : result
29
+ end
30
+
31
+ private
32
+
33
+ def merge_dynamic(exps)
34
+ # Merge exps only when they have both :static and :dynamic
35
+ unless exps.any? { |type,| type == :static } && exps.any? { |type,| type == :dynamic }
36
+ return exps
37
+ end
38
+
39
+ strlit_body = String.new
40
+ exps.each do |type, arg|
41
+ case type
42
+ when :static
43
+ strlit_body << arg.dump.sub!(/\A"/, '').sub!(/"\z/, '').gsub('\n', "\n")
44
+ when :dynamic
45
+ strlit_body << "\#{#{arg}}"
46
+ when :newline
47
+ # newline is added by `gsub('\n', "\n")`
48
+ else
49
+ raise "unexpected type #{type.inspect} is given to #merge_dynamic"
50
+ end
51
+ end
52
+ [[:dynamic, "%Q\0#{strlit_body}\0"]]
53
+ end
54
+
55
+ def count_newline(exps)
56
+ count = 0
57
+ exps.each do |exp|
58
+ if exp == [:newline]
59
+ count += 1
60
+ else
61
+ return count
62
+ end
63
+ end
64
+ return count
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+ require 'temple'
3
+ require 'haml/parser'
4
+ require 'haml/compiler'
5
+ require 'haml/html'
6
+ require 'haml/string_splitter'
7
+ require 'haml/escape'
8
+ require 'haml/escape_any'
9
+ require 'haml/force_escape'
10
+ require 'haml/dynamic_merger'
11
+ require 'haml/ambles'
12
+ require 'haml/whitespace'
13
+
14
+ module Haml
15
+ class Engine < Temple::Engine
16
+ define_options(
17
+ :buffer_class,
18
+ generator: Temple::Generators::StringBuffer,
19
+ format: :html,
20
+ attr_quote: "'",
21
+ escape_html: true,
22
+ escape_attrs: true,
23
+ autoclose: %w(area base basefont br col command embed frame
24
+ hr img input isindex keygen link menuitem meta
25
+ param source track wbr),
26
+ filename: "",
27
+ disable_capture: false,
28
+ remove_whitespace: false,
29
+ )
30
+
31
+ use Parser
32
+ use Compiler
33
+ use HTML
34
+ use StringSplitter
35
+ filter :StaticAnalyzer
36
+ use Escape
37
+ use EscapeAny
38
+ use ForceEscape
39
+ filter :ControlFlow
40
+ use Ambles
41
+ filter :MultiFlattener
42
+ use Whitespace
43
+ filter :StaticMerger
44
+ use DynamicMerger
45
+ use :Generator, -> { options[:generator] }
46
+ end
47
+
48
+ # For backward compatibility of Tilt integration. TODO: We should deprecate this
49
+ # and let Tilt have a native support of Haml 6. At least it generates warnings now.
50
+ class TempleEngine < Engine
51
+ def compile(template)
52
+ @precompiled = call(template)
53
+ end
54
+
55
+ def precompiled_with_ambles(_local_names, after_preamble:)
56
+ "#{after_preamble.tr("\n", ';')}#{@precompiled}".dup
57
+ end
58
+ end
59
+ end
@@ -1,9 +1,6 @@
1
1
  # frozen_string_literal: true
2
-
3
2
  module Haml
4
- # An exception raised by Haml code.
5
3
  class Error < StandardError
6
-
7
4
  MESSAGES = {
8
5
  bad_script_indent: '"%s" is indented at wrong level: expected %d, but was at %d.',
9
6
  cant_run_filter: 'Can\'t run "%s" filter; you must require its dependencies first',
@@ -61,5 +58,9 @@ END
61
58
  # except in that it's a subclass of {Haml::Error}.
62
59
  class SyntaxError < Error; end
63
60
 
64
- class InvalidAttributeNameError < SyntaxError; end
61
+ # An invalid filter name was used.
62
+ class FilterNotFound < Error; end
63
+
64
+ # InternalError means that you hit a bug of Haml itself.
65
+ class InternalError < Error; end
65
66
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+ require 'haml/util'
3
+
4
+ module Haml
5
+ class Escape < Temple::Filters::Escapable
6
+ def initialize(opts = {})
7
+ super
8
+ @escape_code = options[:escape_code] ||
9
+ "::Haml::Util.escape_html#{options[:use_html_safe] ? '_safe' : ''}((%s))"
10
+ @escaper = eval("proc {|v| #{@escape_code % 'v'} }")
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+ require 'haml/escape'
3
+
4
+ module Haml
5
+ # This module allows Temple::Filter to dispatch :fescape on `#compile`.
6
+ module EscapeanyDispathcer
7
+ def on_escapeany(flag, exp)
8
+ [:escapeany, flag, compile(exp)]
9
+ end
10
+ end
11
+ ::Temple::Filter.include EscapeanyDispathcer
12
+
13
+ # Unlike Haml::Escape, this calls to_s when not escaped.
14
+ class EscapeAny < Escape
15
+ alias_method :on_escapeany, :on_escape
16
+
17
+ def on_dynamic(value)
18
+ [:dynamic, @escape ? @escape_code % value : "(#{value}).to_s"]
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+ require 'haml/util'
3
+
4
+ module Haml
5
+ class Filters
6
+ class Base
7
+ def initialize(options = {})
8
+ @format = options[:format]
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+ module Haml
3
+ class Filters
4
+ class Cdata < TextBase
5
+ def compile(node)
6
+ compile_cdata(node)
7
+ end
8
+
9
+ private
10
+
11
+ def compile_cdata(node)
12
+ temple = [:multi]
13
+ temple << [:static, "<![CDATA[\n"]
14
+ compile_text!(temple, node, ' ')
15
+ temple << [:static, "\n]]>"]
16
+ temple
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+ module Haml
3
+ class Filters
4
+ class Coffee < TiltBase
5
+ def compile(node)
6
+ require 'tilt/coffee' if explicit_require?('coffee')
7
+ temple = [:multi]
8
+ temple << [:static, "<script>\n"]
9
+ temple << compile_with_tilt(node, 'coffee', indent_width: 2)
10
+ temple << [:static, "</script>"]
11
+ temple
12
+ end
13
+ end
14
+
15
+ CoffeeScript = Coffee
16
+ end
17
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+ module Haml
3
+ class Filters
4
+ class Css < TextBase
5
+ def compile(node)
6
+ case @format
7
+ when :xhtml
8
+ compile_xhtml(node)
9
+ else
10
+ compile_html(node)
11
+ end
12
+ end
13
+
14
+ private
15
+
16
+ def compile_html(node)
17
+ temple = [:multi]
18
+ temple << [:static, "<style>\n"]
19
+ compile_text!(temple, node, ' ')
20
+ temple << [:static, "\n</style>"]
21
+ temple
22
+ end
23
+
24
+ def compile_xhtml(node)
25
+ temple = [:multi]
26
+ temple << [:static, "<style type='text/css'>\n /*<![CDATA[*/\n"]
27
+ compile_text!(temple, node, ' ')
28
+ temple << [:static, "\n /*]]>*/\n</style>"]
29
+ temple
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+ module Haml
3
+ class Filters
4
+ class Erb < TiltBase
5
+ def compile(node)
6
+ precompiled_with_tilt(node, 'erb')
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+ module Haml
3
+ class Filters
4
+ class Escaped < Base
5
+ def compile(node)
6
+ text = node.value[:text].rstrip
7
+ temple = compile_text(text)
8
+ [:escape, true, temple]
9
+ end
10
+
11
+ private
12
+
13
+ def compile_text(text)
14
+ if ::Haml::Util.contains_interpolation?(text)
15
+ [:dynamic, ::Haml::Util.unescape_interpolation(text)]
16
+ else
17
+ [:static, text]
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+ module Haml
3
+ class Filters
4
+ class Javascript < TextBase
5
+ def compile(node)
6
+ case @format
7
+ when :xhtml
8
+ compile_xhtml(node)
9
+ else
10
+ compile_html(node)
11
+ end
12
+ end
13
+
14
+ private
15
+
16
+ def compile_html(node)
17
+ temple = [:multi]
18
+ temple << [:static, "<script>\n"]
19
+ compile_text!(temple, node, ' ')
20
+ temple << [:static, "\n</script>"]
21
+ temple
22
+ end
23
+
24
+ def compile_xhtml(node)
25
+ temple = [:multi]
26
+ temple << [:static, "<script type='text/javascript'>\n //<![CDATA[\n"]
27
+ compile_text!(temple, node, ' ')
28
+ temple << [:static, "\n //]]>\n</script>"]
29
+ temple
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+ # LESS support is deprecated since it requires therubyracer.gem,
3
+ # which is hard to maintain.
4
+ #
5
+ # It's not supported in Sprockets 3.0+ too.
6
+ # https://github.com/sstephenson/sprockets/pull/547
7
+ module Haml
8
+ class Filters
9
+ class Less < TiltBase
10
+ def compile(node)
11
+ require 'tilt/less' if explicit_require?('less')
12
+ temple = [:multi]
13
+ temple << [:static, "<style>\n"]
14
+ temple << compile_with_tilt(node, 'less', indent_width: 2)
15
+ temple << [:static, '</style>']
16
+ temple
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+ module Haml
3
+ class Filters
4
+ class Markdown < TiltBase
5
+ def compile(node)
6
+ require 'tilt/redcarpet' if explicit_require?('markdown')
7
+ compile_with_tilt(node, 'markdown')
8
+ end
9
+ end
10
+ end
11
+ end