brakeman 7.0.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 (541) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +11 -0
  3. data/bundle/load.rb +16 -16
  4. data/bundle/ruby/{3.1.0/gems/csv-3.3.3 → 3.2.0/gems/csv-3.3.5}/NEWS.md +20 -1
  5. data/bundle/ruby/{3.1.0/gems/csv-3.3.3 → 3.2.0/gems/csv-3.3.5}/lib/csv/parser.rb +1 -1
  6. data/bundle/ruby/{3.1.0/gems/csv-3.3.3 → 3.2.0/gems/csv-3.3.5}/lib/csv/version.rb +1 -1
  7. data/bundle/ruby/{3.1.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.3.0}/CHANGELOG.md +168 -4
  8. data/bundle/ruby/{3.1.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.3.0}/FAQ.md +1 -1
  9. data/bundle/ruby/3.2.0/gems/haml-6.3.0/Gemfile +27 -0
  10. data/bundle/ruby/{3.1.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.3.0}/MIT-LICENSE +1 -1
  11. data/bundle/ruby/{3.1.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.3.0}/README.md +22 -34
  12. data/bundle/ruby/{3.1.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.3.0}/REFERENCE.md +95 -159
  13. data/bundle/ruby/3.2.0/gems/haml-6.3.0/exe/haml +6 -0
  14. data/bundle/ruby/3.2.0/gems/haml-6.3.0/haml.gemspec +43 -0
  15. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/ambles.rb +20 -0
  16. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/attribute_builder.rb +162 -0
  17. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/attribute_compiler.rb +133 -0
  18. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/attribute_parser.rb +116 -0
  19. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/cli.rb +154 -0
  20. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/compiler/children_compiler.rb +155 -0
  21. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/compiler/comment_compiler.rb +51 -0
  22. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/compiler/doctype_compiler.rb +52 -0
  23. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/compiler/script_compiler.rb +114 -0
  24. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/compiler/silent_script_compiler.rb +24 -0
  25. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/compiler/tag_compiler.rb +76 -0
  26. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/compiler.rb +97 -0
  27. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/dynamic_merger.rb +67 -0
  28. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/engine.rb +59 -0
  29. data/bundle/ruby/{3.1.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.3.0}/lib/haml/error.rb +5 -4
  30. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/escape.rb +13 -0
  31. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/escape_any.rb +21 -0
  32. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/base.rb +12 -0
  33. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/cdata.rb +20 -0
  34. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/coffee.rb +17 -0
  35. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/css.rb +33 -0
  36. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/erb.rb +10 -0
  37. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/escaped.rb +22 -0
  38. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/javascript.rb +33 -0
  39. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/less.rb +20 -0
  40. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/markdown.rb +11 -0
  41. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/plain.rb +29 -0
  42. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/preserve.rb +22 -0
  43. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/ruby.rb +10 -0
  44. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/sass.rb +15 -0
  45. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/scss.rb +15 -0
  46. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/text_base.rb +25 -0
  47. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters/tilt_base.rb +59 -0
  48. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/filters.rb +75 -0
  49. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/force_escape.rb +29 -0
  50. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/helpers.rb +15 -0
  51. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/html.rb +22 -0
  52. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/identity.rb +13 -0
  53. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/object_ref.rb +35 -0
  54. data/bundle/ruby/{3.1.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.3.0}/lib/haml/parser.rb +158 -23
  55. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/rails_helpers.rb +53 -0
  56. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/rails_template.rb +62 -0
  57. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/railtie.rb +10 -0
  58. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/ruby_expression.rb +32 -0
  59. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/string_splitter.rb +140 -0
  60. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/template.rb +20 -0
  61. data/bundle/ruby/{3.1.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.3.0}/lib/haml/temple_line_counter.rb +2 -1
  62. data/bundle/ruby/{3.1.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.3.0}/lib/haml/util.rb +19 -15
  63. data/bundle/ruby/{3.1.0/gems/haml-5.2.2 → 3.2.0/gems/haml-6.3.0}/lib/haml/version.rb +1 -2
  64. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml/whitespace.rb +8 -0
  65. data/bundle/ruby/3.2.0/gems/haml-6.3.0/lib/haml.rb +13 -0
  66. data/bundle/ruby/3.2.0/gems/parallel-1.27.0/lib/parallel/version.rb +4 -0
  67. data/bundle/ruby/{3.1.0/gems/parallel-1.26.3 → 3.2.0/gems/parallel-1.27.0}/lib/parallel.rb +1 -1
  68. data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/template.rb +6 -1
  69. data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt.rb +1 -1
  70. data/lib/brakeman/app_tree.rb +16 -4
  71. data/lib/brakeman/checks/check_eol_rails.rb +1 -0
  72. data/lib/brakeman/checks/check_eol_ruby.rb +1 -0
  73. data/lib/brakeman/commandline.rb +5 -0
  74. data/lib/brakeman/messages.rb +1 -1
  75. data/lib/brakeman/options.rb +4 -0
  76. data/lib/brakeman/parsers/haml6_embedded.rb +23 -0
  77. data/lib/brakeman/parsers/template_parser.rb +32 -7
  78. data/lib/brakeman/processor.rb +2 -0
  79. data/lib/brakeman/processors/base_processor.rb +2 -0
  80. data/lib/brakeman/processors/haml6_template_processor.rb +92 -0
  81. data/lib/brakeman/processors/haml_template_processor.rb +7 -1
  82. data/lib/brakeman/processors/lib/render_helper.rb +38 -1
  83. data/lib/brakeman/processors/template_processor.rb +1 -1
  84. data/lib/brakeman/report/report_html.rb +1 -1
  85. data/lib/brakeman/report/report_junit.rb +4 -57
  86. data/lib/brakeman/report/templates/header.html.erb +7 -2
  87. data/lib/brakeman/report/templates/ignored_warnings.html.erb +3 -3
  88. data/lib/brakeman/tracker.rb +6 -0
  89. data/lib/brakeman/version.rb +1 -1
  90. data/lib/brakeman.rb +4 -0
  91. metadata +490 -469
  92. data/bundle/ruby/3.1.0/gems/haml-5.2.2/Gemfile +0 -16
  93. data/bundle/ruby/3.1.0/gems/haml-5.2.2/TODO +0 -24
  94. data/bundle/ruby/3.1.0/gems/haml-5.2.2/haml.gemspec +0 -45
  95. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/attribute_builder.rb +0 -219
  96. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/attribute_compiler.rb +0 -237
  97. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/attribute_parser.rb +0 -150
  98. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/buffer.rb +0 -182
  99. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/compiler.rb +0 -330
  100. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/engine.rb +0 -238
  101. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/escapable.rb +0 -77
  102. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/exec.rb +0 -347
  103. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/filters.rb +0 -399
  104. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/generator.rb +0 -42
  105. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/action_view_extensions.rb +0 -60
  106. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/action_view_mods.rb +0 -132
  107. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/action_view_xss_mods.rb +0 -60
  108. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/safe_erubi_template.rb +0 -20
  109. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/safe_erubis_template.rb +0 -33
  110. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/xss_mods.rb +0 -114
  111. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers.rb +0 -709
  112. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/options.rb +0 -273
  113. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/plugin.rb +0 -54
  114. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/railtie.rb +0 -53
  115. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/sass_rails_filter.rb +0 -47
  116. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/template/options.rb +0 -27
  117. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/template.rb +0 -39
  118. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/temple_engine.rb +0 -124
  119. data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml.rb +0 -25
  120. data/bundle/ruby/3.1.0/gems/haml-5.2.2/yard/default/fulldoc/html/css/common.sass +0 -15
  121. data/bundle/ruby/3.1.0/gems/haml-5.2.2/yard/default/layout/html/footer.erb +0 -12
  122. data/bundle/ruby/3.1.0/gems/parallel-1.26.3/lib/parallel/version.rb +0 -4
  123. /data/bundle/ruby/{3.1.0/gems/csv-3.3.3 → 3.2.0/gems/csv-3.3.5}/LICENSE.txt +0 -0
  124. /data/bundle/ruby/{3.1.0/gems/csv-3.3.3 → 3.2.0/gems/csv-3.3.5}/README.md +0 -0
  125. /data/bundle/ruby/{3.1.0/gems/csv-3.3.3 → 3.2.0/gems/csv-3.3.5}/lib/csv/core_ext/array.rb +0 -0
  126. /data/bundle/ruby/{3.1.0/gems/csv-3.3.3 → 3.2.0/gems/csv-3.3.5}/lib/csv/core_ext/string.rb +0 -0
  127. /data/bundle/ruby/{3.1.0/gems/csv-3.3.3 → 3.2.0/gems/csv-3.3.5}/lib/csv/fields_converter.rb +0 -0
  128. /data/bundle/ruby/{3.1.0/gems/csv-3.3.3 → 3.2.0/gems/csv-3.3.5}/lib/csv/input_record_separator.rb +0 -0
  129. /data/bundle/ruby/{3.1.0/gems/csv-3.3.3 → 3.2.0/gems/csv-3.3.5}/lib/csv/row.rb +0 -0
  130. /data/bundle/ruby/{3.1.0/gems/csv-3.3.3 → 3.2.0/gems/csv-3.3.5}/lib/csv/table.rb +0 -0
  131. /data/bundle/ruby/{3.1.0/gems/csv-3.3.3 → 3.2.0/gems/csv-3.3.5}/lib/csv/writer.rb +0 -0
  132. /data/bundle/ruby/{3.1.0/gems/csv-3.3.3 → 3.2.0/gems/csv-3.3.5}/lib/csv.rb +0 -0
  133. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/CHANGES.txt +0 -0
  134. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/MIT-LICENSE +0 -0
  135. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/README.txt +0 -0
  136. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/contrib/erubis +0 -0
  137. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/contrib/erubis-run.rb +0 -0
  138. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/contrib/inline-require +0 -0
  139. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/context.rb +0 -0
  140. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/converter.rb +0 -0
  141. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/ec.rb +0 -0
  142. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/ecpp.rb +0 -0
  143. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/ejava.rb +0 -0
  144. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/ejavascript.rb +0 -0
  145. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/enhanced.rb +0 -0
  146. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb +0 -0
  147. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/ephp.rb +0 -0
  148. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/eruby.rb +0 -0
  149. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/escheme.rb +0 -0
  150. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine/optimized.rb +0 -0
  151. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/engine.rb +0 -0
  152. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/enhancer.rb +0 -0
  153. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/error.rb +0 -0
  154. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/evaluator.rb +0 -0
  155. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/generator.rb +0 -0
  156. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/helper.rb +0 -0
  157. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/helpers/rails_form_helper.rb +0 -0
  158. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/helpers/rails_helper.rb +0 -0
  159. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/local-setting.rb +0 -0
  160. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/main.rb +0 -0
  161. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/preprocessing.rb +0 -0
  162. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/tiny.rb +0 -0
  163. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis/util.rb +0 -0
  164. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/lib/erubis.rb +0 -0
  165. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/erubis-2.7.0/setup.rb +0 -0
  166. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/AUTHORS +0 -0
  167. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/COPYING +0 -0
  168. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/Changelog.md +0 -0
  169. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/Gemfile +0 -0
  170. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/LICENSE +0 -0
  171. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/README.md +0 -0
  172. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/TODO +0 -0
  173. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/highline.gemspec +0 -0
  174. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/lib/highline/builtin_styles.rb +0 -0
  175. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/lib/highline/color_scheme.rb +0 -0
  176. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/lib/highline/compatibility.rb +0 -0
  177. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/lib/highline/custom_errors.rb +0 -0
  178. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/lib/highline/import.rb +0 -0
  179. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/lib/highline/io_console_compatible.rb +0 -0
  180. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/lib/highline/list.rb +0 -0
  181. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/lib/highline/list_renderer.rb +0 -0
  182. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/lib/highline/menu/item.rb +0 -0
  183. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/lib/highline/menu.rb +0 -0
  184. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/lib/highline/paginator.rb +0 -0
  185. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/lib/highline/question/answer_converter.rb +0 -0
  186. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/lib/highline/question.rb +0 -0
  187. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/lib/highline/question_asker.rb +0 -0
  188. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/lib/highline/simulate.rb +0 -0
  189. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/lib/highline/statement.rb +0 -0
  190. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/lib/highline/string.rb +0 -0
  191. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/lib/highline/string_extensions.rb +0 -0
  192. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/lib/highline/style.rb +0 -0
  193. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/lib/highline/template_renderer.rb +0 -0
  194. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/lib/highline/terminal/io_console.rb +0 -0
  195. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/lib/highline/terminal/ncurses.rb +0 -0
  196. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/lib/highline/terminal/unix_stty.rb +0 -0
  197. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/lib/highline/terminal.rb +0 -0
  198. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/lib/highline/version.rb +0 -0
  199. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/lib/highline/wrapper.rb +0 -0
  200. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/highline-3.1.2/lib/highline.rb +0 -0
  201. /data/bundle/ruby/{3.1.0/gems/parallel-1.26.3 → 3.2.0/gems/parallel-1.27.0}/MIT-LICENSE.txt +0 -0
  202. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/reline-0.6.1/BSDL +0 -0
  203. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/reline-0.6.1/COPYING +0 -0
  204. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/reline-0.6.1/README.md +0 -0
  205. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/reline-0.6.1/lib/reline/config.rb +0 -0
  206. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/reline-0.6.1/lib/reline/face.rb +0 -0
  207. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/reline-0.6.1/lib/reline/history.rb +0 -0
  208. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/reline-0.6.1/lib/reline/io/ansi.rb +0 -0
  209. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/reline-0.6.1/lib/reline/io/dumb.rb +0 -0
  210. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/reline-0.6.1/lib/reline/io/windows.rb +0 -0
  211. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/reline-0.6.1/lib/reline/io.rb +0 -0
  212. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/reline-0.6.1/lib/reline/key_actor/base.rb +0 -0
  213. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/reline-0.6.1/lib/reline/key_actor/composite.rb +0 -0
  214. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/reline-0.6.1/lib/reline/key_actor/emacs.rb +0 -0
  215. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/reline-0.6.1/lib/reline/key_actor/vi_command.rb +0 -0
  216. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/reline-0.6.1/lib/reline/key_actor/vi_insert.rb +0 -0
  217. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/reline-0.6.1/lib/reline/key_actor.rb +0 -0
  218. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/reline-0.6.1/lib/reline/key_stroke.rb +0 -0
  219. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/reline-0.6.1/lib/reline/kill_ring.rb +0 -0
  220. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/reline-0.6.1/lib/reline/line_editor.rb +0 -0
  221. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/reline-0.6.1/lib/reline/unicode/east_asian_width.rb +0 -0
  222. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/reline-0.6.1/lib/reline/unicode.rb +0 -0
  223. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/reline-0.6.1/lib/reline/version.rb +0 -0
  224. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/reline-0.6.1/lib/reline.rb +0 -0
  225. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/reline-0.6.1/license_of_rb-readline +0 -0
  226. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/LICENSE.txt +0 -0
  227. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/NEWS.md +0 -0
  228. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/README.md +0 -0
  229. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/attlistdecl.rb +0 -0
  230. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/attribute.rb +0 -0
  231. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/cdata.rb +0 -0
  232. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/child.rb +0 -0
  233. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/comment.rb +0 -0
  234. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/doctype.rb +0 -0
  235. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/document.rb +0 -0
  236. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/dtd/attlistdecl.rb +0 -0
  237. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/dtd/dtd.rb +0 -0
  238. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/dtd/elementdecl.rb +0 -0
  239. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/dtd/entitydecl.rb +0 -0
  240. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/dtd/notationdecl.rb +0 -0
  241. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/element.rb +0 -0
  242. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/encoding.rb +0 -0
  243. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/entity.rb +0 -0
  244. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/formatters/default.rb +0 -0
  245. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/formatters/pretty.rb +0 -0
  246. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/formatters/transitive.rb +0 -0
  247. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/functions.rb +0 -0
  248. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/instruction.rb +0 -0
  249. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/light/node.rb +0 -0
  250. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/namespace.rb +0 -0
  251. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/node.rb +0 -0
  252. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/output.rb +0 -0
  253. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/parent.rb +0 -0
  254. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/parseexception.rb +0 -0
  255. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/parsers/baseparser.rb +0 -0
  256. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/parsers/lightparser.rb +0 -0
  257. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/parsers/pullparser.rb +0 -0
  258. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/parsers/sax2parser.rb +0 -0
  259. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/parsers/streamparser.rb +0 -0
  260. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/parsers/treeparser.rb +0 -0
  261. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/parsers/ultralightparser.rb +0 -0
  262. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/parsers/xpathparser.rb +0 -0
  263. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/quickpath.rb +0 -0
  264. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/rexml.rb +0 -0
  265. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/sax2listener.rb +0 -0
  266. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/security.rb +0 -0
  267. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/source.rb +0 -0
  268. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/streamlistener.rb +0 -0
  269. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/text.rb +0 -0
  270. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/undefinednamespaceexception.rb +0 -0
  271. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/validation/relaxng.rb +0 -0
  272. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/validation/validation.rb +0 -0
  273. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/validation/validationexception.rb +0 -0
  274. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/xmldecl.rb +0 -0
  275. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/xmltokens.rb +0 -0
  276. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/xpath.rb +0 -0
  277. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml/xpath_parser.rb +0 -0
  278. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/rexml-3.4.1/lib/rexml.rb +0 -0
  279. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby2ruby-2.5.2/History.rdoc +0 -0
  280. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby2ruby-2.5.2/Manifest.txt +0 -0
  281. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby2ruby-2.5.2/README.rdoc +0 -0
  282. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby2ruby-2.5.2/lib/ruby2ruby.rb +0 -0
  283. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/History.rdoc +0 -0
  284. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/Manifest.txt +0 -0
  285. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/README.rdoc +0 -0
  286. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/compare/normalize.rb +0 -0
  287. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/debugging.md +0 -0
  288. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/gauntlet.md +0 -0
  289. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/rp_extensions.rb +0 -0
  290. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/rp_stringscanner.rb +0 -0
  291. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby20_parser.rb +0 -0
  292. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby20_parser.y +0 -0
  293. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby21_parser.rb +0 -0
  294. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby21_parser.y +0 -0
  295. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby22_parser.rb +0 -0
  296. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby22_parser.y +0 -0
  297. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby23_parser.rb +0 -0
  298. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby23_parser.y +0 -0
  299. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby24_parser.rb +0 -0
  300. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby24_parser.y +0 -0
  301. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby25_parser.rb +0 -0
  302. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby25_parser.y +0 -0
  303. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby26_parser.rb +0 -0
  304. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby26_parser.y +0 -0
  305. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby27_parser.rb +0 -0
  306. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby27_parser.y +0 -0
  307. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby30_parser.rb +0 -0
  308. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby30_parser.y +0 -0
  309. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby31_parser.rb +0 -0
  310. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby31_parser.y +0 -0
  311. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby32_parser.rb +0 -0
  312. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby32_parser.y +0 -0
  313. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby3_parser.yy +0 -0
  314. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby_lexer.rb +0 -0
  315. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby_lexer.rex +0 -0
  316. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby_lexer.rex.rb +0 -0
  317. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby_lexer_strings.rb +0 -0
  318. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby_parser.rb +0 -0
  319. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby_parser.yy +0 -0
  320. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/lib/ruby_parser_extras.rb +0 -0
  321. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/tools/munge.rb +0 -0
  322. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/ruby_parser-3.20.3/tools/ripper.rb +0 -0
  323. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/sexp_processor-4.17.3/History.rdoc +0 -0
  324. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/sexp_processor-4.17.3/Manifest.txt +0 -0
  325. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/sexp_processor-4.17.3/README.rdoc +0 -0
  326. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/sexp_processor-4.17.3/lib/composite_sexp_processor.rb +0 -0
  327. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/sexp_processor-4.17.3/lib/pt_testcase.rb +0 -0
  328. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/sexp_processor-4.17.3/lib/sexp.rb +0 -0
  329. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/sexp_processor-4.17.3/lib/sexp_matcher.rb +0 -0
  330. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/sexp_processor-4.17.3/lib/sexp_processor.rb +0 -0
  331. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/sexp_processor-4.17.3/lib/strict_sexp.rb +0 -0
  332. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/sexp_processor-4.17.3/lib/unique.rb +0 -0
  333. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/CHANGES +0 -0
  334. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/Gemfile +0 -0
  335. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/LICENSE +0 -0
  336. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/README.jp.md +0 -0
  337. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/README.md +0 -0
  338. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/code_attributes.rb +0 -0
  339. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/command.rb +0 -0
  340. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/controls.rb +0 -0
  341. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/do_inserter.rb +0 -0
  342. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/embedded.rb +0 -0
  343. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/end_inserter.rb +0 -0
  344. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/engine.rb +0 -0
  345. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/erb_converter.rb +0 -0
  346. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/filter.rb +0 -0
  347. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/grammar.rb +0 -0
  348. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/include.rb +0 -0
  349. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/interpolation.rb +0 -0
  350. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/logic_less/context.rb +0 -0
  351. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/logic_less/filter.rb +0 -0
  352. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/logic_less.rb +0 -0
  353. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/parser.rb +0 -0
  354. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/railtie.rb +0 -0
  355. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/smart/escaper.rb +0 -0
  356. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/smart/filter.rb +0 -0
  357. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/smart/parser.rb +0 -0
  358. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/smart.rb +0 -0
  359. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/splat/builder.rb +0 -0
  360. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/splat/filter.rb +0 -0
  361. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/template.rb +0 -0
  362. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/translator.rb +0 -0
  363. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim/version.rb +0 -0
  364. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/lib/slim.rb +0 -0
  365. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/slim-5.2.1/slim.gemspec +0 -0
  366. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/CHANGES +0 -0
  367. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/EXPRESSIONS.md +0 -0
  368. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/Gemfile +0 -0
  369. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/LICENSE +0 -0
  370. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/README.md +0 -0
  371. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/engine.rb +0 -0
  372. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/erb/engine.rb +0 -0
  373. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/erb/parser.rb +0 -0
  374. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/erb/template.rb +0 -0
  375. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/erb/trimming.rb +0 -0
  376. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/exceptions.rb +0 -0
  377. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/filter.rb +0 -0
  378. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/filters/ambles.rb +0 -0
  379. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/filters/code_merger.rb +0 -0
  380. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/filters/control_flow.rb +0 -0
  381. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/filters/dynamic_inliner.rb +0 -0
  382. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/filters/dynamic_merger.rb +0 -0
  383. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/filters/encoding.rb +0 -0
  384. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/filters/eraser.rb +0 -0
  385. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/filters/escapable.rb +0 -0
  386. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/filters/multi_flattener.rb +0 -0
  387. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/filters/remove_bom.rb +0 -0
  388. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/filters/static_analyzer.rb +0 -0
  389. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/filters/static_merger.rb +0 -0
  390. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/filters/string_splitter.rb +0 -0
  391. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/filters/validator.rb +0 -0
  392. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/generator.rb +0 -0
  393. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/generators/array.rb +0 -0
  394. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/generators/array_buffer.rb +0 -0
  395. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/generators/erb.rb +0 -0
  396. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/generators/rails_output_buffer.rb +0 -0
  397. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/generators/string_buffer.rb +0 -0
  398. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/grammar.rb +0 -0
  399. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/html/attribute_merger.rb +0 -0
  400. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/html/attribute_remover.rb +0 -0
  401. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/html/attribute_sorter.rb +0 -0
  402. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/html/dispatcher.rb +0 -0
  403. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/html/fast.rb +0 -0
  404. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/html/filter.rb +0 -0
  405. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/html/pretty.rb +0 -0
  406. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/html/safe.rb +0 -0
  407. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/map.rb +0 -0
  408. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/mixins/dispatcher.rb +0 -0
  409. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/mixins/engine_dsl.rb +0 -0
  410. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/mixins/grammar_dsl.rb +0 -0
  411. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/mixins/options.rb +0 -0
  412. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/mixins/template.rb +0 -0
  413. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/parser.rb +0 -0
  414. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/static_analyzer.rb +0 -0
  415. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/templates/rails.rb +0 -0
  416. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/templates/tilt.rb +0 -0
  417. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/templates.rb +0 -0
  418. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/utils.rb +0 -0
  419. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple/version.rb +0 -0
  420. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/lib/temple.rb +0 -0
  421. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/temple-0.10.3/temple.gemspec +0 -0
  422. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/terminal-table-4.0.0/Gemfile +0 -0
  423. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/terminal-table-4.0.0/History.rdoc +0 -0
  424. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/terminal-table-4.0.0/LICENSE.txt +0 -0
  425. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/terminal-table-4.0.0/Manifest +0 -0
  426. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/terminal-table-4.0.0/README.md +0 -0
  427. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/terminal-table-4.0.0/Todo.rdoc +0 -0
  428. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/terminal-table-4.0.0/lib/terminal-table/cell.rb +0 -0
  429. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/terminal-table-4.0.0/lib/terminal-table/import.rb +0 -0
  430. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/terminal-table-4.0.0/lib/terminal-table/row.rb +0 -0
  431. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/terminal-table-4.0.0/lib/terminal-table/separator.rb +0 -0
  432. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/terminal-table-4.0.0/lib/terminal-table/style.rb +0 -0
  433. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/terminal-table-4.0.0/lib/terminal-table/table.rb +0 -0
  434. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/terminal-table-4.0.0/lib/terminal-table/table_helper.rb +0 -0
  435. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/terminal-table-4.0.0/lib/terminal-table/util.rb +0 -0
  436. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/terminal-table-4.0.0/lib/terminal-table/version.rb +0 -0
  437. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/terminal-table-4.0.0/lib/terminal-table.rb +0 -0
  438. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/terminal-table-4.0.0/terminal-table.gemspec +0 -0
  439. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/COPYING +0 -0
  440. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/_emacs_org.rb +0 -0
  441. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/_handlebars.rb +0 -0
  442. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/_jbuilder.rb +0 -0
  443. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/_org.rb +0 -0
  444. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/asciidoc.rb +0 -0
  445. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/babel.rb +0 -0
  446. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/builder.rb +0 -0
  447. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/cli.rb +0 -0
  448. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/coffee.rb +0 -0
  449. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/commonmarker.rb +0 -0
  450. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/creole.rb +0 -0
  451. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/csv.rb +0 -0
  452. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/erb.rb +0 -0
  453. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/erubi.rb +0 -0
  454. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/etanni.rb +0 -0
  455. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/haml.rb +0 -0
  456. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/kramdown.rb +0 -0
  457. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/liquid.rb +0 -0
  458. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/livescript.rb +0 -0
  459. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/mapping.rb +0 -0
  460. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/markaby.rb +0 -0
  461. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/nokogiri.rb +0 -0
  462. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/pandoc.rb +0 -0
  463. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/pipeline.rb +0 -0
  464. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/plain.rb +0 -0
  465. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/prawn.rb +0 -0
  466. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/radius.rb +0 -0
  467. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/rdiscount.rb +0 -0
  468. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/rdoc.rb +0 -0
  469. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/redcarpet.rb +0 -0
  470. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/redcloth.rb +0 -0
  471. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/rst-pandoc.rb +0 -0
  472. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/sass.rb +0 -0
  473. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/slim.rb +0 -0
  474. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/string.rb +0 -0
  475. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/typescript.rb +0 -0
  476. /data/bundle/ruby/{3.1.0/gems/tilt-2.6.0 → 3.2.0/gems/tilt-2.6.1}/lib/tilt/yajl.rb +0 -0
  477. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-display_width-3.1.4/CHANGELOG.md +0 -0
  478. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-display_width-3.1.4/MIT-LICENSE.txt +0 -0
  479. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-display_width-3.1.4/README.md +0 -0
  480. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-display_width-3.1.4/data/display_width.marshal.gz +0 -0
  481. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-display_width-3.1.4/lib/unicode/display_width/constants.rb +0 -0
  482. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-display_width-3.1.4/lib/unicode/display_width/emoji_support.rb +0 -0
  483. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-display_width-3.1.4/lib/unicode/display_width/index.rb +0 -0
  484. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-display_width-3.1.4/lib/unicode/display_width/no_string_ext.rb +0 -0
  485. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-display_width-3.1.4/lib/unicode/display_width/reline_ext.rb +0 -0
  486. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-display_width-3.1.4/lib/unicode/display_width/string_ext.rb +0 -0
  487. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-display_width-3.1.4/lib/unicode/display_width.rb +0 -0
  488. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/CHANGELOG.md +0 -0
  489. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/CODE_OF_CONDUCT.md +0 -0
  490. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/Gemfile +0 -0
  491. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/Gemfile.lock +0 -0
  492. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/MIT-LICENSE.txt +0 -0
  493. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/README.md +0 -0
  494. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/data/emoji.marshal.gz +0 -0
  495. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/data/generate_constants.rb +0 -0
  496. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/constants.rb +0 -0
  497. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex.rb +0 -0
  498. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_basic.rb +0 -0
  499. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_emoji_keycap.rb +0 -0
  500. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_include_mqe.rb +0 -0
  501. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_include_mqe_uqe.rb +0 -0
  502. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_include_text.rb +0 -0
  503. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_picto.rb +0 -0
  504. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_picto_no_emoji.rb +0 -0
  505. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_possible.rb +0 -0
  506. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_prop_component.rb +0 -0
  507. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_prop_emoji.rb +0 -0
  508. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_prop_modifier.rb +0 -0
  509. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_prop_modifier_base.rb +0 -0
  510. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_prop_presentation.rb +0 -0
  511. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_text.rb +0 -0
  512. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_text_presentation.rb +0 -0
  513. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_valid.rb +0 -0
  514. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_valid_include_text.rb +0 -0
  515. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_well_formed.rb +0 -0
  516. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_well_formed_include_text.rb +0 -0
  517. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex.rb +0 -0
  518. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_basic.rb +0 -0
  519. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_emoji_keycap.rb +0 -0
  520. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_include_mqe.rb +0 -0
  521. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_include_mqe_uqe.rb +0 -0
  522. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_include_text.rb +0 -0
  523. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_picto.rb +0 -0
  524. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_picto_no_emoji.rb +0 -0
  525. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_possible.rb +0 -0
  526. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_prop_component.rb +0 -0
  527. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_prop_emoji.rb +0 -0
  528. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_prop_modifier.rb +0 -0
  529. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_prop_modifier_base.rb +0 -0
  530. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_prop_presentation.rb +0 -0
  531. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_text.rb +0 -0
  532. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_text_presentation.rb +0 -0
  533. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_valid.rb +0 -0
  534. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_valid_include_text.rb +0 -0
  535. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_well_formed.rb +0 -0
  536. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_well_formed_include_text.rb +0 -0
  537. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/index.rb +0 -0
  538. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/lazy_constants.rb +0 -0
  539. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji/list.rb +0 -0
  540. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/lib/unicode/emoji.rb +0 -0
  541. /data/bundle/ruby/{3.1.0 → 3.2.0}/gems/unicode-emoji-4.0.4/unicode-emoji.gemspec +0 -0
@@ -1,16 +0,0 @@
1
- source "https://rubygems.org"
2
- gemspec
3
-
4
- gem "m"
5
- gem "pry"
6
- gem "simplecov"
7
-
8
- group :docs do
9
- gem "yard"
10
- gem "kramdown"
11
- gem "sass"
12
- end
13
-
14
- platform :mri do
15
- gem "ruby-prof"
16
- end
@@ -1,24 +0,0 @@
1
- # -*- mode: org -*-
2
- #+STARTUP: nofold
3
-
4
- * Documentation
5
- Redo tutorial?
6
- Using helpers
7
- haml_concat and haml_tag in particular
8
- Syntax highlighting?
9
-
10
- * Code
11
- Keep track of error offsets everywhere
12
- Use this to show error location in messages
13
- ** Haml
14
- Support finer-grained HTML-escaping in filters
15
- Speed
16
- Make tags with dynamic attributes pre-render as much as possible
17
- Including the attribute name where doable
18
- :html improvements
19
- Ignore closing tags where we can
20
- http://code.google.com/speed/articles/optimizing-html.html
21
- Requires Haml parsing refactor
22
- Don't quote attributes that don't require it
23
- http://www.w3.org/TR/REC-html40/intro/sgmltut.html#h-3.2.2
24
- http://www.w3.org/TR/html5/syntax.html#attributes
@@ -1,45 +0,0 @@
1
- ($LOAD_PATH << File.expand_path("../lib", __FILE__)).uniq!
2
- require "haml/version"
3
-
4
- Gem::Specification.new do |spec|
5
- spec.name = 'haml'
6
- spec.summary = "An elegant, structured (X)HTML/XML templating engine."
7
- spec.version = Haml::VERSION
8
- spec.authors = ['Natalie Weizenbaum', 'Hampton Catlin', 'Norman Clarke', 'Akira Matsuda']
9
- spec.email = ['haml@googlegroups.com', 'ronnie@dio.jp']
10
-
11
- spec.executables = ['haml']
12
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
13
- f.match(%r{\Atest/})
14
- end
15
- spec.homepage = 'http://haml.info/'
16
- spec.license = "MIT"
17
- spec.metadata = {
18
- "bug_tracker_uri" => "https://github.com/haml/haml/issues",
19
- "changelog_uri" => "https://github.com/haml/haml/blob/main/CHANGELOG.md",
20
- "documentation_uri" => "http://haml.info/docs.html",
21
- "homepage_uri" => "http://haml.info",
22
- "mailing_list_uri" => "https://groups.google.com/forum/?fromgroups#!forum/haml",
23
- "source_code_uri" => "https://github.com/haml/haml"
24
- }
25
-
26
- spec.required_ruby_version = '>= 2.0.0'
27
-
28
- spec.add_dependency 'temple', '>= 0.8.0'
29
- spec.add_dependency 'tilt'
30
-
31
- spec.add_development_dependency 'rails', '>= 4.0.0'
32
- spec.add_development_dependency 'rbench'
33
- spec.add_development_dependency 'minitest', '>= 4.0'
34
- spec.add_development_dependency 'nokogiri'
35
- spec.add_development_dependency 'simplecov'
36
-
37
- spec.description = <<-END
38
- Haml (HTML Abstraction Markup Language) is a layer on top of HTML or XML that's
39
- designed to express the structure of documents in a non-repetitive, elegant, and
40
- easy way by using indentation rather than closing tags and allowing Ruby to be
41
- embedded with ease. It was originally envisioned as a plugin for Ruby on Rails,
42
- but it can function as a stand-alone templating engine.
43
- END
44
-
45
- end
@@ -1,219 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Haml
4
- module AttributeBuilder
5
- # https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
6
- INVALID_ATTRIBUTE_NAME_REGEX = /[ \0"'>\/=]/
7
-
8
- class << self
9
- def build(class_id, obj_ref, is_html, attr_wrapper, escape_attrs, hyphenate_data_attrs, *attributes_hashes)
10
- attributes = class_id
11
- attributes_hashes.each do |old|
12
- result = {}
13
- old.each { |k, v| result[k.to_s] = v }
14
- merge_attributes!(attributes, result)
15
- end
16
- merge_attributes!(attributes, parse_object_ref(obj_ref)) if obj_ref
17
- build_attributes(is_html, attr_wrapper, escape_attrs, hyphenate_data_attrs, attributes)
18
- end
19
-
20
- def build_attributes(is_html, attr_wrapper, escape_attrs, hyphenate_data_attrs, attributes = {})
21
- # @TODO this is an absolutely ridiculous amount of arguments. At least
22
- # some of this needs to be moved into an instance method.
23
- join_char = hyphenate_data_attrs ? '-' : '_'
24
-
25
- attributes.each do |key, value|
26
- if value.is_a?(Hash)
27
- data_attributes = attributes.delete(key)
28
- data_attributes = flatten_data_attributes(data_attributes, '', join_char)
29
- data_attributes = build_data_keys(data_attributes, hyphenate_data_attrs, key)
30
- verify_attribute_names!(data_attributes.keys)
31
- attributes = data_attributes.merge(attributes)
32
- end
33
- end
34
-
35
- result = attributes.collect do |attr, value|
36
- next if value.nil?
37
-
38
- value = filter_and_join(value, ' ') if attr == 'class'
39
- value = filter_and_join(value, '_') if attr == 'id'
40
-
41
- if value == true
42
- next " #{attr}" if is_html
43
- next " #{attr}=#{attr_wrapper}#{attr}#{attr_wrapper}"
44
- elsif value == false
45
- next
46
- end
47
-
48
- value =
49
- if escape_attrs == :once
50
- Haml::Helpers.escape_once_without_haml_xss(value.to_s)
51
- elsif escape_attrs
52
- Haml::Helpers.html_escape_without_haml_xss(value.to_s)
53
- else
54
- value.to_s
55
- end
56
- " #{attr}=#{attr_wrapper}#{value}#{attr_wrapper}"
57
- end
58
- result.compact!
59
- result.sort!
60
- result.join
61
- end
62
-
63
- # @return [String, nil]
64
- def filter_and_join(value, separator)
65
- return '' if (value.respond_to?(:empty?) && value.empty?)
66
-
67
- if value.is_a?(Array)
68
- value = value.flatten
69
- value.map! {|item| item ? item.to_s : nil}
70
- value.compact!
71
- value = value.join(separator)
72
- else
73
- value = value ? value.to_s : nil
74
- end
75
- !value.nil? && !value.empty? && value
76
- end
77
-
78
- # Merges two attribute hashes.
79
- # This is the same as `to.merge!(from)`,
80
- # except that it merges id, class, and data attributes.
81
- #
82
- # ids are concatenated with `"_"`,
83
- # and classes are concatenated with `" "`.
84
- # data hashes are simply merged.
85
- #
86
- # Destructively modifies `to`.
87
- #
88
- # @param to [{String => String,Hash}] The attribute hash to merge into
89
- # @param from [{String => Object}] The attribute hash to merge from
90
- # @return [{String => String,Hash}] `to`, after being merged
91
- def merge_attributes!(to, from)
92
- from.keys.each do |key|
93
- to[key] = merge_value(key, to[key], from[key])
94
- end
95
- to
96
- end
97
-
98
- # Merge multiple values to one attribute value. No destructive operation.
99
- #
100
- # @param key [String]
101
- # @param values [Array<Object>]
102
- # @return [String,Hash]
103
- def merge_values(key, *values)
104
- values.inject(nil) do |to, from|
105
- merge_value(key, to, from)
106
- end
107
- end
108
-
109
- def verify_attribute_names!(attribute_names)
110
- attribute_names.each do |attribute_name|
111
- if attribute_name =~ INVALID_ATTRIBUTE_NAME_REGEX
112
- raise InvalidAttributeNameError.new("Invalid attribute name '#{attribute_name}' was rendered")
113
- end
114
- end
115
- end
116
-
117
- private
118
-
119
- # Merge a couple of values to one attribute value. No destructive operation.
120
- #
121
- # @param to [String,Hash,nil]
122
- # @param from [Object]
123
- # @return [String,Hash]
124
- def merge_value(key, to, from)
125
- if from.kind_of?(Hash) || to.kind_of?(Hash)
126
- from = { nil => from } if !from.is_a?(Hash)
127
- to = { nil => to } if !to.is_a?(Hash)
128
- to.merge(from)
129
- elsif key == 'id'
130
- merged_id = filter_and_join(from, '_')
131
- if to && merged_id
132
- merged_id = "#{to}_#{merged_id}"
133
- elsif to || merged_id
134
- merged_id ||= to
135
- end
136
- merged_id
137
- elsif key == 'class'
138
- merged_class = filter_and_join(from, ' ')
139
- if to && merged_class
140
- merged_class = (to.split(' ') | merged_class.split(' ')).join(' ')
141
- elsif to || merged_class
142
- merged_class ||= to
143
- end
144
- merged_class
145
- else
146
- from
147
- end
148
- end
149
-
150
- def build_data_keys(data_hash, hyphenate, attr_name="data")
151
- Hash[data_hash.map do |name, value|
152
- if name == nil
153
- [attr_name, value]
154
- elsif hyphenate
155
- ["#{attr_name}-#{name.to_s.tr('_', '-')}", value]
156
- else
157
- ["#{attr_name}-#{name}", value]
158
- end
159
- end]
160
- end
161
-
162
- def flatten_data_attributes(data, key, join_char, seen = [])
163
- return {key => data} unless data.is_a?(Hash)
164
-
165
- return {key => nil} if seen.include? data.object_id
166
- seen << data.object_id
167
-
168
- data.sort {|x, y| x[0].to_s <=> y[0].to_s}.inject({}) do |hash, (k, v)|
169
- joined = key == '' ? k : [key, k].join(join_char)
170
- hash.merge! flatten_data_attributes(v, joined, join_char, seen)
171
- end
172
- end
173
-
174
- # Takes an array of objects and uses the class and id of the first
175
- # one to create an attributes hash.
176
- # The second object, if present, is used as a prefix,
177
- # just like you can do with `dom_id()` and `dom_class()` in Rails
178
- def parse_object_ref(ref)
179
- prefix = ref[1]
180
- ref = ref[0]
181
- # Let's make sure the value isn't nil. If it is, return the default Hash.
182
- return {} if ref.nil?
183
- class_name =
184
- if ref.respond_to?(:haml_object_ref)
185
- ref.haml_object_ref
186
- else
187
- underscore(ref.class)
188
- end
189
- ref_id =
190
- if ref.respond_to?(:to_key)
191
- key = ref.to_key
192
- key.join('_') unless key.nil?
193
- else
194
- ref.id
195
- end
196
- id = "#{class_name}_#{ref_id || 'new'}"
197
- if prefix
198
- class_name = "#{ prefix }_#{ class_name}"
199
- id = "#{ prefix }_#{ id }"
200
- end
201
-
202
- { 'id'.freeze => id, 'class'.freeze => class_name }
203
- end
204
-
205
- # Changes a word from camel case to underscores.
206
- # Based on the method of the same name in Rails' Inflector,
207
- # but copied here so it'll run properly without Rails.
208
- def underscore(camel_cased_word)
209
- word = camel_cased_word.to_s.dup
210
- word.gsub!(/::/, '_')
211
- word.gsub!(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
212
- word.gsub!(/([a-z\d])([A-Z])/, '\1_\2')
213
- word.tr!('-', '_')
214
- word.downcase!
215
- word
216
- end
217
- end
218
- end
219
- end
@@ -1,237 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'haml/attribute_parser'
4
-
5
- module Haml
6
- class AttributeCompiler
7
- # @param type [Symbol] :static or :dynamic
8
- # @param key [String]
9
- # @param value [String] Actual string value for :static type, value's Ruby literal for :dynamic type.
10
- AttributeValue = Struct.new(:type, :key, :value)
11
-
12
- # @param options [Haml::Options]
13
- def initialize(options)
14
- @is_html = [:html4, :html5].include?(options[:format])
15
- @attr_wrapper = options[:attr_wrapper]
16
- @escape_attrs = options[:escape_attrs]
17
- @hyphenate_data_attrs = options[:hyphenate_data_attrs]
18
- end
19
-
20
- # Returns Temple expression to render attributes.
21
- #
22
- # @param attributes [Hash]
23
- # @param object_ref [String,:nil]
24
- # @param dynamic_attributes [Haml::Parser::DynamicAttributes]
25
- # @return [Array] Temple expression
26
- def compile(attributes, object_ref, dynamic_attributes)
27
- if object_ref != :nil || !AttributeParser.available?
28
- return [:dynamic, compile_runtime_build(attributes, object_ref, dynamic_attributes)]
29
- end
30
-
31
- parsed_hashes = [dynamic_attributes.new, dynamic_attributes.old].compact.map do |attribute_hash|
32
- unless (hash = AttributeParser.parse(attribute_hash))
33
- return [:dynamic, compile_runtime_build(attributes, object_ref, dynamic_attributes)]
34
- end
35
- hash
36
- end
37
- attribute_values = build_attribute_values(attributes, parsed_hashes)
38
- AttributeBuilder.verify_attribute_names!(attribute_values.map(&:key))
39
-
40
- [:multi, *group_values_for_sort(attribute_values).map { |value_group|
41
- compile_attribute_values(value_group)
42
- }]
43
- end
44
-
45
- private
46
-
47
- # Returns a script to render attributes on runtime.
48
- #
49
- # @param attributes [Hash]
50
- # @param object_ref [String,:nil]
51
- # @param dynamic_attributes [Haml::Parser::DynamicAttributes]
52
- # @return [String] Attributes rendering code
53
- def compile_runtime_build(attributes, object_ref, dynamic_attributes)
54
- arguments = [@is_html, @attr_wrapper, @escape_attrs, @hyphenate_data_attrs].map(&method(:to_literal)).join(', ')
55
- "::Haml::AttributeBuilder.build(#{to_literal(attributes)}, #{object_ref}, #{arguments}, #{dynamic_attributes.to_literal})"
56
- end
57
-
58
- # Build array of grouped values whose sort order may go back and forth, which is also sorted with key name.
59
- # This method needs to group values with the same start because it can be changed in `Haml::AttributeBuidler#build_data_keys`.
60
- # @param values [Array<Haml::AttributeCompiler::AttributeValue>]
61
- # @return [Array<Array<Haml::AttributeCompiler::AttributeValue>>]
62
- def group_values_for_sort(values)
63
- sorted_values = values.sort_by(&:key)
64
- [].tap do |value_groups|
65
- until sorted_values.empty?
66
- key = sorted_values.first.key
67
- value_group, sorted_values = sorted_values.partition { |v| v.key.start_with?(key) }
68
- value_groups << value_group
69
- end
70
- end
71
- end
72
-
73
- # Returns array of AttributeValue instances from static attributes and dynamic_attributes. For each key,
74
- # the values' order in returned value is preserved in the same order as Haml::Buffer#attributes's merge order.
75
- #
76
- # @param attributes [{ String => String }]
77
- # @param parsed_hashes [{ String => String }]
78
- # @return [Array<AttributeValue>]
79
- def build_attribute_values(attributes, parsed_hashes)
80
- [].tap do |attribute_values|
81
- attributes.each do |key, static_value|
82
- attribute_values << AttributeValue.new(:static, key, static_value)
83
- end
84
- parsed_hashes.each do |parsed_hash|
85
- parsed_hash.each do |key, dynamic_value|
86
- attribute_values << AttributeValue.new(:dynamic, key, dynamic_value)
87
- end
88
- end
89
- end
90
- end
91
-
92
- # Compiles attribute values with the similar key to Temple expression.
93
- #
94
- # @param values [Array<AttributeValue>] whose `key`s are partially or fully the same from left.
95
- # @return [Array] Temple expression
96
- def compile_attribute_values(values)
97
- if values.map(&:key).uniq.size == 1
98
- compile_attribute(values.first.key, values)
99
- else
100
- runtime_build(values)
101
- end
102
- end
103
-
104
- # @param values [Array<AttributeValue>]
105
- # @return [Array] Temple expression
106
- def runtime_build(values)
107
- hash_content = values.group_by(&:key).map do |key, values_for_key|
108
- "#{frozen_string(key)} => #{merged_value(key, values_for_key)}"
109
- end.join(', ')
110
- arguments = [@is_html, @attr_wrapper, @escape_attrs, @hyphenate_data_attrs].map(&method(:to_literal)).join(', ')
111
- [:dynamic, "::Haml::AttributeBuilder.build({ #{hash_content} }, nil, #{arguments})"]
112
- end
113
-
114
- # Renders attribute values statically.
115
- #
116
- # @param values [Array<AttributeValue>]
117
- # @return [Array] Temple expression
118
- def static_build(values)
119
- hash_content = values.group_by(&:key).map do |key, values_for_key|
120
- "#{frozen_string(key)} => #{merged_value(key, values_for_key)}"
121
- end.join(', ')
122
-
123
- arguments = [@is_html, @attr_wrapper, @escape_attrs, @hyphenate_data_attrs]
124
- code = "::Haml::AttributeBuilder.build_attributes"\
125
- "(#{arguments.map(&method(:to_literal)).join(', ')}, { #{hash_content} })"
126
- [:static, eval(code).to_s]
127
- end
128
-
129
- # @param key [String]
130
- # @param values [Array<AttributeValue>]
131
- # @return [String]
132
- def merged_value(key, values)
133
- if values.size == 1
134
- attr_literal(values.first)
135
- else
136
- "::Haml::AttributeBuilder.merge_values(#{frozen_string(key)}, #{values.map(&method(:attr_literal)).join(', ')})"
137
- end
138
- end
139
-
140
- # @param str [String]
141
- # @return [String]
142
- def frozen_string(str)
143
- "#{to_literal(str)}.freeze"
144
- end
145
-
146
- # Compiles attribute values for one key to Temple expression that generates ` key='value'`.
147
- #
148
- # @param key [String]
149
- # @param values [Array<AttributeValue>]
150
- # @return [Array] Temple expression
151
- def compile_attribute(key, values)
152
- if values.all? { |v| Temple::StaticAnalyzer.static?(attr_literal(v)) }
153
- return static_build(values)
154
- end
155
-
156
- case key
157
- when 'id', 'class'
158
- compile_id_or_class_attribute(key, values)
159
- else
160
- compile_common_attribute(key, values)
161
- end
162
- end
163
-
164
- # @param id_or_class [String] "id" or "class"
165
- # @param values [Array<AttributeValue>]
166
- # @return [Array] Temple expression
167
- def compile_id_or_class_attribute(id_or_class, values)
168
- var = unique_name
169
- [:multi,
170
- [:code, "#{var} = (#{merged_value(id_or_class, values)})"],
171
- [:case, var,
172
- ['Hash, Array', runtime_build([AttributeValue.new(:dynamic, id_or_class, var)])],
173
- ['false, nil', [:multi]],
174
- [:else, [:multi,
175
- [:static, " #{id_or_class}=#{@attr_wrapper}"],
176
- [:escape, Escapable::EscapeSafeBuffer.new(@escape_attrs), [:dynamic, var]],
177
- [:static, @attr_wrapper]],
178
- ]
179
- ],
180
- ]
181
- end
182
-
183
- # @param key [String] Not "id" or "class"
184
- # @param values [Array<AttributeValue>]
185
- # @return [Array] Temple expression
186
- def compile_common_attribute(key, values)
187
- var = unique_name
188
- [:multi,
189
- [:code, "#{var} = (#{merged_value(key, values)})"],
190
- [:case, var,
191
- ['Hash', runtime_build([AttributeValue.new(:dynamic, key, var)])],
192
- ['true', true_value(key)],
193
- ['false, nil', [:multi]],
194
- [:else, [:multi,
195
- [:static, " #{key}=#{@attr_wrapper}"],
196
- [:escape, Escapable::EscapeSafeBuffer.new(@escape_attrs), [:dynamic, var]],
197
- [:static, @attr_wrapper]],
198
- ]
199
- ],
200
- ]
201
- end
202
-
203
- def true_value(key)
204
- if @is_html
205
- [:static, " #{key}"]
206
- else
207
- [:static, " #{key}=#{@attr_wrapper}#{key}#{@attr_wrapper}"]
208
- end
209
- end
210
-
211
- def unique_name
212
- @unique_name ||= 0
213
- "_haml_attribute_compiler#{@unique_name += 1}"
214
- end
215
-
216
- # @param [Haml::AttributeCompiler::AttributeValue] attr
217
- def attr_literal(attr)
218
- case attr.type
219
- when :static
220
- to_literal(attr.value)
221
- when :dynamic
222
- attr.value
223
- end
224
- end
225
-
226
- # For haml/haml#972
227
- # @param [Object] value
228
- def to_literal(value)
229
- case value
230
- when true, false
231
- value.to_s
232
- else
233
- Haml::Util.inspect_obj(value)
234
- end
235
- end
236
- end
237
- end
@@ -1,150 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- begin
4
- require 'ripper'
5
- rescue LoadError
6
- end
7
- require 'temple/static_analyzer'
8
-
9
- module Haml
10
- # Haml::AttriubuteParser parses Hash literal to { String (key name) => String (value literal) }.
11
- module AttributeParser
12
- class UnexpectedTokenError < StandardError; end
13
- class UnexpectedKeyError < StandardError; end
14
-
15
- # Indices in Ripper tokens
16
- TYPE = 1
17
- TEXT = 2
18
-
19
- IGNORED_TYPES = %i[on_sp on_ignored_nl].freeze
20
-
21
- class << self
22
- # @return [Boolean] - return true if AttributeParser.parse can be used.
23
- def available?
24
- defined?(Ripper) && Temple::StaticAnalyzer.available?
25
- end
26
-
27
- # @param [String] exp - Old attributes literal or Hash literal generated from new attributes.
28
- # @return [Hash<String, String>,nil] - Return parsed attribute Hash whose values are Ruby literals, or return nil if argument is not a single Hash literal.
29
- def parse(exp)
30
- return nil unless hash_literal?(exp)
31
-
32
- hash = {}
33
- each_attribute(exp) do |key, value|
34
- hash[key] = value
35
- end
36
- hash
37
- rescue UnexpectedTokenError, UnexpectedKeyError
38
- nil
39
- end
40
-
41
- private
42
-
43
- # @param [String] exp - Ruby expression
44
- # @return [Boolean] - Return true if exp is a single Hash literal
45
- def hash_literal?(exp)
46
- return false if Temple::StaticAnalyzer.syntax_error?(exp)
47
- sym, body = Ripper.sexp(exp)
48
- sym == :program && body.is_a?(Array) && body.size == 1 && body[0] && body[0][0] == :hash
49
- end
50
-
51
- # @param [Array] tokens - Ripper tokens. Scanned tokens will be destructively removed from this argument.
52
- # @return [String] - attribute name in String
53
- def shift_key!(tokens)
54
- while !tokens.empty? && IGNORED_TYPES.include?(tokens.first[TYPE])
55
- tokens.shift # ignore spaces
56
- end
57
-
58
- _, type, first_text = tokens.shift
59
- case type
60
- when :on_label # `key:`
61
- first_text.tr(':', '')
62
- when :on_symbeg # `:key =>`, `:'key' =>` or `:"key" =>`
63
- key = tokens.shift[TEXT]
64
- if first_text != ':' # `:'key'` or `:"key"`
65
- expect_string_end!(tokens.shift)
66
- end
67
- shift_hash_rocket!(tokens)
68
- key
69
- when :on_tstring_beg # `"key":`, `'key':` or `"key" =>`
70
- key = tokens.shift[TEXT]
71
- next_token = tokens.shift
72
- if next_token[TYPE] != :on_label_end # on_label_end is `":` or `':`, so `"key" =>`
73
- expect_string_end!(next_token)
74
- shift_hash_rocket!(tokens)
75
- end
76
- key
77
- else
78
- raise UnexpectedKeyError.new("unexpected token is given!: #{first_text} (#{type})")
79
- end
80
- end
81
-
82
- # @param [Array] token - Ripper token
83
- def expect_string_end!(token)
84
- if token[TYPE] != :on_tstring_end
85
- raise UnexpectedTokenError
86
- end
87
- end
88
-
89
- # @param [Array] tokens - Ripper tokens
90
- def shift_hash_rocket!(tokens)
91
- until tokens.empty?
92
- _, type, str = tokens.shift
93
- break if type == :on_op && str == '=>'
94
- end
95
- end
96
-
97
- # @param [String] hash_literal
98
- # @param [Proc] block - that takes [String, String] as arguments
99
- def each_attribute(hash_literal, &block)
100
- all_tokens = Ripper.lex(hash_literal.strip)
101
- all_tokens = all_tokens[1...-1] || [] # strip tokens for brackets
102
-
103
- each_balanced_tokens(all_tokens) do |tokens|
104
- key = shift_key!(tokens)
105
- value = tokens.map {|t| t[2] }.join.strip
106
- block.call(key, value)
107
- end
108
- end
109
-
110
- # @param [Array] tokens - Ripper tokens
111
- # @param [Proc] block - that takes balanced Ripper tokens as arguments
112
- def each_balanced_tokens(tokens, &block)
113
- attr_tokens = []
114
- open_tokens = Hash.new { |h, k| h[k] = 0 }
115
-
116
- tokens.each do |token|
117
- case token[TYPE]
118
- when :on_comma
119
- if open_tokens.values.all?(&:zero?)
120
- block.call(attr_tokens)
121
- attr_tokens = []
122
- next
123
- end
124
- when :on_lbracket
125
- open_tokens[:array] += 1
126
- when :on_rbracket
127
- open_tokens[:array] -= 1
128
- when :on_lbrace
129
- open_tokens[:block] += 1
130
- when :on_rbrace
131
- open_tokens[:block] -= 1
132
- when :on_lparen
133
- open_tokens[:paren] += 1
134
- when :on_rparen
135
- open_tokens[:paren] -= 1
136
- when :on_embexpr_beg
137
- open_tokens[:embexpr] += 1
138
- when :on_embexpr_end
139
- open_tokens[:embexpr] -= 1
140
- when *IGNORED_TYPES
141
- next if attr_tokens.empty?
142
- end
143
-
144
- attr_tokens << token
145
- end
146
- block.call(attr_tokens) unless attr_tokens.empty?
147
- end
148
- end
149
- end
150
- end