brakeman 4.8.1 → 4.10.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (452) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +39 -0
  3. data/README.md +5 -3
  4. data/bundle/load.rb +14 -13
  5. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/CHANGES.txt +0 -0
  6. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/MIT-LICENSE +0 -0
  7. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/README.txt +0 -0
  8. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/contrib/erubis +0 -0
  9. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/contrib/erubis-run.rb +0 -0
  10. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/contrib/inline-require +0 -0
  11. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis.rb +0 -0
  12. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/context.rb +0 -0
  13. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/converter.rb +0 -0
  14. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/engine.rb +0 -0
  15. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/engine/ec.rb +0 -0
  16. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/engine/ecpp.rb +0 -0
  17. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/engine/ejava.rb +0 -0
  18. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/engine/ejavascript.rb +0 -0
  19. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/engine/enhanced.rb +0 -0
  20. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb +0 -0
  21. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/engine/ephp.rb +0 -0
  22. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/engine/eruby.rb +0 -0
  23. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/engine/escheme.rb +0 -0
  24. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/engine/optimized.rb +0 -0
  25. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/enhancer.rb +0 -0
  26. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/error.rb +0 -0
  27. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/evaluator.rb +0 -0
  28. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/generator.rb +0 -0
  29. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/helper.rb +0 -0
  30. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/helpers/rails_form_helper.rb +0 -0
  31. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/helpers/rails_helper.rb +0 -0
  32. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/local-setting.rb +0 -0
  33. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/main.rb +0 -0
  34. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/preprocessing.rb +0 -0
  35. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/tiny.rb +0 -0
  36. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/util.rb +0 -0
  37. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/erubis-2.7.0/setup.rb +0 -0
  38. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/CHANGELOG.md +16 -0
  39. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/FAQ.md +0 -0
  40. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/Gemfile +1 -4
  41. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/MIT-LICENSE +0 -0
  42. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/README.md +2 -3
  43. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/REFERENCE.md +29 -7
  44. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/TODO +0 -0
  45. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/haml.gemspec +2 -1
  46. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/lib/haml.rb +0 -0
  47. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/lib/haml/attribute_builder.rb +3 -3
  48. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/lib/haml/attribute_compiler.rb +42 -31
  49. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/lib/haml/attribute_parser.rb +0 -0
  50. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/lib/haml/buffer.rb +0 -0
  51. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/lib/haml/compiler.rb +0 -0
  52. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/lib/haml/engine.rb +0 -0
  53. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/lib/haml/error.rb +0 -0
  54. data/bundle/ruby/2.7.0/gems/haml-5.2.1/lib/haml/escapable.rb +77 -0
  55. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/lib/haml/exec.rb +0 -0
  56. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/lib/haml/filters.rb +0 -0
  57. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/lib/haml/generator.rb +0 -0
  58. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/lib/haml/helpers.rb +7 -1
  59. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/lib/haml/helpers/action_view_extensions.rb +0 -0
  60. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/lib/haml/helpers/action_view_mods.rb +0 -0
  61. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/lib/haml/helpers/action_view_xss_mods.rb +0 -0
  62. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/lib/haml/helpers/safe_erubi_template.rb +0 -0
  63. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/lib/haml/helpers/safe_erubis_template.rb +0 -0
  64. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/lib/haml/helpers/xss_mods.rb +6 -3
  65. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/lib/haml/options.rb +0 -0
  66. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/lib/haml/parser.rb +32 -4
  67. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/lib/haml/plugin.rb +0 -0
  68. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/lib/haml/railtie.rb +0 -0
  69. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/lib/haml/sass_rails_filter.rb +0 -0
  70. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/lib/haml/template.rb +0 -0
  71. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/lib/haml/template/options.rb +0 -0
  72. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/lib/haml/temple_engine.rb +0 -0
  73. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/lib/haml/temple_line_counter.rb +0 -0
  74. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/lib/haml/util.rb +1 -1
  75. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/lib/haml/version.rb +1 -1
  76. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/yard/default/fulldoc/html/css/common.sass +0 -0
  77. data/bundle/ruby/{2.4.0/gems/haml-5.1.2 → 2.7.0/gems/haml-5.2.1}/yard/default/layout/html/footer.erb +0 -0
  78. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/AUTHORS +0 -0
  79. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/COPYING +0 -0
  80. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/Changelog.md +0 -0
  81. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/Gemfile +0 -0
  82. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/LICENSE +0 -0
  83. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/README.md +0 -0
  84. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/TODO +0 -0
  85. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/appveyor.yml +0 -0
  86. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/highline.gemspec +0 -0
  87. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/lib/highline.rb +0 -0
  88. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/lib/highline/builtin_styles.rb +0 -0
  89. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/lib/highline/color_scheme.rb +0 -0
  90. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/lib/highline/compatibility.rb +0 -0
  91. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/lib/highline/custom_errors.rb +0 -0
  92. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/lib/highline/import.rb +0 -0
  93. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/lib/highline/io_console_compatible.rb +0 -0
  94. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/lib/highline/list.rb +0 -0
  95. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/lib/highline/list_renderer.rb +0 -0
  96. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/lib/highline/menu.rb +0 -0
  97. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/lib/highline/menu/item.rb +0 -0
  98. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/lib/highline/paginator.rb +0 -0
  99. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/lib/highline/question.rb +0 -0
  100. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/lib/highline/question/answer_converter.rb +0 -0
  101. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/lib/highline/question_asker.rb +0 -0
  102. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/lib/highline/simulate.rb +0 -0
  103. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/lib/highline/statement.rb +0 -0
  104. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/lib/highline/string.rb +0 -0
  105. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/lib/highline/string_extensions.rb +0 -0
  106. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/lib/highline/style.rb +0 -0
  107. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/lib/highline/template_renderer.rb +0 -0
  108. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/lib/highline/terminal.rb +0 -0
  109. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/lib/highline/terminal/io_console.rb +0 -0
  110. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/lib/highline/terminal/ncurses.rb +0 -0
  111. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/lib/highline/terminal/unix_stty.rb +0 -0
  112. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/lib/highline/version.rb +0 -0
  113. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/highline-2.0.3/lib/highline/wrapper.rb +0 -0
  114. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/Gemfile +6 -0
  115. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/LICENSE.txt +22 -0
  116. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/NEWS.md +141 -0
  117. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/README.md +60 -0
  118. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/attlistdecl.rb +63 -0
  119. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/attribute.rb +205 -0
  120. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/cdata.rb +68 -0
  121. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/child.rb +97 -0
  122. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/comment.rb +80 -0
  123. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/doctype.rb +287 -0
  124. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/document.rb +291 -0
  125. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/dtd/attlistdecl.rb +11 -0
  126. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/dtd/dtd.rb +47 -0
  127. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/dtd/elementdecl.rb +18 -0
  128. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/dtd/entitydecl.rb +57 -0
  129. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/dtd/notationdecl.rb +40 -0
  130. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/element.rb +1269 -0
  131. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/encoding.rb +51 -0
  132. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/entity.rb +171 -0
  133. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/formatters/default.rb +116 -0
  134. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/formatters/pretty.rb +142 -0
  135. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/formatters/transitive.rb +58 -0
  136. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/functions.rb +447 -0
  137. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/instruction.rb +79 -0
  138. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/light/node.rb +196 -0
  139. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/namespace.rb +59 -0
  140. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/node.rb +76 -0
  141. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/output.rb +30 -0
  142. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/parent.rb +166 -0
  143. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/parseexception.rb +52 -0
  144. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/parsers/baseparser.rb +594 -0
  145. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/parsers/lightparser.rb +59 -0
  146. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/parsers/pullparser.rb +197 -0
  147. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/parsers/sax2parser.rb +273 -0
  148. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/parsers/streamparser.rb +61 -0
  149. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/parsers/treeparser.rb +101 -0
  150. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/parsers/ultralightparser.rb +57 -0
  151. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/parsers/xpathparser.rb +675 -0
  152. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/quickpath.rb +266 -0
  153. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/rexml.rb +32 -0
  154. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/sax2listener.rb +98 -0
  155. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/security.rb +28 -0
  156. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/source.rb +298 -0
  157. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/streamlistener.rb +93 -0
  158. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/text.rb +424 -0
  159. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/undefinednamespaceexception.rb +9 -0
  160. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/validation/relaxng.rb +539 -0
  161. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/validation/validation.rb +144 -0
  162. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/validation/validationexception.rb +10 -0
  163. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/xmldecl.rb +130 -0
  164. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/xmltokens.rb +85 -0
  165. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/xpath.rb +81 -0
  166. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/xpath_parser.rb +968 -0
  167. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/rexml.gemspec +84 -0
  168. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/ruby2ruby-2.4.4/History.rdoc +0 -0
  169. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/ruby2ruby-2.4.4/Manifest.txt +0 -0
  170. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/ruby2ruby-2.4.4/README.rdoc +0 -0
  171. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/ruby2ruby-2.4.4/lib/ruby2ruby.rb +0 -0
  172. data/bundle/ruby/{2.4.0/gems/ruby_parser-3.14.2 → 2.7.0/gems/ruby_parser-3.15.0}/History.rdoc +35 -0
  173. data/bundle/ruby/{2.4.0/gems/ruby_parser-3.14.2 → 2.7.0/gems/ruby_parser-3.15.0}/Manifest.txt +2 -0
  174. data/bundle/ruby/{2.4.0/gems/ruby_parser-3.14.2 → 2.7.0/gems/ruby_parser-3.15.0}/README.rdoc +0 -0
  175. data/bundle/ruby/{2.4.0/gems/ruby_parser-3.14.2 → 2.7.0/gems/ruby_parser-3.15.0}/compare/normalize.rb +43 -3
  176. data/bundle/ruby/2.7.0/gems/ruby_parser-3.15.0/debugging.md +57 -0
  177. data/bundle/ruby/{2.4.0/gems/ruby_parser-3.14.2 → 2.7.0/gems/ruby_parser-3.15.0}/lib/rp_extensions.rb +0 -0
  178. data/bundle/ruby/{2.4.0/gems/ruby_parser-3.14.2 → 2.7.0/gems/ruby_parser-3.15.0}/lib/rp_stringscanner.rb +0 -0
  179. data/bundle/ruby/2.7.0/gems/ruby_parser-3.15.0/lib/ruby20_parser.rb +7062 -0
  180. data/bundle/ruby/{2.4.0/gems/ruby_parser-3.14.2 → 2.7.0/gems/ruby_parser-3.15.0}/lib/ruby20_parser.y +91 -58
  181. data/bundle/ruby/{2.4.0/gems/ruby_parser-3.14.2 → 2.7.0/gems/ruby_parser-3.15.0}/lib/ruby21_parser.rb +2603 -2576
  182. data/bundle/ruby/{2.4.0/gems/ruby_parser-3.14.2 → 2.7.0/gems/ruby_parser-3.15.0}/lib/ruby21_parser.y +91 -58
  183. data/bundle/ruby/2.7.0/gems/ruby_parser-3.15.0/lib/ruby22_parser.rb +7160 -0
  184. data/bundle/ruby/{2.4.0/gems/ruby_parser-3.14.2 → 2.7.0/gems/ruby_parser-3.15.0}/lib/ruby22_parser.y +91 -58
  185. data/bundle/ruby/2.7.0/gems/ruby_parser-3.15.0/lib/ruby23_parser.rb +7175 -0
  186. data/bundle/ruby/{2.4.0/gems/ruby_parser-3.14.2 → 2.7.0/gems/ruby_parser-3.15.0}/lib/ruby23_parser.y +91 -58
  187. data/bundle/ruby/2.7.0/gems/ruby_parser-3.15.0/lib/ruby24_parser.rb +7204 -0
  188. data/bundle/ruby/{2.4.0/gems/ruby_parser-3.14.2 → 2.7.0/gems/ruby_parser-3.15.0}/lib/ruby24_parser.y +91 -58
  189. data/bundle/ruby/{2.4.0/gems/ruby_parser-3.14.2/lib/ruby23_parser.rb → 2.7.0/gems/ruby_parser-3.15.0/lib/ruby25_parser.rb} +2867 -2826
  190. data/bundle/ruby/{2.4.0/gems/ruby_parser-3.14.2 → 2.7.0/gems/ruby_parser-3.15.0}/lib/ruby25_parser.y +91 -58
  191. data/bundle/ruby/{2.4.0/gems/ruby_parser-3.14.2/lib/ruby25_parser.rb → 2.7.0/gems/ruby_parser-3.15.0/lib/ruby26_parser.rb} +2432 -2383
  192. data/bundle/ruby/{2.4.0/gems/ruby_parser-3.14.2 → 2.7.0/gems/ruby_parser-3.15.0}/lib/ruby26_parser.y +91 -58
  193. data/bundle/ruby/{2.4.0/gems/ruby_parser-3.14.2/lib/ruby24_parser.rb → 2.7.0/gems/ruby_parser-3.15.0/lib/ruby27_parser.rb} +2432 -2383
  194. data/bundle/ruby/2.7.0/gems/ruby_parser-3.15.0/lib/ruby27_parser.y +2657 -0
  195. data/bundle/ruby/{2.4.0/gems/ruby_parser-3.14.2 → 2.7.0/gems/ruby_parser-3.15.0}/lib/ruby_lexer.rb +72 -40
  196. data/bundle/ruby/{2.4.0/gems/ruby_parser-3.14.2 → 2.7.0/gems/ruby_parser-3.15.0}/lib/ruby_lexer.rex +5 -6
  197. data/bundle/ruby/{2.4.0/gems/ruby_parser-3.14.2 → 2.7.0/gems/ruby_parser-3.15.0}/lib/ruby_lexer.rex.rb +6 -8
  198. data/bundle/ruby/{2.4.0/gems/ruby_parser-3.14.2 → 2.7.0/gems/ruby_parser-3.15.0}/lib/ruby_parser.rb +2 -0
  199. data/bundle/ruby/{2.4.0/gems/ruby_parser-3.14.2 → 2.7.0/gems/ruby_parser-3.15.0}/lib/ruby_parser.yy +93 -58
  200. data/bundle/ruby/{2.4.0/gems/ruby_parser-3.14.2 → 2.7.0/gems/ruby_parser-3.15.0}/lib/ruby_parser_extras.rb +49 -16
  201. data/bundle/ruby/{2.4.0/gems/ruby_parser-3.14.2 → 2.7.0/gems/ruby_parser-3.15.0}/tools/munge.rb +9 -4
  202. data/bundle/ruby/{2.4.0/gems/ruby_parser-3.14.2 → 2.7.0/gems/ruby_parser-3.15.0}/tools/ripper.rb +0 -0
  203. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/ruby_parser-legacy-1.0.0/History.rdoc +0 -0
  204. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/ruby_parser-legacy-1.0.0/Manifest.txt +0 -0
  205. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/ruby_parser-legacy-1.0.0/README.rdoc +0 -0
  206. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy.rb +0 -0
  207. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby18_parser.rb +0 -0
  208. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby18_parser.y +0 -0
  209. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby19_parser.rb +0 -0
  210. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby19_parser.y +0 -0
  211. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby_lexer.rb +0 -0
  212. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby_lexer.rex +0 -0
  213. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby_lexer.rex.rb +0 -0
  214. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby_parser.rb +0 -0
  215. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby_parser_extras.rb +0 -0
  216. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/CHANGES.md +0 -0
  217. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/Gemfile +0 -0
  218. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/LICENSE.txt +0 -0
  219. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/README.md +0 -0
  220. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/bundle_install_all_ruby_versions.sh +0 -0
  221. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/lib/safe_yaml.rb +0 -0
  222. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/lib/safe_yaml/deep.rb +0 -0
  223. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/lib/safe_yaml/libyaml_checker.rb +0 -0
  224. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/lib/safe_yaml/load.rb +0 -0
  225. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/date.rb +0 -0
  226. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/hexadecimal.rb +0 -0
  227. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/sexagesimal.rb +0 -0
  228. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/lib/safe_yaml/psych_handler.rb +0 -0
  229. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/lib/safe_yaml/psych_resolver.rb +0 -0
  230. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/lib/safe_yaml/resolver.rb +0 -0
  231. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/lib/safe_yaml/safe_to_ruby_visitor.rb +0 -0
  232. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/lib/safe_yaml/store.rb +0 -0
  233. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/lib/safe_yaml/syck_hack.rb +0 -0
  234. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/lib/safe_yaml/syck_node_monkeypatch.rb +0 -0
  235. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/lib/safe_yaml/syck_resolver.rb +0 -0
  236. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/lib/safe_yaml/transform.rb +0 -0
  237. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_boolean.rb +0 -0
  238. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_date.rb +0 -0
  239. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_float.rb +0 -0
  240. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_integer.rb +0 -0
  241. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_nil.rb +0 -0
  242. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/to_symbol.rb +0 -0
  243. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/lib/safe_yaml/transform/transformation_map.rb +0 -0
  244. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/lib/safe_yaml/version.rb +0 -0
  245. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/run_specs_all_ruby_versions.sh +0 -0
  246. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/safe_yaml-1.0.5/safe_yaml.gemspec +0 -0
  247. data/bundle/ruby/{2.4.0/gems/sexp_processor-4.14.1 → 2.7.0/gems/sexp_processor-4.15.1}/History.rdoc +12 -0
  248. data/bundle/ruby/{2.4.0/gems/sexp_processor-4.14.1 → 2.7.0/gems/sexp_processor-4.15.1}/Manifest.txt +0 -0
  249. data/bundle/ruby/{2.4.0/gems/sexp_processor-4.14.1 → 2.7.0/gems/sexp_processor-4.15.1}/README.rdoc +0 -0
  250. data/bundle/ruby/{2.4.0/gems/sexp_processor-4.14.1 → 2.7.0/gems/sexp_processor-4.15.1}/lib/composite_sexp_processor.rb +0 -0
  251. data/bundle/ruby/{2.4.0/gems/sexp_processor-4.14.1 → 2.7.0/gems/sexp_processor-4.15.1}/lib/pt_testcase.rb +2 -2
  252. data/bundle/ruby/{2.4.0/gems/sexp_processor-4.14.1 → 2.7.0/gems/sexp_processor-4.15.1}/lib/sexp.rb +0 -0
  253. data/bundle/ruby/{2.4.0/gems/sexp_processor-4.14.1 → 2.7.0/gems/sexp_processor-4.15.1}/lib/sexp_matcher.rb +4 -7
  254. data/bundle/ruby/{2.4.0/gems/sexp_processor-4.14.1 → 2.7.0/gems/sexp_processor-4.15.1}/lib/sexp_processor.rb +1 -1
  255. data/bundle/ruby/{2.4.0/gems/sexp_processor-4.14.1 → 2.7.0/gems/sexp_processor-4.15.1}/lib/strict_sexp.rb +0 -0
  256. data/bundle/ruby/{2.4.0/gems/sexp_processor-4.14.1 → 2.7.0/gems/sexp_processor-4.15.1}/lib/unique.rb +0 -0
  257. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/CHANGES +4 -0
  258. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/Gemfile +12 -13
  259. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/LICENSE +0 -0
  260. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/README.jp.md +0 -0
  261. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/README.md +0 -0
  262. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim.rb +0 -0
  263. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/code_attributes.rb +0 -0
  264. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/command.rb +13 -13
  265. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/controls.rb +0 -0
  266. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/do_inserter.rb +0 -0
  267. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/embedded.rb +0 -0
  268. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/end_inserter.rb +0 -0
  269. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/engine.rb +0 -0
  270. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/erb_converter.rb +0 -0
  271. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/filter.rb +0 -0
  272. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/grammar.rb +0 -0
  273. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/include.rb +0 -0
  274. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/interpolation.rb +0 -0
  275. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/logic_less.rb +0 -0
  276. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/logic_less/context.rb +0 -0
  277. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/logic_less/filter.rb +0 -0
  278. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/parser.rb +1 -1
  279. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/smart.rb +0 -0
  280. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/smart/escaper.rb +0 -0
  281. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/smart/filter.rb +0 -0
  282. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/smart/parser.rb +0 -0
  283. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/splat/builder.rb +0 -0
  284. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/splat/filter.rb +0 -0
  285. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/template.rb +0 -0
  286. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/translator.rb +0 -0
  287. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/version.rb +1 -1
  288. data/bundle/ruby/{2.4.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/slim.gemspec +0 -0
  289. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/CHANGES +0 -0
  290. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/EXPRESSIONS.md +0 -0
  291. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/Gemfile +0 -0
  292. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/LICENSE +0 -0
  293. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/README.md +0 -0
  294. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple.rb +0 -0
  295. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/engine.rb +0 -0
  296. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/erb/engine.rb +0 -0
  297. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/erb/parser.rb +0 -0
  298. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/erb/template.rb +0 -0
  299. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/erb/trimming.rb +0 -0
  300. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/exceptions.rb +0 -0
  301. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/filter.rb +0 -0
  302. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/filters/code_merger.rb +0 -0
  303. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/filters/control_flow.rb +0 -0
  304. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/filters/dynamic_inliner.rb +0 -0
  305. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/filters/encoding.rb +0 -0
  306. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/filters/eraser.rb +0 -0
  307. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/filters/escapable.rb +0 -0
  308. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/filters/multi_flattener.rb +0 -0
  309. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/filters/remove_bom.rb +0 -0
  310. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/filters/static_analyzer.rb +0 -0
  311. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/filters/static_merger.rb +0 -0
  312. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/filters/string_splitter.rb +0 -0
  313. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/filters/validator.rb +0 -0
  314. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/generator.rb +0 -0
  315. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/generators/array.rb +0 -0
  316. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/generators/array_buffer.rb +0 -0
  317. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/generators/erb.rb +0 -0
  318. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/generators/rails_output_buffer.rb +0 -0
  319. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/generators/string_buffer.rb +0 -0
  320. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/grammar.rb +0 -0
  321. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/html/attribute_merger.rb +0 -0
  322. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/html/attribute_remover.rb +0 -0
  323. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/html/attribute_sorter.rb +0 -0
  324. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/html/dispatcher.rb +0 -0
  325. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/html/fast.rb +0 -0
  326. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/html/filter.rb +0 -0
  327. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/html/pretty.rb +0 -0
  328. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/html/safe.rb +0 -0
  329. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/map.rb +0 -0
  330. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/mixins/dispatcher.rb +0 -0
  331. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/mixins/engine_dsl.rb +0 -0
  332. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/mixins/grammar_dsl.rb +0 -0
  333. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/mixins/options.rb +0 -0
  334. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/mixins/template.rb +0 -0
  335. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/parser.rb +0 -0
  336. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/static_analyzer.rb +0 -0
  337. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/templates.rb +0 -0
  338. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/templates/rails.rb +0 -0
  339. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/templates/tilt.rb +0 -0
  340. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/utils.rb +0 -0
  341. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/lib/temple/version.rb +0 -0
  342. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/temple-0.8.2/temple.gemspec +0 -0
  343. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/terminal-table-1.8.0/Gemfile +0 -0
  344. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/terminal-table-1.8.0/History.rdoc +0 -0
  345. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/terminal-table-1.8.0/LICENSE.txt +0 -0
  346. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/terminal-table-1.8.0/Manifest +0 -0
  347. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/terminal-table-1.8.0/README.rdoc +0 -0
  348. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/terminal-table-1.8.0/Todo.rdoc +0 -0
  349. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/terminal-table-1.8.0/lib/terminal-table.rb +0 -0
  350. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/terminal-table-1.8.0/lib/terminal-table/cell.rb +0 -0
  351. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/terminal-table-1.8.0/lib/terminal-table/import.rb +0 -0
  352. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/terminal-table-1.8.0/lib/terminal-table/row.rb +0 -0
  353. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/terminal-table-1.8.0/lib/terminal-table/separator.rb +0 -0
  354. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/terminal-table-1.8.0/lib/terminal-table/style.rb +0 -0
  355. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/terminal-table-1.8.0/lib/terminal-table/table.rb +0 -0
  356. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/terminal-table-1.8.0/lib/terminal-table/table_helper.rb +0 -0
  357. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/terminal-table-1.8.0/lib/terminal-table/version.rb +0 -0
  358. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/terminal-table-1.8.0/terminal-table.gemspec +0 -0
  359. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/COPYING +0 -0
  360. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt.rb +0 -0
  361. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/asciidoc.rb +0 -0
  362. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/babel.rb +0 -0
  363. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/bluecloth.rb +0 -0
  364. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/builder.rb +0 -0
  365. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/coffee.rb +0 -0
  366. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/commonmarker.rb +0 -0
  367. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/creole.rb +0 -0
  368. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/csv.rb +0 -0
  369. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/dummy.rb +0 -0
  370. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/erb.rb +0 -0
  371. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/erubi.rb +0 -0
  372. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/erubis.rb +0 -0
  373. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/etanni.rb +0 -0
  374. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/haml.rb +0 -0
  375. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/kramdown.rb +0 -0
  376. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/less.rb +0 -0
  377. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/liquid.rb +0 -0
  378. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/livescript.rb +0 -0
  379. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/mapping.rb +0 -0
  380. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/markaby.rb +0 -0
  381. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/maruku.rb +0 -0
  382. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/nokogiri.rb +0 -0
  383. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/pandoc.rb +0 -0
  384. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/plain.rb +0 -0
  385. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/prawn.rb +0 -0
  386. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/radius.rb +0 -0
  387. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/rdiscount.rb +0 -0
  388. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/rdoc.rb +0 -0
  389. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/redcarpet.rb +0 -0
  390. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/redcloth.rb +0 -0
  391. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/rst-pandoc.rb +0 -0
  392. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/sass.rb +0 -0
  393. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/sigil.rb +0 -0
  394. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/string.rb +0 -0
  395. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/template.rb +0 -0
  396. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/typescript.rb +0 -0
  397. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/wikicloth.rb +0 -0
  398. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/tilt-2.0.10/lib/tilt/yajl.rb +0 -0
  399. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/unicode-display_width-1.7.0/CHANGELOG.md +0 -0
  400. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/unicode-display_width-1.7.0/MIT-LICENSE.txt +0 -0
  401. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/unicode-display_width-1.7.0/README.md +0 -0
  402. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/unicode-display_width-1.7.0/data/display_width.marshal.gz +0 -0
  403. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/unicode-display_width-1.7.0/lib/unicode/display_width.rb +0 -0
  404. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/unicode-display_width-1.7.0/lib/unicode/display_width/constants.rb +0 -0
  405. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/unicode-display_width-1.7.0/lib/unicode/display_width/index.rb +0 -0
  406. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/unicode-display_width-1.7.0/lib/unicode/display_width/no_string_ext.rb +0 -0
  407. data/bundle/ruby/{2.4.0 → 2.7.0}/gems/unicode-display_width-1.7.0/lib/unicode/display_width/string_ext.rb +0 -0
  408. data/lib/brakeman.rb +20 -0
  409. data/lib/brakeman/checks/base_check.rb +1 -1
  410. data/lib/brakeman/checks/check_basic_auth.rb +2 -0
  411. data/lib/brakeman/checks/check_csrf_token_forgery_cve.rb +28 -0
  412. data/lib/brakeman/checks/check_deserialize.rb +21 -1
  413. data/lib/brakeman/checks/check_execute.rb +1 -1
  414. data/lib/brakeman/checks/check_json_entity_escape.rb +38 -0
  415. data/lib/brakeman/checks/check_mass_assignment.rb +19 -4
  416. data/lib/brakeman/checks/check_model_attr_accessible.rb +1 -1
  417. data/lib/brakeman/checks/check_model_attributes.rb +1 -1
  418. data/lib/brakeman/checks/check_page_caching_cve.rb +37 -0
  419. data/lib/brakeman/checks/check_permit_attributes.rb +1 -1
  420. data/lib/brakeman/checks/check_regex_dos.rb +1 -1
  421. data/lib/brakeman/checks/check_skip_before_filter.rb +4 -4
  422. data/lib/brakeman/checks/check_sql.rb +1 -1
  423. data/lib/brakeman/checks/check_template_injection.rb +32 -0
  424. data/lib/brakeman/commandline.rb +25 -1
  425. data/lib/brakeman/file_parser.rb +5 -0
  426. data/lib/brakeman/options.rb +21 -1
  427. data/lib/brakeman/processors/alias_processor.rb +4 -5
  428. data/lib/brakeman/processors/controller_processor.rb +1 -1
  429. data/lib/brakeman/processors/haml_template_processor.rb +8 -1
  430. data/lib/brakeman/processors/lib/call_conversion_helper.rb +1 -1
  431. data/lib/brakeman/processors/lib/find_all_calls.rb +27 -12
  432. data/lib/brakeman/processors/output_processor.rb +1 -1
  433. data/lib/brakeman/processors/template_alias_processor.rb +5 -0
  434. data/lib/brakeman/report.rb +7 -0
  435. data/lib/brakeman/report/ignore/config.rb +4 -0
  436. data/lib/brakeman/report/report_sarif.rb +114 -0
  437. data/lib/brakeman/report/report_text.rb +37 -16
  438. data/lib/brakeman/scanner.rb +4 -1
  439. data/lib/brakeman/tracker.rb +3 -1
  440. data/lib/brakeman/tracker/config.rb +6 -4
  441. data/lib/brakeman/tracker/constants.rb +8 -7
  442. data/lib/brakeman/tracker/controller.rb +1 -1
  443. data/lib/brakeman/util.rb +18 -2
  444. data/lib/brakeman/version.rb +1 -1
  445. data/lib/brakeman/warning_codes.rb +6 -0
  446. data/lib/ruby_parser/bm_sexp.rb +9 -9
  447. metadata +411 -350
  448. data/bundle/ruby/2.4.0/gems/haml-5.1.2/lib/haml/escapable.rb +0 -50
  449. data/bundle/ruby/2.4.0/gems/ruby_parser-3.14.2/debugging.md +0 -18
  450. data/bundle/ruby/2.4.0/gems/ruby_parser-3.14.2/lib/ruby20_parser.rb +0 -7042
  451. data/bundle/ruby/2.4.0/gems/ruby_parser-3.14.2/lib/ruby22_parser.rb +0 -7146
  452. data/bundle/ruby/2.4.0/gems/ruby_parser-3.14.2/lib/ruby26_parser.rb +0 -7195
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: false
2
+
3
+ require_relative "child"
4
+ require_relative "source"
5
+
6
+ module REXML
7
+ # Represents an XML Instruction; IE, <? ... ?>
8
+ # TODO: Add parent arg (3rd arg) to constructor
9
+ class Instruction < Child
10
+ START = "<?"
11
+ STOP = "?>"
12
+
13
+ # target is the "name" of the Instruction; IE, the "tag" in <?tag ...?>
14
+ # content is everything else.
15
+ attr_accessor :target, :content
16
+
17
+ # Constructs a new Instruction
18
+ # @param target can be one of a number of things. If String, then
19
+ # the target of this instruction is set to this. If an Instruction,
20
+ # then the Instruction is shallowly cloned (target and content are
21
+ # copied).
22
+ # @param content Must be either a String, or a Parent. Can only
23
+ # be a Parent if the target argument is a Source. Otherwise, this
24
+ # String is set as the content of this instruction.
25
+ def initialize(target, content=nil)
26
+ case target
27
+ when String
28
+ super()
29
+ @target = target
30
+ @content = content
31
+ when Instruction
32
+ super(content)
33
+ @target = target.target
34
+ @content = target.content
35
+ else
36
+ message =
37
+ "processing instruction target must be String or REXML::Instruction: "
38
+ message << "<#{target.inspect}>"
39
+ raise ArgumentError, message
40
+ end
41
+ @content.strip! if @content
42
+ end
43
+
44
+ def clone
45
+ Instruction.new self
46
+ end
47
+
48
+ # == DEPRECATED
49
+ # See the rexml/formatters package
50
+ #
51
+ def write writer, indent=-1, transitive=false, ie_hack=false
52
+ Kernel.warn( "#{self.class.name}.write is deprecated", uplevel: 1)
53
+ indent(writer, indent)
54
+ writer << START
55
+ writer << @target
56
+ if @content
57
+ writer << ' '
58
+ writer << @content
59
+ end
60
+ writer << STOP
61
+ end
62
+
63
+ # @return true if other is an Instruction, and the content and target
64
+ # of the other matches the target and content of this object.
65
+ def ==( other )
66
+ other.kind_of? Instruction and
67
+ other.target == @target and
68
+ other.content == @content
69
+ end
70
+
71
+ def node_type
72
+ :processing_instruction
73
+ end
74
+
75
+ def inspect
76
+ "<?p-i #{target} ...?>"
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,196 @@
1
+ # frozen_string_literal: false
2
+ require_relative '../xmltokens'
3
+
4
+ # [ :element, parent, name, attributes, children* ]
5
+ # a = Node.new
6
+ # a << "B" # => <a>B</a>
7
+ # a.b # => <a>B<b/></a>
8
+ # a.b[1] # => <a>B<b/><b/><a>
9
+ # a.b[1]["x"] = "y" # => <a>B<b/><b x="y"/></a>
10
+ # a.b[0].c # => <a>B<b><c/></b><b x="y"/></a>
11
+ # a.b.c << "D" # => <a>B<b><c>D</c></b><b x="y"/></a>
12
+ module REXML
13
+ module Light
14
+ # Represents a tagged XML element. Elements are characterized by
15
+ # having children, attributes, and names, and can themselves be
16
+ # children.
17
+ class Node
18
+ NAMESPLIT = /^(?:(#{XMLTokens::NCNAME_STR}):)?(#{XMLTokens::NCNAME_STR})/u
19
+ PARENTS = [ :element, :document, :doctype ]
20
+ # Create a new element.
21
+ def initialize node=nil
22
+ @node = node
23
+ if node.kind_of? String
24
+ node = [ :text, node ]
25
+ elsif node.nil?
26
+ node = [ :document, nil, nil ]
27
+ elsif node[0] == :start_element
28
+ node[0] = :element
29
+ elsif node[0] == :start_doctype
30
+ node[0] = :doctype
31
+ elsif node[0] == :start_document
32
+ node[0] = :document
33
+ end
34
+ end
35
+
36
+ def size
37
+ if PARENTS.include? @node[0]
38
+ @node[-1].size
39
+ else
40
+ 0
41
+ end
42
+ end
43
+
44
+ def each
45
+ size.times { |x| yield( at(x+4) ) }
46
+ end
47
+
48
+ def name
49
+ at(2)
50
+ end
51
+
52
+ def name=( name_str, ns=nil )
53
+ pfx = ''
54
+ pfx = "#{prefix(ns)}:" if ns
55
+ _old_put(2, "#{pfx}#{name_str}")
56
+ end
57
+
58
+ def parent=( node )
59
+ _old_put(1,node)
60
+ end
61
+
62
+ def local_name
63
+ namesplit
64
+ @name
65
+ end
66
+
67
+ def local_name=( name_str )
68
+ _old_put( 1, "#@prefix:#{name_str}" )
69
+ end
70
+
71
+ def prefix( namespace=nil )
72
+ prefix_of( self, namespace )
73
+ end
74
+
75
+ def namespace( prefix=prefix() )
76
+ namespace_of( self, prefix )
77
+ end
78
+
79
+ def namespace=( namespace )
80
+ @prefix = prefix( namespace )
81
+ pfx = ''
82
+ pfx = "#@prefix:" if @prefix.size > 0
83
+ _old_put(1, "#{pfx}#@name")
84
+ end
85
+
86
+ def []( reference, ns=nil )
87
+ if reference.kind_of? String
88
+ pfx = ''
89
+ pfx = "#{prefix(ns)}:" if ns
90
+ at(3)["#{pfx}#{reference}"]
91
+ elsif reference.kind_of? Range
92
+ _old_get( Range.new(4+reference.begin, reference.end, reference.exclude_end?) )
93
+ else
94
+ _old_get( 4+reference )
95
+ end
96
+ end
97
+
98
+ def =~( path )
99
+ XPath.match( self, path )
100
+ end
101
+
102
+ # Doesn't handle namespaces yet
103
+ def []=( reference, ns, value=nil )
104
+ if reference.kind_of? String
105
+ value = ns unless value
106
+ at( 3 )[reference] = value
107
+ elsif reference.kind_of? Range
108
+ _old_put( Range.new(3+reference.begin, reference.end, reference.exclude_end?), ns )
109
+ else
110
+ if value
111
+ _old_put( 4+reference, ns, value )
112
+ else
113
+ _old_put( 4+reference, ns )
114
+ end
115
+ end
116
+ end
117
+
118
+ # Append a child to this element, optionally under a provided namespace.
119
+ # The namespace argument is ignored if the element argument is an Element
120
+ # object. Otherwise, the element argument is a string, the namespace (if
121
+ # provided) is the namespace the element is created in.
122
+ def << element
123
+ if node_type() == :text
124
+ at(-1) << element
125
+ else
126
+ newnode = Node.new( element )
127
+ newnode.parent = self
128
+ self.push( newnode )
129
+ end
130
+ at(-1)
131
+ end
132
+
133
+ def node_type
134
+ _old_get(0)
135
+ end
136
+
137
+ def text=( foo )
138
+ replace = at(4).kind_of?(String)? 1 : 0
139
+ self._old_put(4,replace, normalizefoo)
140
+ end
141
+
142
+ def root
143
+ context = self
144
+ context = context.at(1) while context.at(1)
145
+ end
146
+
147
+ def has_name?( name, namespace = '' )
148
+ at(3) == name and namespace() == namespace
149
+ end
150
+
151
+ def children
152
+ self
153
+ end
154
+
155
+ def parent
156
+ at(1)
157
+ end
158
+
159
+ def to_s
160
+
161
+ end
162
+
163
+ private
164
+
165
+ def namesplit
166
+ return if @name.defined?
167
+ at(2) =~ NAMESPLIT
168
+ @prefix = '' || $1
169
+ @name = $2
170
+ end
171
+
172
+ def namespace_of( node, prefix=nil )
173
+ if not prefix
174
+ name = at(2)
175
+ name =~ NAMESPLIT
176
+ prefix = $1
177
+ end
178
+ to_find = 'xmlns'
179
+ to_find = "xmlns:#{prefix}" if not prefix.nil?
180
+ ns = at(3)[ to_find ]
181
+ ns ? ns : namespace_of( @node[0], prefix )
182
+ end
183
+
184
+ def prefix_of( node, namespace=nil )
185
+ if not namespace
186
+ name = node.name
187
+ name =~ NAMESPLIT
188
+ $1
189
+ else
190
+ ns = at(3).find { |k,v| v == namespace }
191
+ ns ? ns : prefix_of( node.parent, namespace )
192
+ end
193
+ end
194
+ end
195
+ end
196
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: false
2
+
3
+ require_relative 'xmltokens'
4
+
5
+ module REXML
6
+ # Adds named attributes to an object.
7
+ module Namespace
8
+ # The name of the object, valid if set
9
+ attr_reader :name, :expanded_name
10
+ # The expanded name of the object, valid if name is set
11
+ attr_accessor :prefix
12
+ include XMLTokens
13
+ NAMESPLIT = /^(?:(#{NCNAME_STR}):)?(#{NCNAME_STR})/u
14
+
15
+ # Sets the name and the expanded name
16
+ def name=( name )
17
+ @expanded_name = name
18
+ case name
19
+ when NAMESPLIT
20
+ if $1
21
+ @prefix = $1
22
+ else
23
+ @prefix = ""
24
+ @namespace = ""
25
+ end
26
+ @name = $2
27
+ when ""
28
+ @prefix = nil
29
+ @namespace = nil
30
+ @name = nil
31
+ else
32
+ message = "name must be \#{PREFIX}:\#{LOCAL_NAME} or \#{LOCAL_NAME}: "
33
+ message += "<#{name.inspect}>"
34
+ raise ArgumentError, message
35
+ end
36
+ end
37
+
38
+ # Compares names optionally WITH namespaces
39
+ def has_name?( other, ns=nil )
40
+ if ns
41
+ return (namespace() == ns and name() == other)
42
+ elsif other.include? ":"
43
+ return fully_expanded_name == other
44
+ else
45
+ return name == other
46
+ end
47
+ end
48
+
49
+ alias :local_name :name
50
+
51
+ # Fully expand the name, even if the prefix wasn't specified in the
52
+ # source file.
53
+ def fully_expanded_name
54
+ ns = prefix
55
+ return "#{ns}:#@name" if ns.size > 0
56
+ return @name
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,76 @@
1
+ # frozen_string_literal: false
2
+ require_relative "parseexception"
3
+ require_relative "formatters/pretty"
4
+ require_relative "formatters/default"
5
+
6
+ module REXML
7
+ # Represents a node in the tree. Nodes are never encountered except as
8
+ # superclasses of other objects. Nodes have siblings.
9
+ module Node
10
+ # @return the next sibling (nil if unset)
11
+ def next_sibling_node
12
+ return nil if @parent.nil?
13
+ @parent[ @parent.index(self) + 1 ]
14
+ end
15
+
16
+ # @return the previous sibling (nil if unset)
17
+ def previous_sibling_node
18
+ return nil if @parent.nil?
19
+ ind = @parent.index(self)
20
+ return nil if ind == 0
21
+ @parent[ ind - 1 ]
22
+ end
23
+
24
+ # indent::
25
+ # *DEPRECATED* This parameter is now ignored. See the formatters in the
26
+ # REXML::Formatters package for changing the output style.
27
+ def to_s indent=nil
28
+ unless indent.nil?
29
+ Kernel.warn( "#{self.class.name}.to_s(indent) parameter is deprecated", uplevel: 1)
30
+ f = REXML::Formatters::Pretty.new( indent )
31
+ f.write( self, rv = "" )
32
+ else
33
+ f = REXML::Formatters::Default.new
34
+ f.write( self, rv = "" )
35
+ end
36
+ return rv
37
+ end
38
+
39
+ def indent to, ind
40
+ if @parent and @parent.context and not @parent.context[:indentstyle].nil? then
41
+ indentstyle = @parent.context[:indentstyle]
42
+ else
43
+ indentstyle = ' '
44
+ end
45
+ to << indentstyle*ind unless ind<1
46
+ end
47
+
48
+ def parent?
49
+ false;
50
+ end
51
+
52
+
53
+ # Visit all subnodes of +self+ recursively
54
+ def each_recursive(&block) # :yields: node
55
+ self.elements.each {|node|
56
+ block.call(node)
57
+ node.each_recursive(&block)
58
+ }
59
+ end
60
+
61
+ # Find (and return) first subnode (recursively) for which the block
62
+ # evaluates to true. Returns +nil+ if none was found.
63
+ def find_first_recursive(&block) # :yields: node
64
+ each_recursive {|node|
65
+ return node if block.call(node)
66
+ }
67
+ return nil
68
+ end
69
+
70
+ # Returns the position that +self+ holds in its parent's array, indexed
71
+ # from 1.
72
+ def index_in_parent
73
+ parent.index(self)+1
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: false
2
+ require_relative 'encoding'
3
+
4
+ module REXML
5
+ class Output
6
+ include Encoding
7
+
8
+ attr_reader :encoding
9
+
10
+ def initialize real_IO, encd="iso-8859-1"
11
+ @output = real_IO
12
+ self.encoding = encd
13
+
14
+ @to_utf = encoding != 'UTF-8'
15
+
16
+ if encoding == "UTF-16"
17
+ @output << "\ufeff".encode("UTF-16BE")
18
+ self.encoding = "UTF-16BE"
19
+ end
20
+ end
21
+
22
+ def <<( content )
23
+ @output << (@to_utf ? self.encode(content) : content)
24
+ end
25
+
26
+ def to_s
27
+ "Output[#{encoding}]"
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,166 @@
1
+ # frozen_string_literal: false
2
+ require_relative "child"
3
+
4
+ module REXML
5
+ # A parent has children, and has methods for accessing them. The Parent
6
+ # class is never encountered except as the superclass for some other
7
+ # object.
8
+ class Parent < Child
9
+ include Enumerable
10
+
11
+ # Constructor
12
+ # @param parent if supplied, will be set as the parent of this object
13
+ def initialize parent=nil
14
+ super(parent)
15
+ @children = []
16
+ end
17
+
18
+ def add( object )
19
+ object.parent = self
20
+ @children << object
21
+ object
22
+ end
23
+
24
+ alias :push :add
25
+ alias :<< :push
26
+
27
+ def unshift( object )
28
+ object.parent = self
29
+ @children.unshift object
30
+ end
31
+
32
+ def delete( object )
33
+ found = false
34
+ @children.delete_if {|c| c.equal?(object) and found = true }
35
+ object.parent = nil if found
36
+ found ? object : nil
37
+ end
38
+
39
+ def each(&block)
40
+ @children.each(&block)
41
+ end
42
+
43
+ def delete_if( &block )
44
+ @children.delete_if(&block)
45
+ end
46
+
47
+ def delete_at( index )
48
+ @children.delete_at index
49
+ end
50
+
51
+ def each_index( &block )
52
+ @children.each_index(&block)
53
+ end
54
+
55
+ # Fetches a child at a given index
56
+ # @param index the Integer index of the child to fetch
57
+ def []( index )
58
+ @children[index]
59
+ end
60
+
61
+ alias :each_child :each
62
+
63
+
64
+
65
+ # Set an index entry. See Array.[]=
66
+ # @param index the index of the element to set
67
+ # @param opt either the object to set, or an Integer length
68
+ # @param child if opt is an Integer, this is the child to set
69
+ # @return the parent (self)
70
+ def []=( *args )
71
+ args[-1].parent = self
72
+ @children[*args[0..-2]] = args[-1]
73
+ end
74
+
75
+ # Inserts an child before another child
76
+ # @param child1 this is either an xpath or an Element. If an Element,
77
+ # child2 will be inserted before child1 in the child list of the parent.
78
+ # If an xpath, child2 will be inserted before the first child to match
79
+ # the xpath.
80
+ # @param child2 the child to insert
81
+ # @return the parent (self)
82
+ def insert_before( child1, child2 )
83
+ if child1.kind_of? String
84
+ child1 = XPath.first( self, child1 )
85
+ child1.parent.insert_before child1, child2
86
+ else
87
+ ind = index(child1)
88
+ child2.parent.delete(child2) if child2.parent
89
+ @children[ind,0] = child2
90
+ child2.parent = self
91
+ end
92
+ self
93
+ end
94
+
95
+ # Inserts an child after another child
96
+ # @param child1 this is either an xpath or an Element. If an Element,
97
+ # child2 will be inserted after child1 in the child list of the parent.
98
+ # If an xpath, child2 will be inserted after the first child to match
99
+ # the xpath.
100
+ # @param child2 the child to insert
101
+ # @return the parent (self)
102
+ def insert_after( child1, child2 )
103
+ if child1.kind_of? String
104
+ child1 = XPath.first( self, child1 )
105
+ child1.parent.insert_after child1, child2
106
+ else
107
+ ind = index(child1)+1
108
+ child2.parent.delete(child2) if child2.parent
109
+ @children[ind,0] = child2
110
+ child2.parent = self
111
+ end
112
+ self
113
+ end
114
+
115
+ def to_a
116
+ @children.dup
117
+ end
118
+
119
+ # Fetches the index of a given child
120
+ # @param child the child to get the index of
121
+ # @return the index of the child, or nil if the object is not a child
122
+ # of this parent.
123
+ def index( child )
124
+ count = -1
125
+ @children.find { |i| count += 1 ; i.hash == child.hash }
126
+ count
127
+ end
128
+
129
+ # @return the number of children of this parent
130
+ def size
131
+ @children.size
132
+ end
133
+
134
+ alias :length :size
135
+
136
+ # Replaces one child with another, making sure the nodelist is correct
137
+ # @param to_replace the child to replace (must be a Child)
138
+ # @param replacement the child to insert into the nodelist (must be a
139
+ # Child)
140
+ def replace_child( to_replace, replacement )
141
+ @children.map! {|c| c.equal?( to_replace ) ? replacement : c }
142
+ to_replace.parent = nil
143
+ replacement.parent = self
144
+ end
145
+
146
+ # Deeply clones this object. This creates a complete duplicate of this
147
+ # Parent, including all descendants.
148
+ def deep_clone
149
+ cl = clone()
150
+ each do |child|
151
+ if child.kind_of? Parent
152
+ cl << child.deep_clone
153
+ else
154
+ cl << child.clone
155
+ end
156
+ end
157
+ cl
158
+ end
159
+
160
+ alias :children :to_a
161
+
162
+ def parent?
163
+ true
164
+ end
165
+ end
166
+ end