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
|
@@ -144,6 +144,7 @@ module REXML
|
|
|
144
144
|
PEREFERENCE_PATTERN = /#{PEREFERENCE}/um
|
|
145
145
|
TAG_PATTERN = /((?>#{QNAME_STR}))\s*/um
|
|
146
146
|
CLOSE_PATTERN = /(#{QNAME_STR})\s*>/um
|
|
147
|
+
EQUAL_PATTERN = /\s*=\s*/um
|
|
147
148
|
ATTLISTDECL_END = /\s+#{NAME}(?:#{ATTDEF})*\s*>/um
|
|
148
149
|
NAME_PATTERN = /#{NAME}/um
|
|
149
150
|
GEDECL_PATTERN = "\\s+#{NAME}\\s+#{ENTITYDEF}\\s*>"
|
|
@@ -168,6 +169,7 @@ module REXML
|
|
|
168
169
|
@entity_expansion_limit = Security.entity_expansion_limit
|
|
169
170
|
@entity_expansion_text_limit = Security.entity_expansion_text_limit
|
|
170
171
|
@source.ensure_buffer
|
|
172
|
+
@version = nil
|
|
171
173
|
end
|
|
172
174
|
|
|
173
175
|
def add_listener( listener )
|
|
@@ -206,12 +208,12 @@ module REXML
|
|
|
206
208
|
|
|
207
209
|
# Returns true if there are no more events
|
|
208
210
|
def empty?
|
|
209
|
-
|
|
211
|
+
(@source.empty? and @stack.empty?)
|
|
210
212
|
end
|
|
211
213
|
|
|
212
214
|
# Returns true if there are more events. Synonymous with !empty?
|
|
213
215
|
def has_next?
|
|
214
|
-
|
|
216
|
+
!(@source.empty? and @stack.empty?)
|
|
215
217
|
end
|
|
216
218
|
|
|
217
219
|
# Push an event back on the head of the stream. This method
|
|
@@ -264,6 +266,11 @@ module REXML
|
|
|
264
266
|
path = "/" + @tags.join("/")
|
|
265
267
|
raise ParseException.new("Missing end tag for '#{path}'", @source)
|
|
266
268
|
end
|
|
269
|
+
|
|
270
|
+
unless @document_status == :in_element
|
|
271
|
+
raise ParseException.new("Malformed XML: No root element", @source)
|
|
272
|
+
end
|
|
273
|
+
|
|
267
274
|
return [ :end_document ]
|
|
268
275
|
end
|
|
269
276
|
return @stack.shift if @stack.size > 0
|
|
@@ -277,17 +284,10 @@ module REXML
|
|
|
277
284
|
return process_instruction
|
|
278
285
|
elsif @source.match?("<!", true)
|
|
279
286
|
if @source.match?("--", true)
|
|
280
|
-
|
|
281
|
-
if md.nil?
|
|
282
|
-
raise REXML::ParseException.new("Unclosed comment", @source)
|
|
283
|
-
end
|
|
284
|
-
if /--|-\z/.match?(md[1])
|
|
285
|
-
raise REXML::ParseException.new("Malformed comment", @source)
|
|
286
|
-
end
|
|
287
|
-
return [ :comment, md[1] ]
|
|
287
|
+
return [ :comment, process_comment ]
|
|
288
288
|
elsif @source.match?("DOCTYPE", true)
|
|
289
289
|
base_error_message = "Malformed DOCTYPE"
|
|
290
|
-
unless @source.
|
|
290
|
+
unless @source.skip_spaces
|
|
291
291
|
if @source.match?(">")
|
|
292
292
|
message = "#{base_error_message}: name is missing"
|
|
293
293
|
else
|
|
@@ -297,7 +297,7 @@ module REXML
|
|
|
297
297
|
raise REXML::ParseException.new(message, @source)
|
|
298
298
|
end
|
|
299
299
|
name = parse_name(base_error_message)
|
|
300
|
-
@source.
|
|
300
|
+
@source.skip_spaces
|
|
301
301
|
if @source.match?("[", true)
|
|
302
302
|
id = [nil, nil, nil]
|
|
303
303
|
@document_status = :in_doctype
|
|
@@ -313,7 +313,7 @@ module REXML
|
|
|
313
313
|
# For backward compatibility
|
|
314
314
|
id[1], id[2] = id[2], nil
|
|
315
315
|
end
|
|
316
|
-
@source.
|
|
316
|
+
@source.skip_spaces
|
|
317
317
|
if @source.match?("[", true)
|
|
318
318
|
@document_status = :in_doctype
|
|
319
319
|
elsif @source.match?(">", true)
|
|
@@ -326,7 +326,7 @@ module REXML
|
|
|
326
326
|
end
|
|
327
327
|
args = [:start_doctype, name, *id]
|
|
328
328
|
if @document_status == :after_doctype
|
|
329
|
-
@source.
|
|
329
|
+
@source.skip_spaces
|
|
330
330
|
@stack << [ :end_doctype ]
|
|
331
331
|
end
|
|
332
332
|
return args
|
|
@@ -337,7 +337,7 @@ module REXML
|
|
|
337
337
|
end
|
|
338
338
|
end
|
|
339
339
|
if @document_status == :in_doctype
|
|
340
|
-
@source.
|
|
340
|
+
@source.skip_spaces
|
|
341
341
|
start_position = @source.position
|
|
342
342
|
if @source.match?("<!", true)
|
|
343
343
|
if @source.match?("ELEMENT", true)
|
|
@@ -398,7 +398,7 @@ module REXML
|
|
|
398
398
|
return [ :attlistdecl, element, pairs, contents ]
|
|
399
399
|
elsif @source.match?("NOTATION", true)
|
|
400
400
|
base_error_message = "Malformed notation declaration"
|
|
401
|
-
unless @source.
|
|
401
|
+
unless @source.skip_spaces
|
|
402
402
|
if @source.match?(">")
|
|
403
403
|
message = "#{base_error_message}: name is missing"
|
|
404
404
|
else
|
|
@@ -411,31 +411,28 @@ module REXML
|
|
|
411
411
|
id = parse_id(base_error_message,
|
|
412
412
|
accept_external_id: true,
|
|
413
413
|
accept_public_id: true)
|
|
414
|
-
@source.
|
|
414
|
+
@source.skip_spaces
|
|
415
415
|
unless @source.match?(">", true)
|
|
416
416
|
message = "#{base_error_message}: garbage before end >"
|
|
417
417
|
raise REXML::ParseException.new(message, @source)
|
|
418
418
|
end
|
|
419
419
|
return [:notationdecl, name, *id]
|
|
420
|
-
elsif
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
end
|
|
425
|
-
return [ :comment, md[1] ] if md
|
|
420
|
+
elsif @source.match?("--", true)
|
|
421
|
+
return [ :comment, process_comment ]
|
|
422
|
+
else
|
|
423
|
+
raise REXML::ParseException.new("Malformed node: Started with '<!' but not a comment nor ELEMENT,ENTITY,ATTLIST,NOTATION", @source)
|
|
426
424
|
end
|
|
427
425
|
elsif match = @source.match(/(%.*?;)\s*/um, true)
|
|
428
426
|
return [ :externalentity, match[1] ]
|
|
429
427
|
elsif @source.match?(/\]\s*>/um, true)
|
|
430
428
|
@document_status = :after_doctype
|
|
431
429
|
return [ :end_doctype ]
|
|
432
|
-
|
|
433
|
-
if @document_status == :in_doctype
|
|
430
|
+
else
|
|
434
431
|
raise ParseException.new("Malformed DOCTYPE: invalid declaration", @source)
|
|
435
432
|
end
|
|
436
433
|
end
|
|
437
434
|
if @document_status == :after_doctype
|
|
438
|
-
@source.
|
|
435
|
+
@source.skip_spaces
|
|
439
436
|
end
|
|
440
437
|
begin
|
|
441
438
|
start_position = @source.position
|
|
@@ -460,23 +457,19 @@ module REXML
|
|
|
460
457
|
end
|
|
461
458
|
return [ :end_element, last_tag ]
|
|
462
459
|
elsif @source.match?("!", true)
|
|
463
|
-
md = @source.match(/([^>]*>)/um)
|
|
464
460
|
#STDERR.puts "SOURCE BUFFER = #{source.buffer}, #{source.buffer.size}"
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
if
|
|
470
|
-
|
|
461
|
+
if @source.match?("--", true)
|
|
462
|
+
return [ :comment, process_comment ]
|
|
463
|
+
elsif @source.match?("[CDATA[", true)
|
|
464
|
+
text = @source.read_until("]]>")
|
|
465
|
+
if text.chomp!("]]>")
|
|
466
|
+
return [ :cdata, text ]
|
|
467
|
+
else
|
|
468
|
+
raise REXML::ParseException.new("Malformed CDATA: Missing end ']]>'", @source)
|
|
471
469
|
end
|
|
472
|
-
|
|
473
|
-
return [ :comment, md[1] ]
|
|
474
470
|
else
|
|
475
|
-
|
|
476
|
-
return [ :cdata, md[1] ] if md
|
|
471
|
+
raise REXML::ParseException.new("Malformed node: Started with '<!' but not a comment nor CDATA", @source)
|
|
477
472
|
end
|
|
478
|
-
raise REXML::ParseException.new( "Declarations can only occur "+
|
|
479
|
-
"in the doctype declaration.", @source)
|
|
480
473
|
elsif @source.match?("?", true)
|
|
481
474
|
return process_instruction
|
|
482
475
|
else
|
|
@@ -536,7 +529,8 @@ module REXML
|
|
|
536
529
|
raise REXML::ParseException.new( "Exception parsing",
|
|
537
530
|
@source, self, (error ? error : $!) )
|
|
538
531
|
end
|
|
539
|
-
|
|
532
|
+
# NOTE: The end of the method never runs, because it is unreachable.
|
|
533
|
+
# All branches of code above have explicit unconditional return or raise statements.
|
|
540
534
|
end
|
|
541
535
|
private :pull_event
|
|
542
536
|
|
|
@@ -655,6 +649,10 @@ module REXML
|
|
|
655
649
|
true
|
|
656
650
|
end
|
|
657
651
|
|
|
652
|
+
def normalize_xml_declaration_encoding(xml_declaration_encoding)
|
|
653
|
+
/\AUTF-16(?:BE|LE)\z/i.match?(xml_declaration_encoding) ? "UTF-16" : nil
|
|
654
|
+
end
|
|
655
|
+
|
|
658
656
|
def parse_name(base_error_message)
|
|
659
657
|
md = @source.match(Private::NAME_PATTERN, true)
|
|
660
658
|
unless md
|
|
@@ -734,39 +732,99 @@ module REXML
|
|
|
734
732
|
end
|
|
735
733
|
end
|
|
736
734
|
|
|
735
|
+
def process_comment
|
|
736
|
+
text = @source.read_until("-->")
|
|
737
|
+
unless text.chomp!("-->")
|
|
738
|
+
raise REXML::ParseException.new("Unclosed comment: Missing end '-->'", @source)
|
|
739
|
+
end
|
|
740
|
+
|
|
741
|
+
if text.include? "--" or text.end_with?("-")
|
|
742
|
+
raise REXML::ParseException.new("Malformed comment", @source)
|
|
743
|
+
end
|
|
744
|
+
text
|
|
745
|
+
end
|
|
746
|
+
|
|
737
747
|
def process_instruction
|
|
738
748
|
name = parse_name("Malformed XML: Invalid processing instruction node")
|
|
739
|
-
if
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
749
|
+
if name == "xml"
|
|
750
|
+
xml_declaration
|
|
751
|
+
else # PITarget
|
|
752
|
+
if @source.skip_spaces # e.g. <?name content?>
|
|
753
|
+
start_position = @source.position
|
|
754
|
+
content = @source.read_until("?>")
|
|
755
|
+
unless content.chomp!("?>")
|
|
756
|
+
@source.position = start_position
|
|
757
|
+
raise ParseException.new("Malformed XML: Unclosed processing instruction: <#{name}>", @source)
|
|
758
|
+
end
|
|
759
|
+
else # e.g. <?name?>
|
|
760
|
+
content = nil
|
|
761
|
+
unless @source.match?("?>", true)
|
|
762
|
+
raise ParseException.new("Malformed XML: Unclosed processing instruction: <#{name}>", @source)
|
|
763
|
+
end
|
|
743
764
|
end
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
765
|
+
[:processing_instruction, name, content]
|
|
766
|
+
end
|
|
767
|
+
end
|
|
768
|
+
|
|
769
|
+
def xml_declaration
|
|
770
|
+
unless @version.nil?
|
|
771
|
+
raise ParseException.new("Malformed XML: XML declaration is duplicated", @source)
|
|
772
|
+
end
|
|
773
|
+
if @document_status
|
|
774
|
+
raise ParseException.new("Malformed XML: XML declaration is not at the start", @source)
|
|
775
|
+
end
|
|
776
|
+
unless @source.skip_spaces
|
|
777
|
+
raise ParseException.new("Malformed XML: XML declaration misses spaces before version", @source)
|
|
778
|
+
end
|
|
779
|
+
unless @source.match?("version", true)
|
|
780
|
+
raise ParseException.new("Malformed XML: XML declaration misses version", @source)
|
|
781
|
+
end
|
|
782
|
+
@version = parse_attribute_value_with_equal("xml")
|
|
783
|
+
unless @source.skip_spaces
|
|
747
784
|
unless @source.match?("?>", true)
|
|
748
|
-
raise ParseException.new("Malformed XML: Unclosed
|
|
785
|
+
raise ParseException.new("Malformed XML: Unclosed XML declaration", @source)
|
|
749
786
|
end
|
|
787
|
+
encoding = normalize_xml_declaration_encoding(@source.encoding)
|
|
788
|
+
return [ :xmldecl, @version, encoding, nil ] # e.g. <?xml version="1.0"?>
|
|
750
789
|
end
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
790
|
+
|
|
791
|
+
if @source.match?("encoding", true)
|
|
792
|
+
encoding = parse_attribute_value_with_equal("xml")
|
|
793
|
+
unless @source.skip_spaces
|
|
794
|
+
unless @source.match?("?>", true)
|
|
795
|
+
raise ParseException.new("Malformed XML: Unclosed XML declaration", @source)
|
|
796
|
+
end
|
|
797
|
+
if need_source_encoding_update?(encoding)
|
|
798
|
+
@source.encoding = encoding
|
|
799
|
+
end
|
|
800
|
+
encoding ||= normalize_xml_declaration_encoding(@source.encoding)
|
|
801
|
+
return [ :xmldecl, @version, encoding, nil ] # e.g. <?xml version="1.1" encoding="UTF-8"?>
|
|
761
802
|
end
|
|
762
|
-
|
|
763
|
-
|
|
803
|
+
end
|
|
804
|
+
|
|
805
|
+
if @source.match?("standalone", true)
|
|
806
|
+
standalone = parse_attribute_value_with_equal("xml")
|
|
807
|
+
case standalone
|
|
808
|
+
when "yes", "no"
|
|
809
|
+
else
|
|
810
|
+
raise ParseException.new("Malformed XML: XML declaration standalone is not yes or no : <#{standalone}>", @source)
|
|
764
811
|
end
|
|
765
|
-
standalone = STANDALONE.match(content)
|
|
766
|
-
standalone = standalone[1] unless standalone.nil?
|
|
767
|
-
return [ :xmldecl, version, encoding, standalone ]
|
|
768
812
|
end
|
|
769
|
-
|
|
813
|
+
@source.skip_spaces
|
|
814
|
+
unless @source.match?("?>", true)
|
|
815
|
+
raise ParseException.new("Malformed XML: Unclosed XML declaration", @source)
|
|
816
|
+
end
|
|
817
|
+
|
|
818
|
+
if need_source_encoding_update?(encoding)
|
|
819
|
+
@source.encoding = encoding
|
|
820
|
+
end
|
|
821
|
+
encoding ||= normalize_xml_declaration_encoding(@source.encoding)
|
|
822
|
+
|
|
823
|
+
# e.g. <?xml version="1.0" ?>
|
|
824
|
+
# <?xml version="1.1" encoding="UTF-8" ?>
|
|
825
|
+
# <?xml version="1.1" standalone="yes"?>
|
|
826
|
+
# <?xml version="1.1" encoding="UTF-8" standalone="yes" ?>
|
|
827
|
+
[ :xmldecl, @version, encoding, standalone ]
|
|
770
828
|
end
|
|
771
829
|
|
|
772
830
|
if StringScanner::Version < "3.1.1"
|
|
@@ -788,6 +846,25 @@ module REXML
|
|
|
788
846
|
end
|
|
789
847
|
end
|
|
790
848
|
|
|
849
|
+
def parse_attribute_value_with_equal(name)
|
|
850
|
+
unless @source.match?(Private::EQUAL_PATTERN, true)
|
|
851
|
+
message = "Missing attribute equal: <#{name}>"
|
|
852
|
+
raise REXML::ParseException.new(message, @source)
|
|
853
|
+
end
|
|
854
|
+
unless quote = scan_quote
|
|
855
|
+
message = "Missing attribute value start quote: <#{name}>"
|
|
856
|
+
raise REXML::ParseException.new(message, @source)
|
|
857
|
+
end
|
|
858
|
+
start_position = @source.position
|
|
859
|
+
value = @source.read_until(quote)
|
|
860
|
+
unless value.chomp!(quote)
|
|
861
|
+
@source.position = start_position
|
|
862
|
+
message = "Missing attribute value end quote: <#{name}>: <#{quote}>"
|
|
863
|
+
raise REXML::ParseException.new(message, @source)
|
|
864
|
+
end
|
|
865
|
+
value
|
|
866
|
+
end
|
|
867
|
+
|
|
791
868
|
def parse_attributes(prefixes)
|
|
792
869
|
attributes = {}
|
|
793
870
|
expanded_names = {}
|
|
@@ -802,23 +879,8 @@ module REXML
|
|
|
802
879
|
name = match[1]
|
|
803
880
|
prefix = match[2]
|
|
804
881
|
local_part = match[3]
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
message = "Missing attribute equal: <#{name}>"
|
|
808
|
-
raise REXML::ParseException.new(message, @source)
|
|
809
|
-
end
|
|
810
|
-
unless quote = scan_quote
|
|
811
|
-
message = "Missing attribute value start quote: <#{name}>"
|
|
812
|
-
raise REXML::ParseException.new(message, @source)
|
|
813
|
-
end
|
|
814
|
-
start_position = @source.position
|
|
815
|
-
value = @source.read_until(quote)
|
|
816
|
-
unless value.chomp!(quote)
|
|
817
|
-
@source.position = start_position
|
|
818
|
-
message = "Missing attribute value end quote: <#{name}>: <#{quote}>"
|
|
819
|
-
raise REXML::ParseException.new(message, @source)
|
|
820
|
-
end
|
|
821
|
-
@source.match?(/\s*/um, true)
|
|
882
|
+
value = parse_attribute_value_with_equal(name)
|
|
883
|
+
@source.skip_spaces
|
|
822
884
|
if prefix == "xmlns"
|
|
823
885
|
if local_part == "xml"
|
|
824
886
|
if value != Private::XML_PREFIXED_NAMESPACE
|
|
@@ -215,7 +215,7 @@ module REXML
|
|
|
215
215
|
else
|
|
216
216
|
path << yield( parsed )
|
|
217
217
|
end
|
|
218
|
-
|
|
218
|
+
path.squeeze(" ")
|
|
219
219
|
end
|
|
220
220
|
# For backward compatibility
|
|
221
221
|
alias_method :preciate_to_string, :predicate_to_path
|
|
@@ -252,7 +252,7 @@ module REXML
|
|
|
252
252
|
path = path[1..-1]
|
|
253
253
|
end
|
|
254
254
|
end
|
|
255
|
-
|
|
255
|
+
RelativeLocationPath( path, parsed ) if path.size > 0
|
|
256
256
|
end
|
|
257
257
|
|
|
258
258
|
#RelativeLocationPath
|
|
@@ -388,7 +388,7 @@ module REXML
|
|
|
388
388
|
else
|
|
389
389
|
path = original_path
|
|
390
390
|
end
|
|
391
|
-
|
|
391
|
+
path
|
|
392
392
|
end
|
|
393
393
|
|
|
394
394
|
# Filters the supplied nodeset on the predicate(s)
|
|
@@ -600,7 +600,7 @@ module REXML
|
|
|
600
600
|
end
|
|
601
601
|
rest = LocationPath(rest, n) if rest =~ /\A[\/\.\@\[\w*]/
|
|
602
602
|
parsed.concat(n)
|
|
603
|
-
|
|
603
|
+
rest
|
|
604
604
|
end
|
|
605
605
|
|
|
606
606
|
#| FilterExpr Predicate
|
|
@@ -41,7 +41,7 @@ module REXML
|
|
|
41
41
|
else
|
|
42
42
|
results = filter([element], path)
|
|
43
43
|
end
|
|
44
|
-
|
|
44
|
+
results
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
# Given an array of nodes it filters the array based on the path. The
|
|
@@ -51,18 +51,18 @@ module REXML
|
|
|
51
51
|
return elements if path.nil? or path == '' or elements.size == 0
|
|
52
52
|
case path
|
|
53
53
|
when /^\/\//u # Descendant
|
|
54
|
-
|
|
54
|
+
axe( elements, "descendant-or-self", $' )
|
|
55
55
|
when /^\/?\b(\w[-\w]*)\b::/u # Axe
|
|
56
|
-
|
|
56
|
+
axe( elements, $1, $' )
|
|
57
57
|
when /^\/(?=\b([:!\w][-\.\w]*:)?[-!\*\.\w]*\b([^:(]|$)|\*)/u # Child
|
|
58
58
|
rest = $'
|
|
59
59
|
results = []
|
|
60
60
|
elements.each do |element|
|
|
61
61
|
results |= filter( element.to_a, rest )
|
|
62
62
|
end
|
|
63
|
-
|
|
63
|
+
results
|
|
64
64
|
when /^\/?(\w[-\w]*)\(/u # / Function
|
|
65
|
-
|
|
65
|
+
function( elements, $1, $' )
|
|
66
66
|
when Namespace::NAMESPLIT # Element name
|
|
67
67
|
name = $2
|
|
68
68
|
ns = $1
|
|
@@ -73,21 +73,21 @@ module REXML
|
|
|
73
73
|
(element.name == name and
|
|
74
74
|
element.namespace == Functions.namespace_context[ns])))
|
|
75
75
|
end
|
|
76
|
-
|
|
76
|
+
filter( elements, rest )
|
|
77
77
|
when /^\/\[/u
|
|
78
78
|
matches = []
|
|
79
79
|
elements.each do |element|
|
|
80
80
|
matches |= predicate( element.to_a, path[1..-1] ) if element.kind_of? Element
|
|
81
81
|
end
|
|
82
|
-
|
|
82
|
+
matches
|
|
83
83
|
when /^\[/u # Predicate
|
|
84
|
-
|
|
84
|
+
predicate( elements, path )
|
|
85
85
|
when /^\/?\.\.\./u # Ancestor
|
|
86
|
-
|
|
86
|
+
axe( elements, "ancestor", $' )
|
|
87
87
|
when /^\/?\.\./u # Parent
|
|
88
|
-
|
|
88
|
+
filter( elements.collect{|e|e.parent}, $' )
|
|
89
89
|
when /^\/?\./u # Self
|
|
90
|
-
|
|
90
|
+
filter( elements, $' )
|
|
91
91
|
when /^\*/u # Any
|
|
92
92
|
results = []
|
|
93
93
|
elements.each do |element|
|
|
@@ -98,9 +98,10 @@ module REXML
|
|
|
98
98
|
# results |= filter( children, $' )
|
|
99
99
|
#end
|
|
100
100
|
end
|
|
101
|
-
|
|
101
|
+
results
|
|
102
|
+
else
|
|
103
|
+
[]
|
|
102
104
|
end
|
|
103
|
-
return []
|
|
104
105
|
end
|
|
105
106
|
|
|
106
107
|
def QuickPath::axe( elements, axe_name, rest )
|
|
@@ -138,7 +139,7 @@ module REXML
|
|
|
138
139
|
matches = filter(elements.collect{|element|
|
|
139
140
|
element.previous_sibling}.uniq, rest )
|
|
140
141
|
end
|
|
141
|
-
|
|
142
|
+
matches.uniq
|
|
142
143
|
end
|
|
143
144
|
|
|
144
145
|
OPERAND_ = '((?=(?:(?!and|or).)*[^\s<>=])[^\s<>=]+)'
|
|
@@ -200,15 +201,15 @@ module REXML
|
|
|
200
201
|
results << element
|
|
201
202
|
end
|
|
202
203
|
end
|
|
203
|
-
|
|
204
|
+
filter( results, rest )
|
|
204
205
|
end
|
|
205
206
|
|
|
206
207
|
def QuickPath::attribute( name )
|
|
207
|
-
|
|
208
|
+
Functions.node.attributes[name] if Functions.node.kind_of? Element
|
|
208
209
|
end
|
|
209
210
|
|
|
210
211
|
def QuickPath::name()
|
|
211
|
-
|
|
212
|
+
Functions.node.name if Functions.node.kind_of? Element
|
|
212
213
|
end
|
|
213
214
|
|
|
214
215
|
def QuickPath::method_missing( id, *args )
|
|
@@ -234,7 +235,7 @@ module REXML
|
|
|
234
235
|
results << element if Functions.pair[0] == res
|
|
235
236
|
end
|
|
236
237
|
end
|
|
237
|
-
|
|
238
|
+
results
|
|
238
239
|
end
|
|
239
240
|
|
|
240
241
|
def QuickPath::parse_args( element, string )
|
|
@@ -10,7 +10,7 @@ module REXML
|
|
|
10
10
|
|
|
11
11
|
# Get the entity expansion limit. By default the limit is set to 10000.
|
|
12
12
|
def self.entity_expansion_limit
|
|
13
|
-
|
|
13
|
+
@@entity_expansion_limit
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
@@entity_expansion_text_limit = 10_240
|
|
@@ -22,7 +22,7 @@ module REXML
|
|
|
22
22
|
|
|
23
23
|
# Get the entity expansion limit. By default the limit is set to 10240.
|
|
24
24
|
def self.entity_expansion_text_limit
|
|
25
|
-
|
|
25
|
+
@@entity_expansion_text_limit
|
|
26
26
|
end
|
|
27
27
|
end
|
|
28
28
|
end
|
|
@@ -65,9 +65,10 @@ module REXML
|
|
|
65
65
|
attr_reader :encoding
|
|
66
66
|
|
|
67
67
|
module Private
|
|
68
|
+
SPACES_PATTERN = /\s+/um
|
|
68
69
|
SCANNER_RESET_SIZE = 100000
|
|
69
70
|
PRE_DEFINED_TERM_PATTERNS = {}
|
|
70
|
-
pre_defined_terms = ["'", '"', "<"]
|
|
71
|
+
pre_defined_terms = ["'", '"', "<", "]]>", "?>"]
|
|
71
72
|
if StringScanner::Version < "3.1.1"
|
|
72
73
|
pre_defined_terms.each do |term|
|
|
73
74
|
PRE_DEFINED_TERM_PATTERNS[term] = /#{Regexp.escape(term)}/
|
|
@@ -150,6 +151,10 @@ module REXML
|
|
|
150
151
|
end
|
|
151
152
|
end
|
|
152
153
|
|
|
154
|
+
def skip_spaces
|
|
155
|
+
@scanner.skip(Private::SPACES_PATTERN) ? true : false
|
|
156
|
+
end
|
|
157
|
+
|
|
153
158
|
def position
|
|
154
159
|
@scanner.pos
|
|
155
160
|
end
|
|
@@ -267,7 +272,7 @@ module REXML
|
|
|
267
272
|
@scanner << readline(term)
|
|
268
273
|
end
|
|
269
274
|
if str
|
|
270
|
-
read if @scanner.eos? and !@source.eof?
|
|
275
|
+
read if @scanner.eos? and @source and !@source.eof?
|
|
271
276
|
str
|
|
272
277
|
else
|
|
273
278
|
rest = @scanner.rest
|
|
@@ -104,16 +104,16 @@ module REXML
|
|
|
104
104
|
@entity_filter = entity_filter if entity_filter
|
|
105
105
|
clear_cache
|
|
106
106
|
|
|
107
|
-
Text.check(@string, illegal
|
|
107
|
+
Text.check(@string, illegal) if @raw
|
|
108
108
|
end
|
|
109
109
|
|
|
110
110
|
def parent= parent
|
|
111
111
|
super(parent)
|
|
112
|
-
Text.check(@string, NEEDS_A_SECOND_CHECK
|
|
112
|
+
Text.check(@string, NEEDS_A_SECOND_CHECK) if @raw and @parent
|
|
113
113
|
end
|
|
114
114
|
|
|
115
115
|
# check for illegal characters
|
|
116
|
-
def Text.check string, pattern, doctype
|
|
116
|
+
def Text.check string, pattern, doctype = nil
|
|
117
117
|
|
|
118
118
|
# illegal anywhere
|
|
119
119
|
if !string.match?(VALID_XML_CHARS)
|
|
@@ -177,7 +177,7 @@ module REXML
|
|
|
177
177
|
|
|
178
178
|
|
|
179
179
|
def clone
|
|
180
|
-
|
|
180
|
+
Text.new(self, true)
|
|
181
181
|
end
|
|
182
182
|
|
|
183
183
|
|
|
@@ -200,10 +200,7 @@ module REXML
|
|
|
200
200
|
end
|
|
201
201
|
|
|
202
202
|
def doctype
|
|
203
|
-
|
|
204
|
-
doc = @parent.document
|
|
205
|
-
doc.doctype if doc
|
|
206
|
-
end
|
|
203
|
+
@parent&.document&.doctype
|
|
207
204
|
end
|
|
208
205
|
|
|
209
206
|
REFERENCE = /#{Entity::REFERENCE}/
|
|
@@ -264,30 +261,32 @@ module REXML
|
|
|
264
261
|
# Recursively wrap string at width.
|
|
265
262
|
return string if string.length <= width
|
|
266
263
|
place = string.rindex(' ', width) # Position in string with last ' ' before cutoff
|
|
267
|
-
if addnewline
|
|
268
|
-
|
|
264
|
+
if addnewline
|
|
265
|
+
"\n" + string[0,place] + "\n" + wrap(string[place+1..-1], width)
|
|
269
266
|
else
|
|
270
|
-
|
|
267
|
+
string[0,place] + "\n" + wrap(string[place+1..-1], width)
|
|
271
268
|
end
|
|
272
269
|
end
|
|
273
270
|
|
|
274
271
|
def indent_text(string, level=1, style="\t", indentfirstline=true)
|
|
272
|
+
Kernel.warn("#{self.class.name}#indent_text is deprecated. See REXML::Formatters", uplevel: 1)
|
|
275
273
|
return string if level < 0
|
|
276
|
-
|
|
274
|
+
|
|
275
|
+
new_string = +''
|
|
277
276
|
string.each_line { |line|
|
|
278
277
|
indent_string = style * level
|
|
279
278
|
new_line = (indent_string + line).sub(/[\s]+$/,'')
|
|
280
279
|
new_string << new_line
|
|
281
280
|
}
|
|
282
281
|
new_string.strip! unless indentfirstline
|
|
283
|
-
|
|
282
|
+
new_string
|
|
284
283
|
end
|
|
285
284
|
|
|
286
285
|
# == DEPRECATED
|
|
287
286
|
# See REXML::Formatters
|
|
288
287
|
#
|
|
289
288
|
def write( writer, indent=-1, transitive=false, ie_hack=false )
|
|
290
|
-
Kernel.warn("#{self.class.name}
|
|
289
|
+
Kernel.warn("#{self.class.name}#write is deprecated. See REXML::Formatters", uplevel: 1)
|
|
291
290
|
formatter = if indent > -1
|
|
292
291
|
REXML::Formatters::Pretty.new( indent )
|
|
293
292
|
else
|
|
@@ -299,9 +298,7 @@ module REXML
|
|
|
299
298
|
# FIXME
|
|
300
299
|
# This probably won't work properly
|
|
301
300
|
def xpath
|
|
302
|
-
|
|
303
|
-
path += "/text()"
|
|
304
|
-
return path
|
|
301
|
+
@parent.xpath + "/text()"
|
|
305
302
|
end
|
|
306
303
|
|
|
307
304
|
# Writes out text, substituting special characters beforehand.
|