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.
- checksums.yaml +4 -4
- data/CHANGES.md +24 -0
- data/README.md +1 -1
- data/bundle/load.rb +10 -10
- data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/NEWS.md +20 -1
- data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv/parser.rb +1 -1
- data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv/version.rb +1 -1
- data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/CHANGELOG.md +180 -4
- data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/FAQ.md +1 -1
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/Gemfile +34 -0
- data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/MIT-LICENSE +1 -1
- data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/README.md +23 -34
- data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/REFERENCE.md +100 -171
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/exe/haml +6 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/haml.gemspec +45 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/ambles.rb +20 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/attribute_builder.rb +162 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/attribute_compiler.rb +133 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/attribute_parser.rb +116 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/cli.rb +154 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/compiler/children_compiler.rb +155 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/compiler/comment_compiler.rb +51 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/compiler/doctype_compiler.rb +52 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/compiler/script_compiler.rb +114 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/compiler/silent_script_compiler.rb +24 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/compiler/tag_compiler.rb +76 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/compiler.rb +97 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/dynamic_merger.rb +67 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/engine.rb +59 -0
- data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/lib/haml/error.rb +5 -4
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/escape.rb +13 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/escape_any.rb +21 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/base.rb +12 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/cdata.rb +20 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/coffee.rb +17 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/css.rb +33 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/erb.rb +10 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/escaped.rb +22 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/javascript.rb +33 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/less.rb +20 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/markdown.rb +11 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/plain.rb +29 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/preserve.rb +22 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/ruby.rb +10 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/sass.rb +15 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/scss.rb +15 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/text_base.rb +25 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters/tilt_base.rb +59 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/filters.rb +75 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/force_escape.rb +29 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/helpers.rb +15 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/html.rb +22 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/identity.rb +13 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/object_ref.rb +35 -0
- data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/lib/haml/parser.rb +159 -24
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/rails_helpers.rb +53 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/rails_template.rb +62 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/railtie.rb +10 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/ruby_expression.rb +32 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/string_splitter.rb +140 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/template.rb +20 -0
- data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/lib/haml/temple_line_counter.rb +2 -1
- data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/lib/haml/util.rb +19 -15
- data/bundle/ruby/3.1.0/gems/{haml-5.2.2 → haml-6.4.0}/lib/haml/version.rb +1 -2
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml/whitespace.rb +8 -0
- data/bundle/ruby/3.1.0/gems/haml-6.4.0/lib/haml.rb +13 -0
- data/bundle/ruby/3.1.0/gems/parallel-1.27.0/lib/parallel/version.rb +4 -0
- data/bundle/ruby/3.1.0/gems/{parallel-1.26.3 → parallel-1.27.0}/lib/parallel.rb +1 -1
- data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/config.rb +5 -0
- data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/io/ansi.rb +7 -3
- data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/io.rb +2 -2
- data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/key_actor/emacs.rb +2 -2
- data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/line_editor.rb +10 -8
- data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/unicode/east_asian_width.rb +7 -8
- data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/unicode.rb +21 -15
- data/bundle/ruby/3.1.0/gems/reline-0.6.2/lib/reline/version.rb +3 -0
- data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline.rb +2 -3
- data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/NEWS.md +145 -1
- data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/attribute.rb +7 -8
- data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/cdata.rb +1 -1
- data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/child.rb +2 -3
- data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/comment.rb +1 -1
- data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/doctype.rb +3 -8
- data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/document.rb +21 -5
- data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/element.rb +53 -59
- data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/encoding.rb +3 -6
- data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/functions.rb +3 -3
- data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/instruction.rb +1 -1
- data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/namespace.rb +4 -4
- data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/node.rb +2 -2
- data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parsers/baseparser.rb +143 -81
- data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parsers/xpathparser.rb +4 -4
- data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/quickpath.rb +19 -18
- data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/rexml.rb +1 -1
- data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/security.rb +2 -2
- data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/source.rb +7 -2
- data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/text.rb +14 -17
- data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/validation/relaxng.rb +27 -26
- data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/validation/validation.rb +8 -8
- data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/xpath.rb +2 -13
- data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/xpath_parser.rb +44 -42
- data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/History.rdoc +8 -0
- data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/lib/pt_testcase.rb +1 -1
- data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/lib/sexp_processor.rb +1 -1
- data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/CHANGES +4 -0
- data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/encoding.rb +1 -1
- data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/version.rb +1 -1
- data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/template.rb +6 -1
- data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt.rb +1 -1
- data/bundle/ruby/3.1.0/gems/{unicode-display_width-3.1.4 → unicode-display_width-3.2.0}/CHANGELOG.md +8 -0
- data/bundle/ruby/3.1.0/gems/{unicode-display_width-3.1.4 → unicode-display_width-3.2.0}/README.md +5 -5
- data/bundle/ruby/3.1.0/gems/unicode-display_width-3.2.0/data/display_width.marshal.gz +0 -0
- 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
- 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
- data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/CHANGELOG.md +5 -0
- data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/Gemfile.lock +1 -1
- data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/README.md +4 -4
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/data/emoji.marshal.gz +0 -0
- data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/constants.rb +3 -3
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex.rb +8 -0
- 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
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_include_mqe.rb +8 -0
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_include_mqe_uqe.rb +8 -0
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_include_text.rb +8 -0
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_picto.rb +8 -0
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_picto_no_emoji.rb +8 -0
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_possible.rb +8 -0
- 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
- 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
- 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
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_valid.rb +8 -0
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_valid_include_text.rb +8 -0
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_well_formed.rb +8 -0
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated/regex_well_formed_include_text.rb +8 -0
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated_native/regex.rb +8 -0
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated_native/regex_include_mqe.rb +8 -0
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated_native/regex_include_mqe_uqe.rb +8 -0
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.1.0/lib/unicode/emoji/generated_native/regex_include_text.rb +8 -0
- data/lib/brakeman/app_tree.rb +56 -9
- data/lib/brakeman/checks/base_check.rb +5 -2
- data/lib/brakeman/checks/check_eol_rails.rb +1 -0
- data/lib/brakeman/checks/check_eol_ruby.rb +1 -0
- data/lib/brakeman/checks/check_render.rb +5 -0
- data/lib/brakeman/checks/check_sql.rb +9 -2
- data/lib/brakeman/commandline.rb +5 -0
- data/lib/brakeman/file_path.rb +4 -0
- data/lib/brakeman/messages.rb +1 -1
- data/lib/brakeman/options.rb +4 -0
- data/lib/brakeman/parsers/haml6_embedded.rb +23 -0
- data/lib/brakeman/parsers/template_parser.rb +32 -7
- data/lib/brakeman/processor.rb +2 -0
- data/lib/brakeman/processors/alias_processor.rb +9 -0
- data/lib/brakeman/processors/base_processor.rb +2 -0
- data/lib/brakeman/processors/haml6_template_processor.rb +92 -0
- data/lib/brakeman/processors/haml_template_processor.rb +8 -2
- data/lib/brakeman/processors/lib/render_helper.rb +38 -1
- data/lib/brakeman/processors/template_processor.rb +1 -1
- data/lib/brakeman/report/pager.rb +1 -1
- data/lib/brakeman/report/report_html.rb +1 -1
- data/lib/brakeman/report/report_junit.rb +4 -57
- data/lib/brakeman/report/templates/header.html.erb +8 -3
- data/lib/brakeman/report/templates/ignored_warnings.html.erb +3 -3
- data/lib/brakeman/tracker.rb +6 -0
- data/lib/brakeman/version.rb +1 -1
- data/lib/brakeman.rb +4 -0
- metadata +327 -306
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/Gemfile +0 -16
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/TODO +0 -24
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/haml.gemspec +0 -45
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/attribute_builder.rb +0 -219
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/attribute_compiler.rb +0 -237
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/attribute_parser.rb +0 -150
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/buffer.rb +0 -182
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/compiler.rb +0 -330
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/engine.rb +0 -238
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/escapable.rb +0 -77
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/exec.rb +0 -347
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/filters.rb +0 -399
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/generator.rb +0 -42
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/action_view_extensions.rb +0 -60
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/action_view_mods.rb +0 -132
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/action_view_xss_mods.rb +0 -60
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/safe_erubi_template.rb +0 -20
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/safe_erubis_template.rb +0 -33
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers/xss_mods.rb +0 -114
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/helpers.rb +0 -709
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/options.rb +0 -273
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/plugin.rb +0 -54
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/railtie.rb +0 -53
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/sass_rails_filter.rb +0 -47
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/template/options.rb +0 -27
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/template.rb +0 -39
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/temple_engine.rb +0 -124
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml.rb +0 -25
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/yard/default/fulldoc/html/css/common.sass +0 -15
- data/bundle/ruby/3.1.0/gems/haml-5.2.2/yard/default/layout/html/footer.erb +0 -12
- data/bundle/ruby/3.1.0/gems/parallel-1.26.3/lib/parallel/version.rb +0 -4
- data/bundle/ruby/3.1.0/gems/reline-0.6.1/lib/reline/version.rb +0 -3
- data/bundle/ruby/3.1.0/gems/unicode-display_width-3.1.4/data/display_width.marshal.gz +0 -0
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/data/emoji.marshal.gz +0 -0
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex.rb +0 -8
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_include_mqe.rb +0 -8
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_include_mqe_uqe.rb +0 -8
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_include_text.rb +0 -8
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_picto.rb +0 -8
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_picto_no_emoji.rb +0 -8
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_possible.rb +0 -8
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_valid.rb +0 -8
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_valid_include_text.rb +0 -8
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_well_formed.rb +0 -8
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated/regex_well_formed_include_text.rb +0 -8
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex.rb +0 -8
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_include_mqe.rb +0 -8
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_include_mqe_uqe.rb +0 -8
- data/bundle/ruby/3.1.0/gems/unicode-emoji-4.0.4/lib/unicode/emoji/generated_native/regex_include_text.rb +0 -8
- /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/LICENSE.txt +0 -0
- /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/README.md +0 -0
- /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv/core_ext/array.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv/core_ext/string.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv/fields_converter.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv/input_record_separator.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv/row.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv/table.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv/writer.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{csv-3.3.3 → csv-3.3.5}/lib/csv.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{parallel-1.26.3 → parallel-1.27.0}/MIT-LICENSE.txt +0 -0
- /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/BSDL +0 -0
- /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/COPYING +0 -0
- /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/README.md +0 -0
- /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/face.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/history.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/io/dumb.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/io/windows.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/key_actor/base.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/key_actor/composite.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/key_actor/vi_command.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/key_actor/vi_insert.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/key_actor.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/key_stroke.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/lib/reline/kill_ring.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{reline-0.6.1 → reline-0.6.2}/license_of_rb-readline +0 -0
- /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/LICENSE.txt +0 -0
- /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/README.md +0 -0
- /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/attlistdecl.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/dtd/attlistdecl.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/dtd/dtd.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/dtd/elementdecl.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/dtd/entitydecl.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/dtd/notationdecl.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/entity.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/formatters/default.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/formatters/pretty.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/formatters/transitive.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/light/node.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/output.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parent.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parseexception.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parsers/lightparser.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parsers/pullparser.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parsers/sax2parser.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parsers/streamparser.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parsers/treeparser.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/parsers/ultralightparser.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/sax2listener.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/streamlistener.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/undefinednamespaceexception.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/validation/validationexception.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/xmldecl.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml/xmltokens.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{rexml-3.4.1 → rexml-3.4.4}/lib/rexml.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/Manifest.txt +0 -0
- /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/README.rdoc +0 -0
- /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/lib/composite_sexp_processor.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/lib/sexp.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/lib/sexp_matcher.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/lib/strict_sexp.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.3 → sexp_processor-4.17.4}/lib/unique.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/EXPRESSIONS.md +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/Gemfile +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/LICENSE +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/README.md +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/engine.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/erb/engine.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/erb/parser.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/erb/template.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/erb/trimming.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/exceptions.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filter.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/ambles.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/code_merger.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/control_flow.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/dynamic_inliner.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/dynamic_merger.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/eraser.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/escapable.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/multi_flattener.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/remove_bom.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/static_analyzer.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/static_merger.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/string_splitter.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/filters/validator.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/generator.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/generators/array.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/generators/array_buffer.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/generators/erb.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/generators/rails_output_buffer.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/generators/string_buffer.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/grammar.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/html/attribute_merger.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/html/attribute_remover.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/html/attribute_sorter.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/html/dispatcher.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/html/fast.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/html/filter.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/html/pretty.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/html/safe.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/map.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/mixins/dispatcher.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/mixins/engine_dsl.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/mixins/grammar_dsl.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/mixins/options.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/mixins/template.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/parser.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/static_analyzer.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/templates/rails.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/templates/tilt.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/templates.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple/utils.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/lib/temple.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{temple-0.10.3 → temple-0.10.4}/temple.gemspec +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/COPYING +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/_emacs_org.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/_handlebars.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/_jbuilder.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/_org.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/asciidoc.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/babel.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/builder.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/cli.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/coffee.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/commonmarker.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/creole.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/csv.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/erb.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/erubi.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/etanni.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/haml.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/kramdown.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/liquid.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/livescript.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/mapping.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/markaby.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/nokogiri.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/pandoc.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/pipeline.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/plain.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/prawn.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/radius.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/rdiscount.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/rdoc.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/redcarpet.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/redcloth.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/rst-pandoc.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/sass.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/slim.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/string.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/typescript.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{tilt-2.6.0 → tilt-2.6.1}/lib/tilt/yajl.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{unicode-display_width-3.1.4 → unicode-display_width-3.2.0}/MIT-LICENSE.txt +0 -0
- /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
- /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
- /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
- /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
- /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
- /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/CODE_OF_CONDUCT.md +0 -0
- /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/Gemfile +0 -0
- /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/MIT-LICENSE.txt +0 -0
- /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/data/generate_constants.rb +0 -0
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/index.rb +0 -0
- /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
- /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji/list.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/lib/unicode/emoji.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{unicode-emoji-4.0.4 → unicode-emoji-4.1.0}/unicode-emoji.gemspec +0 -0
|
@@ -30,7 +30,7 @@ The first step for all of these is to install the Haml gem:
|
|
|
30
30
|
|
|
31
31
|
To run Haml from the command line, just use
|
|
32
32
|
|
|
33
|
-
haml input.haml output.html
|
|
33
|
+
haml render input.haml > output.html
|
|
34
34
|
|
|
35
35
|
Use `haml --help` for full documentation.
|
|
36
36
|
|
|
@@ -68,24 +68,6 @@ may be compiled to:
|
|
|
68
68
|
</div>
|
|
69
69
|
</div>
|
|
70
70
|
|
|
71
|
-
### Rails XSS Protection
|
|
72
|
-
|
|
73
|
-
Haml supports Rails' XSS protection scheme, which was introduced in Rails 2.3.5+
|
|
74
|
-
and is enabled by default in 3.0.0+. If it's enabled, Haml's
|
|
75
|
-
{Haml::Options#escape_html `:escape_html`} option is set to `true` by default -
|
|
76
|
-
like in ERB, all strings printed to a Haml template are escaped by default. Also
|
|
77
|
-
like ERB, strings marked as HTML safe are not escaped. Haml also has [its own
|
|
78
|
-
syntax for printing a raw string to the template](#unescaping_html).
|
|
79
|
-
|
|
80
|
-
If the `:escape_html` option is set to false when XSS protection is enabled,
|
|
81
|
-
Haml doesn't escape Ruby strings by default. However, if a string marked
|
|
82
|
-
HTML-safe is passed to [Haml's escaping syntax](#escaping_html), it won't be
|
|
83
|
-
escaped.
|
|
84
|
-
|
|
85
|
-
Finally, all the {Haml::Helpers Haml helpers} that return strings that are known
|
|
86
|
-
to be HTML safe are marked as such. In addition, string input is escaped unless
|
|
87
|
-
it's HTML safe.
|
|
88
|
-
|
|
89
71
|
### Ruby Module
|
|
90
72
|
|
|
91
73
|
Haml can also be used completely separately from Rails and ActionView. To do
|
|
@@ -93,10 +75,10 @@ this, install the gem with RubyGems:
|
|
|
93
75
|
|
|
94
76
|
gem install haml
|
|
95
77
|
|
|
96
|
-
You can then use it by including the
|
|
97
|
-
{Haml::
|
|
78
|
+
You can then use it by including the `haml` gem in Ruby code, and using
|
|
79
|
+
{Haml::Template} like so:
|
|
98
80
|
|
|
99
|
-
engine = Haml::
|
|
81
|
+
engine = Haml::Template.new { "%p Haml code!" }
|
|
100
82
|
engine.render #=> "<p>Haml code!</p>\n"
|
|
101
83
|
|
|
102
84
|
### Options
|
|
@@ -104,50 +86,26 @@ You can then use it by including the "haml" gem in Ruby code, and using
|
|
|
104
86
|
Haml understands various configuration options that affect its performance and
|
|
105
87
|
output.
|
|
106
88
|
|
|
107
|
-
In Rails, options can be set by
|
|
108
|
-
hash in an initializer:
|
|
89
|
+
In Rails, options can be set by using `Haml::RailsTemplate.set_options` in an initializer:
|
|
109
90
|
|
|
110
91
|
```ruby
|
|
111
92
|
# config/initializers/haml.rb
|
|
112
|
-
Haml::
|
|
113
|
-
|
|
114
|
-
# Avoid escaping attributes which are already escaped
|
|
115
|
-
Haml::Template.options[:escape_attrs] = :once
|
|
93
|
+
Haml::RailsTemplate.set_options(escape_html: false)
|
|
116
94
|
```
|
|
117
95
|
|
|
118
|
-
Outside Rails, you can set them by configuring them globally in
|
|
119
|
-
Haml::Options.defaults:
|
|
96
|
+
Outside Rails, you can set them by configuring them globally in `Haml::Template.options`:
|
|
120
97
|
|
|
121
98
|
```ruby
|
|
122
|
-
Haml::
|
|
99
|
+
Haml::Template.options[:escape_html] = false
|
|
123
100
|
```
|
|
124
101
|
|
|
125
102
|
In sinatra specifically, you can set them in global config with:
|
|
126
103
|
```ruby
|
|
127
|
-
set :haml, { escape_html:
|
|
104
|
+
set :haml, { escape_html: false }
|
|
128
105
|
```
|
|
129
106
|
|
|
130
|
-
Finally, you can also set them by passing an options hash to
|
|
131
|
-
|
|
132
|
-
see {Haml::Options}.
|
|
133
|
-
|
|
134
|
-
### Encodings
|
|
135
|
-
|
|
136
|
-
Haml supports the same sorts of
|
|
137
|
-
encoding-declaration comments that Ruby does. Although both Ruby and Haml
|
|
138
|
-
support several different styles, the easiest it just to add `-# coding:
|
|
139
|
-
encoding-name` at the beginning of the Haml template (it must come before all
|
|
140
|
-
other lines). This will tell Haml that the template is encoded using the named
|
|
141
|
-
encoding.
|
|
142
|
-
|
|
143
|
-
By default, the HTML generated by Haml has the same encoding as the Haml
|
|
144
|
-
template. However, if `Encoding.default_internal` is set, Haml will attempt to
|
|
145
|
-
use that instead. In addition, the {Haml::Options#encoding `:encoding` option}
|
|
146
|
-
can be used to specify an output encoding manually.
|
|
147
|
-
|
|
148
|
-
Note that, like Ruby, Haml does not support templates encoded in UTF-16 or
|
|
149
|
-
UTF-32, since these encodings are not compatible with ASCII. It is possible to
|
|
150
|
-
use these as the output encoding, though.
|
|
107
|
+
Finally, you can also set them by passing an options hash to `Haml::Engine.new` or `Haml::Template.new`.
|
|
108
|
+
For the complete list of available options, please see [`Haml::Engine`](https://github.com/haml/haml/blob/main/lib/haml/engine.rb).
|
|
151
109
|
|
|
152
110
|
## Plain Text
|
|
153
111
|
|
|
@@ -222,10 +180,10 @@ closing tags for any element.
|
|
|
222
180
|
|
|
223
181
|
### Attributes: `{}` or `()` {#attributes}
|
|
224
182
|
|
|
225
|
-
|
|
183
|
+
Braces represent a Ruby hash that is used for specifying the attributes of an
|
|
226
184
|
element. It is literally evaluated as a Ruby hash, so logic will work in it and
|
|
227
185
|
local variables may be used. Quote characters within the attribute will be
|
|
228
|
-
replaced
|
|
186
|
+
replaced with appropriate escape sequences. The hash is placed after the tag is
|
|
229
187
|
defined. For example:
|
|
230
188
|
|
|
231
189
|
%html{:xmlns => "http://www.w3.org/1999/xhtml", "xml:lang" => "en", :lang => "en"}
|
|
@@ -289,7 +247,7 @@ could render as either of:
|
|
|
289
247
|
#### HTML-style Attributes: `()`
|
|
290
248
|
|
|
291
249
|
Haml also supports a terser, less Ruby-specific attribute syntax based on HTML's
|
|
292
|
-
attributes. These are used with parentheses instead of
|
|
250
|
+
attributes. These are used with parentheses instead of braces, like so:
|
|
293
251
|
|
|
294
252
|
%html(xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en")
|
|
295
253
|
|
|
@@ -325,49 +283,6 @@ Haml also supports Ruby's new hash syntax:
|
|
|
325
283
|
|
|
326
284
|
%a{title: @title, href: href} Stuff
|
|
327
285
|
|
|
328
|
-
#### Attribute Methods
|
|
329
|
-
|
|
330
|
-
A Ruby method call that returns a hash can be substituted for the hash contents.
|
|
331
|
-
For example, {Haml::Helpers} defines the following method:
|
|
332
|
-
|
|
333
|
-
def html_attrs(lang = 'en-US')
|
|
334
|
-
{:xmlns => "http://www.w3.org/1999/xhtml", 'xml:lang' => lang, :lang => lang}
|
|
335
|
-
end
|
|
336
|
-
|
|
337
|
-
This can then be used in Haml, like so:
|
|
338
|
-
|
|
339
|
-
%html{html_attrs('fr-fr')}
|
|
340
|
-
|
|
341
|
-
This is compiled to:
|
|
342
|
-
|
|
343
|
-
<html lang='fr-fr' xml:lang='fr-fr' xmlns='http://www.w3.org/1999/xhtml'>
|
|
344
|
-
</html>
|
|
345
|
-
|
|
346
|
-
You can use as many such attribute methods as you want by separating them with
|
|
347
|
-
commas, like a Ruby argument list. All the hashes will be merged together, from
|
|
348
|
-
left to right. For example, if you defined
|
|
349
|
-
|
|
350
|
-
def hash1
|
|
351
|
-
{:bread => 'white', :filling => 'peanut butter and jelly'}
|
|
352
|
-
end
|
|
353
|
-
|
|
354
|
-
def hash2
|
|
355
|
-
{:bread => 'whole wheat'}
|
|
356
|
-
end
|
|
357
|
-
|
|
358
|
-
then
|
|
359
|
-
|
|
360
|
-
%sandwich{hash1, hash2, :delicious => 'true'}/
|
|
361
|
-
|
|
362
|
-
would compile to:
|
|
363
|
-
|
|
364
|
-
<sandwich bread='whole wheat' delicious='true' filling='peanut butter and jelly' />
|
|
365
|
-
|
|
366
|
-
Note that the Haml attributes list has the same syntax as a Ruby method call.
|
|
367
|
-
This means that any attribute methods must come before the hash literal.
|
|
368
|
-
|
|
369
|
-
Attribute methods aren't supported for HTML-style attributes.
|
|
370
|
-
|
|
371
286
|
#### Boolean Attributes
|
|
372
287
|
|
|
373
288
|
Some attributes, such as "checked" for `input` tags or "selected" for `option`
|
|
@@ -404,24 +319,38 @@ or using `true` and `false`:
|
|
|
404
319
|
|
|
405
320
|
%input(selected=true)
|
|
406
321
|
|
|
322
|
+
This feature works only for attributes that are included in
|
|
323
|
+
[`Haml::BOOLEAN_ATTRIBUTES`](https://github.com/haml/haml/blob/main/lib/haml/attribute_compiler.rb#L8),
|
|
324
|
+
as well as `data-` and `aria-` attributes.
|
|
325
|
+
|
|
326
|
+
%input{'data-hidden' => false}
|
|
327
|
+
%input{'aria-hidden' => false}
|
|
328
|
+
%input{'xyz-hidden' => false}
|
|
329
|
+
|
|
330
|
+
will render as:
|
|
331
|
+
|
|
332
|
+
<input>
|
|
333
|
+
<input>
|
|
334
|
+
<input xyz-hidden='false'>
|
|
335
|
+
|
|
336
|
+
|
|
407
337
|
<!-- The title to the next section (Prefixed Attributes) has changed. This
|
|
408
338
|
<a> tag is so old links to here still work. -->
|
|
409
339
|
<a id="html5_custom_data_attributes" style="border:0;"></a>
|
|
410
340
|
|
|
411
|
-
####
|
|
341
|
+
#### Data Attributes
|
|
412
342
|
|
|
413
343
|
HTML5 allows for adding
|
|
414
344
|
[custom non-visible data attributes](http://www.whatwg.org/specs/web-apps/current-work/multipage/elements.html#embedding-custom-non-visible-data-with-the-data-*-attributes)
|
|
415
345
|
to elements using attribute names beginning with `data-`. The
|
|
416
346
|
[Accessible Rich Internet Applications](http://www.w3.org/WAI/intro/aria)
|
|
417
|
-
specification makes use of attributes beginning with `aria-`.
|
|
418
|
-
frameworks that use non-standard attributes with a common prefix.
|
|
347
|
+
specification makes use of attributes beginning with `aria-`.
|
|
419
348
|
|
|
420
349
|
Haml can help generate collections of attributes that share a prefix like
|
|
421
|
-
these. Any entry in an attribute hash that has a Hash as its
|
|
422
|
-
into a series of attributes, one for each key/value pair in
|
|
423
|
-
attribute name formed by joining the “parent” key name to
|
|
424
|
-
hyphen.
|
|
350
|
+
these. Any entry in an `data` or `aria` attribute hash that has a Hash as its
|
|
351
|
+
value is expanded into a series of attributes, one for each key/value pair in
|
|
352
|
+
the hash, with the attribute name formed by joining the “parent” key name to
|
|
353
|
+
the key name with a hyphen. This works only for `data` or `aria`.
|
|
425
354
|
|
|
426
355
|
For example:
|
|
427
356
|
|
|
@@ -431,13 +360,6 @@ will render as:
|
|
|
431
360
|
|
|
432
361
|
<a data-author-id='123' data-category='7' href='/posts'>Posts By Author</a>
|
|
433
362
|
|
|
434
|
-
Notice that the underscore in `author_id` was replaced by a hyphen. If you wish
|
|
435
|
-
to suppress this behavior, you can set Haml's
|
|
436
|
-
{Haml::Options#hyphenate_data_attrs `:hyphenate_data_attrs` option} to `false`,
|
|
437
|
-
and the output will be rendered as:
|
|
438
|
-
|
|
439
|
-
<a data-author_id='123' data-category='7' href='/posts'>Posts By Author</a>
|
|
440
|
-
|
|
441
363
|
This expansion of hashes is recursive – any value of the child hash that is
|
|
442
364
|
itself a hash will create an attribute for each entry, with the attribute name
|
|
443
365
|
prefixed with all ancestor keys. For example:
|
|
@@ -639,7 +561,7 @@ prefix for both the id and class attributes. For example:
|
|
|
639
561
|
# file: app/controllers/users_controller.rb
|
|
640
562
|
|
|
641
563
|
def show
|
|
642
|
-
@user =
|
|
564
|
+
@user = FriendlyUser.find(15)
|
|
643
565
|
end
|
|
644
566
|
|
|
645
567
|
-# file: app/views/users/show.haml
|
|
@@ -650,7 +572,7 @@ prefix for both the id and class attributes. For example:
|
|
|
650
572
|
|
|
651
573
|
is compiled to:
|
|
652
574
|
|
|
653
|
-
<div class='
|
|
575
|
+
<div class='greeting_friendly_user' id='greeting_friendly_user_15'>
|
|
654
576
|
<bar class='fixnum' id='fixnum_581' />
|
|
655
577
|
Hello!
|
|
656
578
|
</div>
|
|
@@ -658,11 +580,11 @@ is compiled to:
|
|
|
658
580
|
If you require that the class be something other than the underscored object's
|
|
659
581
|
class, you can implement the `haml_object_ref` method on the object.
|
|
660
582
|
|
|
661
|
-
# file: app/models/
|
|
583
|
+
# file: app/models/friendly_user.rb
|
|
662
584
|
|
|
663
|
-
class
|
|
585
|
+
class FriendlyUser < ActiveRecord::Base
|
|
664
586
|
def haml_object_ref
|
|
665
|
-
"
|
|
587
|
+
"a_friendly_user"
|
|
666
588
|
end
|
|
667
589
|
end
|
|
668
590
|
|
|
@@ -673,7 +595,7 @@ class, you can implement the `haml_object_ref` method on the object.
|
|
|
673
595
|
|
|
674
596
|
is compiled to:
|
|
675
597
|
|
|
676
|
-
<div class='
|
|
598
|
+
<div class='a_friendly_user' id='a_friendly_user_15'>
|
|
677
599
|
Hello!
|
|
678
600
|
</div>
|
|
679
601
|
|
|
@@ -993,7 +915,7 @@ is compiled to:
|
|
|
993
915
|
|
|
994
916
|
### Whitespace Preservation: `~` {#tilde}
|
|
995
917
|
|
|
996
|
-
`~` works just like `=`, except that it runs {Haml::Helpers
|
|
918
|
+
`~` works just like `=`, except that it runs {Haml::Helpers.preserve}
|
|
997
919
|
on its input. For example,
|
|
998
920
|
|
|
999
921
|
~ "Foo\n<pre>Bar\nBaz</pre>"
|
|
@@ -1063,7 +985,7 @@ most code but you may have errors with code like the following:
|
|
|
1063
985
|
|
|
1064
986
|
%span #{'{'}
|
|
1065
987
|
|
|
1066
|
-
This code will generate a syntax error, complaining about unbalanced
|
|
988
|
+
This code will generate a syntax error, complaining about unbalanced braces.
|
|
1067
989
|
In cases like this, the recommended workaround is output the code as a Ruby
|
|
1068
990
|
string to force Haml to parse the code with Ruby.
|
|
1069
991
|
|
|
@@ -1154,9 +1076,6 @@ is compiled to
|
|
|
1154
1076
|
<p>I <strong>really</strong> prefer <em>raspberry</em> jam.</p>
|
|
1155
1077
|
</div>
|
|
1156
1078
|
|
|
1157
|
-
Note that `#{}` interpolation within filters is HTML-escaped if you specify true to
|
|
1158
|
-
{Haml::Options#escape_filter_interpolations `:escape_filter_interpolations`} option.
|
|
1159
|
-
|
|
1160
1079
|
The functionality of some filters such as Markdown can be provided by many
|
|
1161
1080
|
different libraries. Usually you don't have to worry about this - you can just
|
|
1162
1081
|
load the gem of your choice and Haml will automatically use it.
|
|
@@ -1167,7 +1086,7 @@ uses to implement many of its filters:
|
|
|
1167
1086
|
|
|
1168
1087
|
Tilt.prefer Tilt::RedCarpetTemplate
|
|
1169
1088
|
|
|
1170
|
-
See the [Tilt documentation](https://github.com/rtomayko/tilt
|
|
1089
|
+
See the [Tilt documentation](https://github.com/rtomayko/tilt) for
|
|
1171
1090
|
more info.
|
|
1172
1091
|
|
|
1173
1092
|
Haml comes with the following filters defined:
|
|
@@ -1219,7 +1138,7 @@ implemented using Tilt.
|
|
|
1219
1138
|
|
|
1220
1139
|
### `:maruku` {#maruku-filter}
|
|
1221
1140
|
|
|
1222
|
-
Parses the filtered text with [Maruku](https://github.com/
|
|
1141
|
+
Parses the filtered text with [Maruku](https://github.com/bhollis/maruku), which
|
|
1223
1142
|
has some non-standard extensions to Markdown.
|
|
1224
1143
|
|
|
1225
1144
|
As of Haml 4.0, this filter is defined in [Haml
|
|
@@ -1242,11 +1161,8 @@ HTML escape code for newlines, to preserve nice-looking output. See also
|
|
|
1242
1161
|
|
|
1243
1162
|
### `:ruby` {#ruby-filter}
|
|
1244
1163
|
|
|
1245
|
-
Parses the filtered text with the normal Ruby interpreter.
|
|
1246
|
-
|
|
1247
|
-
Not available if the {Haml::Options#suppress_eval `:suppress_eval`} option is
|
|
1248
|
-
set to true. The Ruby code is evaluated in the same context as the Haml
|
|
1249
|
-
template.
|
|
1164
|
+
Parses the filtered text with the normal Ruby interpreter.
|
|
1165
|
+
The Ruby code is evaluated in the same context as the Haml template.
|
|
1250
1166
|
|
|
1251
1167
|
### `:sass` {#sass-filter}
|
|
1252
1168
|
|
|
@@ -1271,43 +1187,44 @@ default. This filter is implemented using Tilt.
|
|
|
1271
1187
|
|
|
1272
1188
|
### Custom Filters
|
|
1273
1189
|
|
|
1274
|
-
You can also define your own filters.
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
Sometimes you need to manipulate whitespace in a more precise fashion than what
|
|
1279
|
-
the whitespace removal methods allow. There are a few helper methods that are
|
|
1280
|
-
useful when dealing with inline content. All these methods take a Haml block to
|
|
1281
|
-
modify.
|
|
1282
|
-
|
|
1283
|
-
### surround {#surround}
|
|
1190
|
+
You can also define your own filters.
|
|
1191
|
+
`Haml::Filters::YourCustomFilter#compile` should return
|
|
1192
|
+
[a Temple expression](https://github.com/judofyr/temple/blob/master/EXPRESSIONS.md).
|
|
1284
1193
|
|
|
1285
|
-
|
|
1286
|
-
surround the Haml block. If a second argument is not provided, the first
|
|
1287
|
-
argument is used as the second.
|
|
1194
|
+
The simplest example of a filter might be something like:
|
|
1288
1195
|
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1196
|
+
class HelloFilter < Haml::Filters::Base
|
|
1197
|
+
def compile(_node)
|
|
1198
|
+
[:static, "hello world"]
|
|
1199
|
+
end
|
|
1200
|
+
end
|
|
1201
|
+
|
|
1202
|
+
Haml::Filters.registered[:hello] ||= HelloFilter
|
|
1203
|
+
|
|
1204
|
+
A more complex example:
|
|
1205
|
+
|
|
1206
|
+
class BetterFilter < Haml::Filters::Base
|
|
1207
|
+
def compile(node)
|
|
1208
|
+
temple = [:multi]
|
|
1209
|
+
temple << [:static, "hello "]
|
|
1210
|
+
temple << compile_text(node.value[:text])
|
|
1211
|
+
temple << [:static, " world"]
|
|
1212
|
+
temple
|
|
1213
|
+
end
|
|
1214
|
+
|
|
1215
|
+
private
|
|
1216
|
+
def compile_text(text)
|
|
1217
|
+
if ::Haml::Util.contains_interpolation?(text)
|
|
1218
|
+
[:dynamic, ::Haml::Util.unescape_interpolation(text)]
|
|
1219
|
+
else
|
|
1220
|
+
[:static, text]
|
|
1221
|
+
end
|
|
1222
|
+
end
|
|
1223
|
+
end
|
|
1300
1224
|
|
|
1301
|
-
|
|
1225
|
+
Haml::Filters.registered[:better] ||= BetterFilter
|
|
1302
1226
|
|
|
1303
|
-
|
|
1304
|
-
= succeed "," do
|
|
1305
|
-
= link_to "filling out your profile", "#"
|
|
1306
|
-
= succeed "," do
|
|
1307
|
-
= link_to "adding a bio", "#"
|
|
1308
|
-
and
|
|
1309
|
-
= succeed "." do
|
|
1310
|
-
= link_to "inviting friends", "#"
|
|
1227
|
+
See {Haml::Filters} for examples.
|
|
1311
1228
|
|
|
1312
1229
|
## Multiline: `|` {#multiline}
|
|
1313
1230
|
|
|
@@ -1354,7 +1271,7 @@ can be wrapped over multiple lines,
|
|
|
1354
1271
|
as long as each line but the last ends in a comma
|
|
1355
1272
|
(see [Inserting Ruby](#inserting_ruby)).
|
|
1356
1273
|
|
|
1357
|
-
## Whitespace Preservation
|
|
1274
|
+
## Whitespace Preservation {#whitespace_preservation}
|
|
1358
1275
|
|
|
1359
1276
|
Sometimes you don't want Haml to indent all your text.
|
|
1360
1277
|
For example, tags like `pre` and `textarea` are whitespace-sensitive;
|
|
@@ -1367,14 +1284,26 @@ Haml won't try to re-format the indentation.
|
|
|
1367
1284
|
Literal `textarea` and `pre` tags automatically preserve content given through
|
|
1368
1285
|
`=`. Dynamically-generated `textarea`s and `pre`s can't be preserved
|
|
1369
1286
|
automatically, and so should be passed through
|
|
1370
|
-
{Haml::Helpers
|
|
1287
|
+
{Haml::Helpers.preserve} or the [`~` command](#tilde), which has the
|
|
1371
1288
|
same effect.
|
|
1372
1289
|
|
|
1373
1290
|
Blocks of literal text can be preserved using the [`:preserve` filter](#preserve-filter).
|
|
1374
1291
|
|
|
1375
|
-
##
|
|
1292
|
+
## Turbo
|
|
1376
1293
|
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1294
|
+
For people using Turbo-rails need to either:
|
|
1295
|
+
* follow the naming convention with the html format (ie. ensure any `.haml` files end `.html.haml`), or
|
|
1296
|
+
* add a monkey patch as follows:
|
|
1297
|
+
|
|
1298
|
+
```rb
|
|
1299
|
+
# config/initializers/haml.rb
|
|
1300
|
+
require "haml/rails_template"
|
|
1301
|
+
|
|
1302
|
+
module Haml
|
|
1303
|
+
class RailsTemplate
|
|
1304
|
+
def default_format
|
|
1305
|
+
:html
|
|
1306
|
+
end
|
|
1307
|
+
end
|
|
1308
|
+
end
|
|
1309
|
+
```
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
+
require 'haml/version'
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |spec|
|
|
7
|
+
spec.name = 'haml'
|
|
8
|
+
spec.version = Haml::VERSION
|
|
9
|
+
spec.authors = ['Natalie Weizenbaum', 'Hampton Catlin', 'Norman Clarke', 'Akira Matsuda', 'Takashi Kokubun']
|
|
10
|
+
spec.email = ['haml@googlegroups.com', 'ronnie@dio.jp']
|
|
11
|
+
|
|
12
|
+
spec.summary = %q{An elegant, structured (X)HTML/XML templating engine.}
|
|
13
|
+
spec.description = %q{An elegant, structured (X)HTML/XML templating engine.}
|
|
14
|
+
spec.homepage = 'https://haml.info'
|
|
15
|
+
spec.license = 'MIT'
|
|
16
|
+
|
|
17
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features|sample|benchmark)/}) }
|
|
18
|
+
spec.bindir = 'exe'
|
|
19
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
20
|
+
spec.require_paths = ['lib']
|
|
21
|
+
|
|
22
|
+
spec.metadata = { 'rubygems_mfa_required' => 'true' }
|
|
23
|
+
|
|
24
|
+
spec.metadata["changelog_uri"] = spec.homepage + "/blob/main/CHANGELOG.md"
|
|
25
|
+
|
|
26
|
+
spec.required_ruby_version = '>= 2.1.0'
|
|
27
|
+
|
|
28
|
+
spec.add_dependency 'temple', '>= 0.8.2'
|
|
29
|
+
spec.add_dependency 'thor'
|
|
30
|
+
spec.add_dependency 'tilt'
|
|
31
|
+
|
|
32
|
+
spec.add_development_dependency 'benchmark_driver'
|
|
33
|
+
spec.add_development_dependency 'bundler'
|
|
34
|
+
spec.add_development_dependency 'coffee-script'
|
|
35
|
+
spec.add_development_dependency 'erubi'
|
|
36
|
+
spec.add_development_dependency 'haml', '>= 5'
|
|
37
|
+
spec.add_development_dependency 'less'
|
|
38
|
+
spec.add_development_dependency 'minitest-reporters', '~> 1.1'
|
|
39
|
+
spec.add_development_dependency 'rails', '>= 4.0'
|
|
40
|
+
spec.add_development_dependency 'rake'
|
|
41
|
+
spec.add_development_dependency 'sass'
|
|
42
|
+
spec.add_development_dependency 'slim'
|
|
43
|
+
spec.add_development_dependency 'string_template'
|
|
44
|
+
spec.add_development_dependency 'unindent'
|
|
45
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module Haml
|
|
3
|
+
class Ambles < Temple::Filter
|
|
4
|
+
define_options :preamble, :postamble
|
|
5
|
+
|
|
6
|
+
def initialize(*)
|
|
7
|
+
super
|
|
8
|
+
@preamble = options[:preamble]
|
|
9
|
+
@postamble = options[:postamble]
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def call(ast)
|
|
13
|
+
ret = [:multi]
|
|
14
|
+
ret << [:static, @preamble] if @preamble
|
|
15
|
+
ret << ast
|
|
16
|
+
ret << [:static, @postamble] if @postamble
|
|
17
|
+
ret
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'haml/object_ref'
|
|
3
|
+
|
|
4
|
+
module Haml::AttributeBuilder
|
|
5
|
+
class << self
|
|
6
|
+
def build(escape_attrs, quote, format, object_ref, *hashes)
|
|
7
|
+
hashes << Haml::ObjectRef.parse(object_ref) if object_ref
|
|
8
|
+
buf = []
|
|
9
|
+
hash = merge_all_attrs(hashes)
|
|
10
|
+
|
|
11
|
+
keys = hash.keys.sort!
|
|
12
|
+
keys.each do |key|
|
|
13
|
+
case key
|
|
14
|
+
when 'id'
|
|
15
|
+
buf << " id=#{quote}#{build_id(escape_attrs, *hash[key])}#{quote}"
|
|
16
|
+
when 'class'
|
|
17
|
+
buf << " class=#{quote}#{build_class(escape_attrs, *hash[key])}#{quote}"
|
|
18
|
+
when 'data'
|
|
19
|
+
buf << build_data(escape_attrs, quote, *hash[key])
|
|
20
|
+
when 'aria'
|
|
21
|
+
buf << build_aria(escape_attrs, quote, *hash[key])
|
|
22
|
+
when *Haml::BOOLEAN_ATTRIBUTES, /\Adata-/, /\Aaria-/
|
|
23
|
+
build_boolean!(escape_attrs, quote, format, buf, key, hash[key])
|
|
24
|
+
else
|
|
25
|
+
buf << " #{key}=#{quote}#{escape_html(escape_attrs, hash[key].to_s)}#{quote}"
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
buf.join
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def build_id(escape_attrs, *values)
|
|
32
|
+
escape_html(escape_attrs, values.flatten.select { |v| v }.join('_'))
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def build_class(escape_attrs, *values)
|
|
36
|
+
if values.size == 1
|
|
37
|
+
value = values.first
|
|
38
|
+
case
|
|
39
|
+
when value.is_a?(String)
|
|
40
|
+
# noop
|
|
41
|
+
when value.is_a?(Array)
|
|
42
|
+
value = value.flatten.select { |v| v }.map(&:to_s).uniq.join(' ')
|
|
43
|
+
when value
|
|
44
|
+
value = value.to_s
|
|
45
|
+
else
|
|
46
|
+
return ''
|
|
47
|
+
end
|
|
48
|
+
return escape_html(escape_attrs, value)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
classes = []
|
|
52
|
+
values.each do |value|
|
|
53
|
+
case
|
|
54
|
+
when value.is_a?(String)
|
|
55
|
+
classes += value.split(' ')
|
|
56
|
+
when value.is_a?(Array)
|
|
57
|
+
classes += value.flatten.select { |v| v }
|
|
58
|
+
when value
|
|
59
|
+
classes << value.to_s
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
escape_html(escape_attrs, classes.map(&:to_s).uniq.join(' '))
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def build_data(escape_attrs, quote, *hashes)
|
|
66
|
+
build_data_attribute(:data, escape_attrs, quote, *hashes)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def build_aria(escape_attrs, quote, *hashes)
|
|
70
|
+
build_data_attribute(:aria, escape_attrs, quote, *hashes)
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
private
|
|
74
|
+
|
|
75
|
+
def build_data_attribute(key, escape_attrs, quote, *hashes)
|
|
76
|
+
attrs = []
|
|
77
|
+
if hashes.size > 1 && hashes.all? { |h| h.is_a?(Hash) }
|
|
78
|
+
data_value = merge_all_attrs(hashes)
|
|
79
|
+
else
|
|
80
|
+
data_value = hashes.last
|
|
81
|
+
end
|
|
82
|
+
hash = flatten_attributes(key => data_value)
|
|
83
|
+
|
|
84
|
+
hash.sort_by(&:first).each do |key, value|
|
|
85
|
+
case value
|
|
86
|
+
when true
|
|
87
|
+
attrs << " #{key}"
|
|
88
|
+
when nil, false
|
|
89
|
+
# noop
|
|
90
|
+
else
|
|
91
|
+
attrs << " #{key}=#{quote}#{escape_html(escape_attrs, value.to_s)}#{quote}"
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
attrs.join
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def flatten_attributes(attributes)
|
|
98
|
+
flattened = {}
|
|
99
|
+
|
|
100
|
+
attributes.each do |key, value|
|
|
101
|
+
case value
|
|
102
|
+
when attributes
|
|
103
|
+
when Hash
|
|
104
|
+
flatten_attributes(value).each do |k, v|
|
|
105
|
+
if k.nil?
|
|
106
|
+
flattened[key] = v
|
|
107
|
+
else
|
|
108
|
+
flattened["#{key}-#{k.to_s.tr('_', '-')}"] = v
|
|
109
|
+
end
|
|
110
|
+
end
|
|
111
|
+
else
|
|
112
|
+
flattened[key] = value if value
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
flattened
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
def merge_all_attrs(hashes)
|
|
119
|
+
merged = {}
|
|
120
|
+
hashes.each do |hash|
|
|
121
|
+
unless hash.is_a?(Hash)
|
|
122
|
+
raise ArgumentError, "Non-hash object is given to attributes!"
|
|
123
|
+
end
|
|
124
|
+
hash.each do |key, value|
|
|
125
|
+
key = key.to_s
|
|
126
|
+
case key
|
|
127
|
+
when 'id', 'class', 'data', 'aria'
|
|
128
|
+
merged[key] ||= []
|
|
129
|
+
merged[key] << value
|
|
130
|
+
else
|
|
131
|
+
merged[key] = value
|
|
132
|
+
end
|
|
133
|
+
end
|
|
134
|
+
end
|
|
135
|
+
merged
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
def build_boolean!(escape_attrs, quote, format, buf, key, value)
|
|
139
|
+
case value
|
|
140
|
+
when true
|
|
141
|
+
case format
|
|
142
|
+
when :xhtml
|
|
143
|
+
buf << " #{key}=#{quote}#{key}#{quote}"
|
|
144
|
+
else
|
|
145
|
+
buf << " #{key}"
|
|
146
|
+
end
|
|
147
|
+
when false, nil
|
|
148
|
+
# omitted
|
|
149
|
+
else
|
|
150
|
+
buf << " #{key}=#{quote}#{escape_html(escape_attrs, value)}#{quote}"
|
|
151
|
+
end
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
def escape_html(escape_attrs, str)
|
|
155
|
+
if escape_attrs
|
|
156
|
+
Haml::Util.escape_html(str)
|
|
157
|
+
else
|
|
158
|
+
str
|
|
159
|
+
end
|
|
160
|
+
end
|
|
161
|
+
end
|
|
162
|
+
end
|