brakeman 3.2.1 → 3.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1201) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +18 -0
  3. data/bin/brakeman +1 -1
  4. data/bundle/load.rb +14 -0
  5. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/CHANGES.txt +828 -0
  6. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/MIT-LICENSE +20 -0
  7. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/README.txt +102 -0
  8. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/benchmark/Makefile +6 -0
  9. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/benchmark/bench.rb +313 -0
  10. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/benchmark/bench_context.yaml +141 -0
  11. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/benchmark/templates/_footer.html +4 -0
  12. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/benchmark/templates/_header.html +52 -0
  13. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/benchmark/templates/bench_erb.rhtml +29 -0
  14. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/benchmark/templates/bench_erubis.rhtml +29 -0
  15. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/benchmark/templates/bench_eruby.rhtml +29 -0
  16. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/bin/erubis +10 -0
  17. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/contrib/erubis +3468 -0
  18. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/contrib/erubis-run.rb +132 -0
  19. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/contrib/inline-require +179 -0
  20. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/ActionView.html +105 -0
  21. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/ActionView/TemplateHandlers/ErubisHandler.html +209 -0
  22. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/ERB.html +101 -0
  23. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis.html +362 -0
  24. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/ArrayBufferEnhancer.html +175 -0
  25. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/ArrayBufferEruby.html +120 -0
  26. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/ArrayEnhancer.html +174 -0
  27. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/ArrayEruby.html +120 -0
  28. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/Basic.html +112 -0
  29. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/Basic/Converter.html +327 -0
  30. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/Basic/Engine.html +130 -0
  31. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/BiPatternEnhancer.html +215 -0
  32. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/BiPatternEruby.html +120 -0
  33. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/CGenerator.html +386 -0
  34. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/CommandOptionError.html +113 -0
  35. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/Context.html +344 -0
  36. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/Converter.html +283 -0
  37. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/CppGenerator.html +382 -0
  38. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/DeleteIndentEnhancer.html +150 -0
  39. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/DeleteIndentEruby.html +120 -0
  40. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/Ec.html +126 -0
  41. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/Ecpp.html +126 -0
  42. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/Ejava.html +126 -0
  43. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/Ejavascript.html +126 -0
  44. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/Engine.html +305 -0
  45. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/Eperl.html +126 -0
  46. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/Ephp.html +126 -0
  47. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/ErboutEnhancer.html +175 -0
  48. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/ErboutEruby.html +120 -0
  49. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/ErubisError.html +117 -0
  50. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/Eruby.html +132 -0
  51. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/EscapeEnhancer.html +165 -0
  52. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/EscapedEc.html +120 -0
  53. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/EscapedEcpp.html +120 -0
  54. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/EscapedEjava.html +120 -0
  55. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/EscapedEjavascript.html +120 -0
  56. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/EscapedEperl.html +120 -0
  57. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/EscapedEphp.html +120 -0
  58. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/EscapedEruby.html +127 -0
  59. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/EscapedEscheme.html +120 -0
  60. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/Escheme.html +126 -0
  61. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/Evaluator.html +212 -0
  62. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/FastEruby.html +131 -0
  63. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/Generator.html +416 -0
  64. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/HeaderFooterEnhancer.html +267 -0
  65. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/HeaderFooterEruby.html +120 -0
  66. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/Helpers.html +116 -0
  67. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/Helpers/RailsFormHelper.html +787 -0
  68. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/Helpers/RailsHelper.html +349 -0
  69. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/Helpers/RailsHelper/TemplateConverter.html +213 -0
  70. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/InterpolationEnhancer.html +305 -0
  71. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/InterpolationEruby.html +120 -0
  72. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/JavaGenerator.html +359 -0
  73. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/JavascriptGenerator.html +386 -0
  74. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/Main.html +341 -0
  75. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/NoCodeEnhancer.html +249 -0
  76. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/NoCodeEruby.html +120 -0
  77. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/NoTextEnhancer.html +159 -0
  78. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/NoTextEruby.html +120 -0
  79. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/NotSupportedError.html +119 -0
  80. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/OptimizedEruby.html +163 -0
  81. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/OptimizedGenerator.html +439 -0
  82. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/OptimizedXmlEruby.html +163 -0
  83. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/PI.html +125 -0
  84. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/PI/Converter.html +266 -0
  85. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/PI/Ec.html +166 -0
  86. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/PI/Ecpp.html +166 -0
  87. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/PI/Ejava.html +166 -0
  88. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/PI/Ejavascript.html +166 -0
  89. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/PI/Engine.html +122 -0
  90. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/PI/Eperl.html +166 -0
  91. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/PI/Ephp.html +166 -0
  92. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/PI/Eruby.html +155 -0
  93. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/PI/Escheme.html +166 -0
  94. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/PI/TinyEruby.html +293 -0
  95. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/PercentLineEnhancer.html +163 -0
  96. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/PercentLineEruby.html +120 -0
  97. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/PerlGenerator.html +344 -0
  98. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/PhpGenerator.html +350 -0
  99. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/PrefixedLineEnhancer.html +210 -0
  100. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/PrefixedLineEruby.html +120 -0
  101. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/PreprocessingEruby.html +183 -0
  102. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/PreprocessingHelper.html +212 -0
  103. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/PrintEnabledEnhancer.html +212 -0
  104. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/PrintEnabledEruby.html +120 -0
  105. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/PrintOutEnhancer.html +244 -0
  106. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/PrintOutEruby.html +120 -0
  107. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/PrintOutSimplifiedEruby.html +121 -0
  108. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/RubyEvaluator.html +227 -0
  109. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/RubyGenerator.html +328 -0
  110. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/SchemeGenerator.html +382 -0
  111. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/SimplifiedEruby.html +120 -0
  112. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/SimplifyEnhancer.html +191 -0
  113. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/StdoutEnhancer.html +173 -0
  114. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/StdoutEruby.html +120 -0
  115. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/StdoutSimplifiedEruby.html +121 -0
  116. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/StringBufferEnhancer.html +174 -0
  117. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/StringBufferEruby.html +120 -0
  118. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/StringIOEruby.html +120 -0
  119. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/TinyEruby.html +298 -0
  120. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/XmlEruby.html +130 -0
  121. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Erubis/XmlHelper.html +255 -0
  122. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/classes/Kernel.html +155 -0
  123. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/created.rid +1 -0
  124. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/files/README_txt.html +247 -0
  125. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/files/erubis/context_rb.html +107 -0
  126. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/files/erubis/converter_rb.html +114 -0
  127. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/files/erubis/engine/ec_rb.html +115 -0
  128. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/files/erubis/engine/ecpp_rb.html +115 -0
  129. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/files/erubis/engine/ejava_rb.html +115 -0
  130. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/files/erubis/engine/ejavascript_rb.html +115 -0
  131. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/files/erubis/engine/enhanced_rb.html +115 -0
  132. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/files/erubis/engine/eperl_rb.html +115 -0
  133. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/files/erubis/engine/ephp_rb.html +115 -0
  134. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/files/erubis/engine/eruby_rb.html +115 -0
  135. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/files/erubis/engine/escheme_rb.html +115 -0
  136. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/files/erubis/engine/optimized_rb.html +114 -0
  137. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/files/erubis/engine_rb.html +117 -0
  138. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/files/erubis/enhancer_rb.html +107 -0
  139. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/files/erubis/error_rb.html +107 -0
  140. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/files/erubis/evaluator_rb.html +115 -0
  141. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/files/erubis/generator_rb.html +114 -0
  142. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/files/erubis/helper_rb.html +107 -0
  143. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/files/erubis/helpers/rails_form_helper_rb.html +107 -0
  144. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/files/erubis/helpers/rails_helper_rb.html +116 -0
  145. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/files/erubis/local-setting_rb.html +107 -0
  146. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/files/erubis/main_rb.html +129 -0
  147. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/files/erubis/preprocessing_rb.html +114 -0
  148. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/files/erubis/tiny_rb.html +107 -0
  149. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/files/erubis/util_rb.html +107 -0
  150. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/files/erubis_rb.html +118 -0
  151. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/fr_class_index.html +129 -0
  152. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/fr_file_index.html +53 -0
  153. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/fr_method_index.html +265 -0
  154. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/index.html +24 -0
  155. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc-api/rdoc-style.css +208 -0
  156. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc/docstyle.css +209 -0
  157. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/doc/users-guide.html +3551 -0
  158. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/examples/basic/Makefile +58 -0
  159. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/examples/basic/example.ec +42 -0
  160. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/examples/basic/example.ecpp +33 -0
  161. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/examples/basic/example.ejava +45 -0
  162. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/examples/basic/example.ejs +16 -0
  163. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/examples/basic/example.eperl +16 -0
  164. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/examples/basic/example.ephp +17 -0
  165. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/examples/basic/example.eruby +15 -0
  166. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/examples/basic/example.escheme +26 -0
  167. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/examples/pi/Makefile +54 -0
  168. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/examples/pi/example.ec +42 -0
  169. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/examples/pi/example.ejava +45 -0
  170. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/examples/pi/example.ejs +16 -0
  171. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/examples/pi/example.eperl +16 -0
  172. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/examples/pi/example.ephp +17 -0
  173. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/examples/pi/example.eruby +15 -0
  174. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/examples/pi/example.escheme +26 -0
  175. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/lib/erubis.rb +73 -0
  176. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/lib/erubis/context.rb +83 -0
  177. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/lib/erubis/converter.rb +357 -0
  178. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/lib/erubis/engine.rb +120 -0
  179. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/lib/erubis/engine/ec.rb +117 -0
  180. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/lib/erubis/engine/ecpp.rb +113 -0
  181. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/lib/erubis/engine/ejava.rb +110 -0
  182. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/lib/erubis/engine/ejavascript.rb +119 -0
  183. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/lib/erubis/engine/enhanced.rb +126 -0
  184. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb +95 -0
  185. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/lib/erubis/engine/ephp.rb +99 -0
  186. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/lib/erubis/engine/eruby.rb +125 -0
  187. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/lib/erubis/engine/escheme.rb +114 -0
  188. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/lib/erubis/engine/optimized.rb +127 -0
  189. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/lib/erubis/enhancer.rb +723 -0
  190. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/lib/erubis/error.rb +23 -0
  191. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/lib/erubis/evaluator.rb +88 -0
  192. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/lib/erubis/generator.rb +85 -0
  193. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/lib/erubis/helper.rb +47 -0
  194. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/lib/erubis/helpers/rails_form_helper.rb +197 -0
  195. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/lib/erubis/helpers/rails_helper.rb +353 -0
  196. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/lib/erubis/local-setting.rb +9 -0
  197. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/lib/erubis/main.rb +516 -0
  198. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/lib/erubis/preprocessing.rb +58 -0
  199. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/lib/erubis/tiny.rb +144 -0
  200. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/lib/erubis/util.rb +22 -0
  201. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/setup.rb +1331 -0
  202. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/assert-text-equal.rb +44 -0
  203. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/Example.ejava +55 -0
  204. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/array_example.result +9 -0
  205. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/arraybuffer_example.result +9 -0
  206. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/bipattern-example.rhtml +4 -0
  207. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/bipattern_example.result +6 -0
  208. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/bufvar-example.rb +10 -0
  209. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/bufvar-example.result +17 -0
  210. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/context.rb +6 -0
  211. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/context.yaml +8 -0
  212. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/def_method.rb +14 -0
  213. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/def_method.result +3 -0
  214. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/escape_example.result +9 -0
  215. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example.ec +27 -0
  216. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example.ecpp +30 -0
  217. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example.ejs +20 -0
  218. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example.eperl +18 -0
  219. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example.ephp +18 -0
  220. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example.eruby +6 -0
  221. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example.escheme +28 -0
  222. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example1.eruby +6 -0
  223. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example1.rb +17 -0
  224. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example1.result +16 -0
  225. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example10.rb +4 -0
  226. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example10.result +17 -0
  227. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example10.xhtml +14 -0
  228. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example10_x.result +17 -0
  229. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example11.php +20 -0
  230. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example11.result +23 -0
  231. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example11.rhtml +21 -0
  232. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example11_C.result +10 -0
  233. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example11_N.result +16 -0
  234. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example11_U.result +16 -0
  235. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example11_php.result +15 -0
  236. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example1_x.result +9 -0
  237. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example2.eruby +7 -0
  238. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example2.rb +10 -0
  239. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example2.result +27 -0
  240. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example2_trim.result +10 -0
  241. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example2_x.result +10 -0
  242. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example3.eruby +6 -0
  243. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example3.rb +10 -0
  244. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example31.result +22 -0
  245. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example32.result +4 -0
  246. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example3_e.result +8 -0
  247. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example4.eruby +3 -0
  248. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example4.rb +11 -0
  249. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example4.result +10 -0
  250. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example4_x.result +5 -0
  251. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example5.eruby +6 -0
  252. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example5.rb +16 -0
  253. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example5.result +7 -0
  254. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example6.rb +12 -0
  255. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example6.result +7 -0
  256. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example7.eruby +8 -0
  257. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example71.result +13 -0
  258. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example72.result +13 -0
  259. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example8.eruby +6 -0
  260. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example8_ruby.result +7 -0
  261. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example8_yaml.result +7 -0
  262. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example9.eruby +3 -0
  263. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example9.rb +8 -0
  264. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example9.result +9 -0
  265. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example91.result +5 -0
  266. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example92.result +4 -0
  267. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example_c.result +32 -0
  268. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example_java.result +56 -0
  269. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example_js.result +22 -0
  270. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example_perl.result +20 -0
  271. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example_php.result +19 -0
  272. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example_scheme.result +30 -0
  273. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/example_scheme_display.result +29 -0
  274. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/fasteruby-example.rb +8 -0
  275. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/fasteruby-example.result +18 -0
  276. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/fasteruby.rb +11 -0
  277. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/fasteruby.result +38 -0
  278. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/fasteruby.rhtml +15 -0
  279. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/headerfooter-example.eruby +9 -0
  280. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/headerfooter-example2.rb +8 -0
  281. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/headerfooter-example2.rhtml +10 -0
  282. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/headerfooter_example.result +11 -0
  283. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/headerfooter_example2.result +13 -0
  284. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/interpolation_example.result +9 -0
  285. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/main_program1.rb +8 -0
  286. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/main_program1.result +6 -0
  287. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/main_program2.rb +8 -0
  288. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/main_program2.result +6 -0
  289. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/nocode-example.eruby +14 -0
  290. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/nocode-php.result +20 -0
  291. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/nocode_example.result +15 -0
  292. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/normal-eruby-test.eruby +9 -0
  293. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/normal_eruby_test.result +11 -0
  294. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/notext-example.eruby +14 -0
  295. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/notext-example.php +19 -0
  296. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/notext-php.result +20 -0
  297. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/notext_example.result +16 -0
  298. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/percentline-example.rhtml +6 -0
  299. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/percentline_example.result +9 -0
  300. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/prefixedline-example.rb +9 -0
  301. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/prefixedline-example.rhtml +6 -0
  302. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/prefixedline_example.result +9 -0
  303. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/printenable_example.result +4 -0
  304. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/printenabled-example.eruby +3 -0
  305. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/printenabled-example.rb +8 -0
  306. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/printstatement_example.result +8 -0
  307. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/simplify_example.result +9 -0
  308. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/stderr.log +3 -0
  309. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/stdout_exmple.result +9 -0
  310. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/stringbuffer_example.result +9 -0
  311. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/tail_260.result +4 -0
  312. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/tailnewline.rhtml +3 -0
  313. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/template1.rhtml +4 -0
  314. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/data/users-guide/template2.rhtml +4 -0
  315. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/test-engines.rb +425 -0
  316. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/test-enhancers.rb +646 -0
  317. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/test-erubis.rb +887 -0
  318. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/test-index-cgi.rb +191 -0
  319. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/test-main.rb +752 -0
  320. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/test-users-guide.rb +73 -0
  321. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/test.rb +45 -0
  322. data/bundle/ruby/2.3.0/gems/erubis-2.7.0/test/testutil.rb +111 -0
  323. data/bundle/ruby/2.3.0/gems/haml-4.0.7/CHANGELOG.md +1363 -0
  324. data/bundle/ruby/2.3.0/gems/haml-4.0.7/FAQ.md +157 -0
  325. data/bundle/ruby/2.3.0/gems/haml-4.0.7/MIT-LICENSE +20 -0
  326. data/bundle/ruby/2.3.0/gems/haml-4.0.7/README.md +173 -0
  327. data/bundle/ruby/2.3.0/gems/haml-4.0.7/REFERENCE.md +1294 -0
  328. data/bundle/ruby/2.3.0/gems/haml-4.0.7/Rakefile +134 -0
  329. data/bundle/ruby/2.3.0/gems/haml-4.0.7/bin/haml +9 -0
  330. data/bundle/ruby/2.3.0/gems/haml-4.0.7/lib/haml.rb +23 -0
  331. data/bundle/ruby/2.3.0/gems/haml-4.0.7/lib/haml/buffer.rb +345 -0
  332. data/bundle/ruby/2.3.0/gems/haml-4.0.7/lib/haml/compiler.rb +540 -0
  333. data/bundle/ruby/2.3.0/gems/haml-4.0.7/lib/haml/engine.rb +245 -0
  334. data/bundle/ruby/2.3.0/gems/haml-4.0.7/lib/haml/error.rb +61 -0
  335. data/bundle/ruby/2.3.0/gems/haml-4.0.7/lib/haml/exec.rb +329 -0
  336. data/bundle/ruby/2.3.0/gems/haml-4.0.7/lib/haml/filters.rb +404 -0
  337. data/bundle/ruby/2.3.0/gems/haml-4.0.7/lib/haml/helpers.rb +664 -0
  338. data/bundle/ruby/2.3.0/gems/haml-4.0.7/lib/haml/helpers/action_view_extensions.rb +58 -0
  339. data/bundle/ruby/2.3.0/gems/haml-4.0.7/lib/haml/helpers/action_view_mods.rb +147 -0
  340. data/bundle/ruby/2.3.0/gems/haml-4.0.7/lib/haml/helpers/action_view_xss_mods.rb +58 -0
  341. data/bundle/ruby/2.3.0/gems/haml-4.0.7/lib/haml/helpers/safe_erubis_template.rb +29 -0
  342. data/bundle/ruby/2.3.0/gems/haml-4.0.7/lib/haml/helpers/xss_mods.rb +104 -0
  343. data/bundle/ruby/2.3.0/gems/haml-4.0.7/lib/haml/options.rb +279 -0
  344. data/bundle/ruby/2.3.0/gems/haml-4.0.7/lib/haml/parser.rb +764 -0
  345. data/bundle/ruby/2.3.0/gems/haml-4.0.7/lib/haml/railtie.rb +22 -0
  346. data/bundle/ruby/2.3.0/gems/haml-4.0.7/lib/haml/sass_rails_filter.rb +33 -0
  347. data/bundle/ruby/2.3.0/gems/haml-4.0.7/lib/haml/template.rb +32 -0
  348. data/bundle/ruby/2.3.0/gems/haml-4.0.7/lib/haml/template/options.rb +16 -0
  349. data/bundle/ruby/2.3.0/gems/haml-4.0.7/lib/haml/template/plugin.rb +41 -0
  350. data/bundle/ruby/2.3.0/gems/haml-4.0.7/lib/haml/util.rb +377 -0
  351. data/bundle/ruby/2.3.0/gems/haml-4.0.7/lib/haml/version.rb +3 -0
  352. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/engine_test.rb +2013 -0
  353. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/erb/_av_partial_1.erb +12 -0
  354. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/erb/_av_partial_2.erb +8 -0
  355. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/erb/action_view.erb +62 -0
  356. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/erb/standard.erb +55 -0
  357. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/filters_test.rb +254 -0
  358. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/gemfiles/Gemfile.rails-3.0.x +5 -0
  359. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/gemfiles/Gemfile.rails-3.1.x +6 -0
  360. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/gemfiles/Gemfile.rails-3.2.x +5 -0
  361. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/gemfiles/Gemfile.rails-4.0.x +5 -0
  362. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/haml-spec/LICENSE +14 -0
  363. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/haml-spec/README.md +106 -0
  364. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/haml-spec/lua_haml_spec.lua +38 -0
  365. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/haml-spec/perl_haml_test.pl +81 -0
  366. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/haml-spec/ruby_haml_test.rb +23 -0
  367. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/haml-spec/tests.json +660 -0
  368. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/helper_test.rb +583 -0
  369. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/markaby/standard.mab +52 -0
  370. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/mocks/article.rb +6 -0
  371. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/parser_test.rb +105 -0
  372. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/results/content_for_layout.xhtml +12 -0
  373. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/results/eval_suppressed.xhtml +9 -0
  374. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/results/helpers.xhtml +70 -0
  375. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/results/helpful.xhtml +10 -0
  376. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/results/just_stuff.xhtml +70 -0
  377. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/results/list.xhtml +12 -0
  378. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/results/nuke_inner_whitespace.xhtml +40 -0
  379. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/results/nuke_outer_whitespace.xhtml +148 -0
  380. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/results/original_engine.xhtml +20 -0
  381. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/results/partial_layout.xhtml +5 -0
  382. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/results/partial_layout_erb.xhtml +5 -0
  383. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/results/partials.xhtml +21 -0
  384. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/results/render_layout.xhtml +3 -0
  385. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/results/silent_script.xhtml +74 -0
  386. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/results/standard.xhtml +162 -0
  387. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/results/tag_parsing.xhtml +23 -0
  388. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/results/very_basic.xhtml +5 -0
  389. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/results/whitespace_handling.xhtml +90 -0
  390. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/template_test.rb +354 -0
  391. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/_av_partial_1.haml +9 -0
  392. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/_av_partial_1_ugly.haml +9 -0
  393. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/_av_partial_2.haml +5 -0
  394. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/_av_partial_2_ugly.haml +5 -0
  395. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/_layout.erb +3 -0
  396. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/_layout_for_partial.haml +3 -0
  397. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/_partial.haml +8 -0
  398. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/_text_area.haml +3 -0
  399. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/_text_area_helper.html.haml +4 -0
  400. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/action_view.haml +47 -0
  401. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/action_view_ugly.haml +47 -0
  402. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/breakage.haml +8 -0
  403. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/content_for_layout.haml +8 -0
  404. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/eval_suppressed.haml +11 -0
  405. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/helpers.haml +55 -0
  406. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/helpful.haml +11 -0
  407. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/just_stuff.haml +85 -0
  408. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/list.haml +12 -0
  409. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/nuke_inner_whitespace.haml +32 -0
  410. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/nuke_outer_whitespace.haml +144 -0
  411. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/original_engine.haml +17 -0
  412. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/partial_layout.haml +3 -0
  413. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/partial_layout_erb.erb +4 -0
  414. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/partialize.haml +1 -0
  415. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/partials.haml +12 -0
  416. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/render_layout.haml +2 -0
  417. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/silent_script.haml +45 -0
  418. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/standard.haml +43 -0
  419. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/standard_ugly.haml +43 -0
  420. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/tag_parsing.haml +21 -0
  421. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/very_basic.haml +4 -0
  422. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/templates/whitespace_handling.haml +87 -0
  423. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/test_helper.rb +81 -0
  424. data/bundle/ruby/2.3.0/gems/haml-4.0.7/test/util_test.rb +63 -0
  425. data/bundle/ruby/2.3.0/gems/highline-1.7.8/AUTHORS +3 -0
  426. data/bundle/ruby/2.3.0/gems/highline-1.7.8/COPYING +339 -0
  427. data/bundle/ruby/2.3.0/gems/highline-1.7.8/Changelog.md +415 -0
  428. data/bundle/ruby/2.3.0/gems/highline-1.7.8/Gemfile +9 -0
  429. data/bundle/ruby/2.3.0/gems/highline-1.7.8/INSTALL +59 -0
  430. data/bundle/ruby/2.3.0/gems/highline-1.7.8/LICENSE +7 -0
  431. data/bundle/ruby/2.3.0/gems/highline-1.7.8/README.rdoc +74 -0
  432. data/bundle/ruby/2.3.0/gems/highline-1.7.8/Rakefile +30 -0
  433. data/bundle/ruby/2.3.0/gems/highline-1.7.8/TODO +6 -0
  434. data/bundle/ruby/2.3.0/gems/highline-1.7.8/examples/ansi_colors.rb +38 -0
  435. data/bundle/ruby/2.3.0/gems/highline-1.7.8/examples/asking_for_arrays.rb +18 -0
  436. data/bundle/ruby/2.3.0/gems/highline-1.7.8/examples/basic_usage.rb +75 -0
  437. data/bundle/ruby/2.3.0/gems/highline-1.7.8/examples/color_scheme.rb +32 -0
  438. data/bundle/ruby/2.3.0/gems/highline-1.7.8/examples/get_character.rb +12 -0
  439. data/bundle/ruby/2.3.0/gems/highline-1.7.8/examples/limit.rb +12 -0
  440. data/bundle/ruby/2.3.0/gems/highline-1.7.8/examples/menus.rb +65 -0
  441. data/bundle/ruby/2.3.0/gems/highline-1.7.8/examples/overwrite.rb +19 -0
  442. data/bundle/ruby/2.3.0/gems/highline-1.7.8/examples/page_and_wrap.rb +322 -0
  443. data/bundle/ruby/2.3.0/gems/highline-1.7.8/examples/password.rb +7 -0
  444. data/bundle/ruby/2.3.0/gems/highline-1.7.8/examples/repeat_entry.rb +21 -0
  445. data/bundle/ruby/2.3.0/gems/highline-1.7.8/examples/trapping_eof.rb +22 -0
  446. data/bundle/ruby/2.3.0/gems/highline-1.7.8/examples/using_readline.rb +17 -0
  447. data/bundle/ruby/2.3.0/gems/highline-1.7.8/highline.gemspec +37 -0
  448. data/bundle/ruby/2.3.0/gems/highline-1.7.8/lib/highline.rb +1048 -0
  449. data/bundle/ruby/2.3.0/gems/highline-1.7.8/lib/highline/color_scheme.rb +134 -0
  450. data/bundle/ruby/2.3.0/gems/highline-1.7.8/lib/highline/compatibility.rb +16 -0
  451. data/bundle/ruby/2.3.0/gems/highline-1.7.8/lib/highline/import.rb +41 -0
  452. data/bundle/ruby/2.3.0/gems/highline-1.7.8/lib/highline/menu.rb +381 -0
  453. data/bundle/ruby/2.3.0/gems/highline-1.7.8/lib/highline/question.rb +480 -0
  454. data/bundle/ruby/2.3.0/gems/highline-1.7.8/lib/highline/simulate.rb +48 -0
  455. data/bundle/ruby/2.3.0/gems/highline-1.7.8/lib/highline/string_extensions.rb +111 -0
  456. data/bundle/ruby/2.3.0/gems/highline-1.7.8/lib/highline/style.rb +192 -0
  457. data/bundle/ruby/2.3.0/gems/highline-1.7.8/lib/highline/system_extensions.rb +254 -0
  458. data/bundle/ruby/2.3.0/gems/highline-1.7.8/lib/highline/version.rb +4 -0
  459. data/bundle/ruby/2.3.0/gems/highline-1.7.8/setup.rb +1360 -0
  460. data/bundle/ruby/2.3.0/gems/highline-1.7.8/site/highline.css +65 -0
  461. data/bundle/ruby/2.3.0/gems/highline-1.7.8/site/images/logo.png +0 -0
  462. data/bundle/ruby/2.3.0/gems/highline-1.7.8/site/index.html +58 -0
  463. data/bundle/ruby/2.3.0/gems/highline-1.7.8/test/string_methods.rb +32 -0
  464. data/bundle/ruby/2.3.0/gems/highline-1.7.8/test/tc_color_scheme.rb +96 -0
  465. data/bundle/ruby/2.3.0/gems/highline-1.7.8/test/tc_highline.rb +1402 -0
  466. data/bundle/ruby/2.3.0/gems/highline-1.7.8/test/tc_import.rb +52 -0
  467. data/bundle/ruby/2.3.0/gems/highline-1.7.8/test/tc_menu.rb +439 -0
  468. data/bundle/ruby/2.3.0/gems/highline-1.7.8/test/tc_simulator.rb +23 -0
  469. data/bundle/ruby/2.3.0/gems/highline-1.7.8/test/tc_string_extension.rb +33 -0
  470. data/bundle/ruby/2.3.0/gems/highline-1.7.8/test/tc_string_highline.rb +38 -0
  471. data/bundle/ruby/2.3.0/gems/highline-1.7.8/test/tc_style.rb +578 -0
  472. data/bundle/ruby/2.3.0/gems/ruby2ruby-2.3.0/History.txt +371 -0
  473. data/bundle/ruby/2.3.0/gems/ruby2ruby-2.3.0/Manifest.txt +8 -0
  474. data/bundle/ruby/2.3.0/gems/ruby2ruby-2.3.0/README.txt +87 -0
  475. data/bundle/ruby/2.3.0/gems/ruby2ruby-2.3.0/Rakefile +92 -0
  476. data/bundle/ruby/2.3.0/gems/ruby2ruby-2.3.0/bin/r2r_show +33 -0
  477. data/bundle/ruby/2.3.0/gems/ruby2ruby-2.3.0/lib/ruby2ruby.rb +1159 -0
  478. data/bundle/ruby/2.3.0/gems/ruby2ruby-2.3.0/test/test_ruby2ruby.rb +709 -0
  479. data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.1/History.txt +882 -0
  480. data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.1/Manifest.txt +29 -0
  481. data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.1/README.txt +93 -0
  482. data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.1/Rakefile +187 -0
  483. data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.1/bin/ruby_parse +96 -0
  484. data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.1/bin/ruby_parse_extract_error +156 -0
  485. data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.1/lib/ruby18_parser.rb +5773 -0
  486. data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.1/lib/ruby18_parser.y +1899 -0
  487. data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.1/lib/ruby19_parser.rb +6171 -0
  488. data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.1/lib/ruby19_parser.y +2109 -0
  489. data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.1/lib/ruby20_parser.rb +6723 -0
  490. data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.1/lib/ruby20_parser.y +2372 -0
  491. data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.1/lib/ruby21_parser.rb +6764 -0
  492. data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.1/lib/ruby21_parser.y +2382 -0
  493. data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.1/lib/ruby22_parser.rb +6804 -0
  494. data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.1/lib/ruby22_parser.y +2393 -0
  495. data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.1/lib/ruby23_parser.rb +6905 -0
  496. data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.1/lib/ruby23_parser.y +2425 -0
  497. data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.1/lib/ruby_lexer.rb +1237 -0
  498. data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.1/lib/ruby_lexer.rex +177 -0
  499. data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.1/lib/ruby_lexer.rex.rb +317 -0
  500. data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.1/lib/ruby_parser.rb +7 -0
  501. data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.1/lib/ruby_parser.yy +2506 -0
  502. data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.1/lib/ruby_parser_extras.rb +1460 -0
  503. data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.1/test/test_ruby_lexer.rb +2723 -0
  504. data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.1/test/test_ruby_parser.rb +3502 -0
  505. data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.1/test/test_ruby_parser_extras.rb +228 -0
  506. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/CHANGES.md +149 -0
  507. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/Gemfile +11 -0
  508. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/LICENSE.txt +22 -0
  509. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/README.md +191 -0
  510. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/Rakefile +26 -0
  511. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/bin/safe_yaml +75 -0
  512. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/bundle_install_all_ruby_versions.sh +11 -0
  513. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml.rb +94 -0
  514. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/deep.rb +34 -0
  515. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/libyaml_checker.rb +36 -0
  516. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/load.rb +181 -0
  517. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/parse/date.rb +35 -0
  518. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/parse/hexadecimal.rb +12 -0
  519. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/parse/sexagesimal.rb +26 -0
  520. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/psych_handler.rb +99 -0
  521. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/psych_resolver.rb +52 -0
  522. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/resolver.rb +94 -0
  523. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/safe_to_ruby_visitor.rb +29 -0
  524. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/syck_hack.rb +36 -0
  525. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/syck_node_monkeypatch.rb +43 -0
  526. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/syck_resolver.rb +38 -0
  527. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/transform.rb +41 -0
  528. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/transform/to_boolean.rb +21 -0
  529. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/transform/to_date.rb +13 -0
  530. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/transform/to_float.rb +33 -0
  531. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/transform/to_integer.rb +26 -0
  532. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/transform/to_nil.rb +18 -0
  533. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/transform/to_symbol.rb +17 -0
  534. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/transform/transformation_map.rb +47 -0
  535. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/version.rb +3 -0
  536. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/run_specs_all_ruby_versions.sh +38 -0
  537. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/safe_yaml.gemspec +19 -0
  538. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/exploit.1.9.2.yaml +2 -0
  539. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/exploit.1.9.3.yaml +2 -0
  540. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/issue48.txt +20 -0
  541. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/issue49.yml +0 -0
  542. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/libyaml_checker_spec.rb +69 -0
  543. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/psych_resolver_spec.rb +10 -0
  544. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/resolver_specs.rb +278 -0
  545. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/safe_yaml_spec.rb +731 -0
  546. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/spec_helper.rb +42 -0
  547. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/support/exploitable_back_door.rb +29 -0
  548. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/syck_resolver_spec.rb +10 -0
  549. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/transform/base64_spec.rb +11 -0
  550. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/transform/to_date_spec.rb +60 -0
  551. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/transform/to_float_spec.rb +42 -0
  552. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/transform/to_integer_spec.rb +64 -0
  553. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/transform/to_symbol_spec.rb +51 -0
  554. data/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/yaml_spec.rb +15 -0
  555. data/bundle/ruby/2.3.0/gems/sass-3.4.22/CODE_OF_CONDUCT.md +10 -0
  556. data/bundle/ruby/2.3.0/gems/sass-3.4.22/CONTRIBUTING.md +125 -0
  557. data/bundle/ruby/2.3.0/gems/sass-3.4.22/MIT-LICENSE +20 -0
  558. data/bundle/ruby/2.3.0/gems/sass-3.4.22/README.md +227 -0
  559. data/bundle/ruby/2.3.0/gems/sass-3.4.22/REVISION +1 -0
  560. data/bundle/ruby/2.3.0/gems/sass-3.4.22/Rakefile +432 -0
  561. data/bundle/ruby/2.3.0/gems/sass-3.4.22/VERSION +1 -0
  562. data/bundle/ruby/2.3.0/gems/sass-3.4.22/VERSION_DATE +1 -0
  563. data/bundle/ruby/2.3.0/gems/sass-3.4.22/VERSION_NAME +1 -0
  564. data/bundle/ruby/2.3.0/gems/sass-3.4.22/bin/sass +13 -0
  565. data/bundle/ruby/2.3.0/gems/sass-3.4.22/bin/sass-convert +12 -0
  566. data/bundle/ruby/2.3.0/gems/sass-3.4.22/bin/scss +13 -0
  567. data/bundle/ruby/2.3.0/gems/sass-3.4.22/extra/update_watch.rb +13 -0
  568. data/bundle/ruby/2.3.0/gems/sass-3.4.22/init.rb +18 -0
  569. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass.rb +109 -0
  570. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/cache_stores.rb +15 -0
  571. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/cache_stores/base.rb +88 -0
  572. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/cache_stores/chain.rb +34 -0
  573. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/cache_stores/filesystem.rb +60 -0
  574. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/cache_stores/memory.rb +46 -0
  575. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/cache_stores/null.rb +25 -0
  576. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/callbacks.rb +67 -0
  577. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/css.rb +408 -0
  578. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/engine.rb +1218 -0
  579. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/environment.rb +215 -0
  580. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/error.rb +198 -0
  581. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/exec.rb +9 -0
  582. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/exec/base.rb +199 -0
  583. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/exec/sass_convert.rb +283 -0
  584. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/exec/sass_scss.rb +440 -0
  585. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/features.rb +47 -0
  586. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/importers.rb +23 -0
  587. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/importers/base.rb +182 -0
  588. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/importers/deprecated_path.rb +51 -0
  589. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/importers/filesystem.rb +219 -0
  590. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/logger.rb +12 -0
  591. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/logger/base.rb +30 -0
  592. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/logger/log_level.rb +45 -0
  593. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/media.rb +210 -0
  594. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/plugin.rb +134 -0
  595. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/plugin/compiler.rb +582 -0
  596. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/plugin/configuration.rb +134 -0
  597. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/plugin/generic.rb +15 -0
  598. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/plugin/merb.rb +48 -0
  599. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/plugin/rack.rb +60 -0
  600. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/plugin/rails.rb +47 -0
  601. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/plugin/staleness_checker.rb +199 -0
  602. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/railtie.rb +10 -0
  603. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/repl.rb +57 -0
  604. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/root.rb +7 -0
  605. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script.rb +66 -0
  606. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/css_lexer.rb +33 -0
  607. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/css_parser.rb +33 -0
  608. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/css_variable_warning.rb +52 -0
  609. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/functions.rb +2690 -0
  610. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/lexer.rb +464 -0
  611. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/parser.rb +825 -0
  612. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/tree.rb +16 -0
  613. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/tree/funcall.rb +313 -0
  614. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/tree/interpolation.rb +223 -0
  615. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/tree/list_literal.rb +104 -0
  616. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/tree/literal.rb +49 -0
  617. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/tree/map_literal.rb +64 -0
  618. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/tree/node.rb +127 -0
  619. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/tree/operation.rb +129 -0
  620. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/tree/selector.rb +26 -0
  621. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/tree/string_interpolation.rb +125 -0
  622. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/tree/unary_operation.rb +69 -0
  623. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/tree/variable.rb +57 -0
  624. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/value.rb +11 -0
  625. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/value/arg_list.rb +36 -0
  626. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/value/base.rb +241 -0
  627. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/value/bool.rb +35 -0
  628. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/value/color.rb +698 -0
  629. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/value/helpers.rb +272 -0
  630. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/value/list.rb +113 -0
  631. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/value/map.rb +70 -0
  632. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/value/null.rb +44 -0
  633. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/value/number.rb +561 -0
  634. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/value/string.rb +145 -0
  635. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/scss.rb +14 -0
  636. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/scss/css_parser.rb +56 -0
  637. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/scss/parser.rb +1236 -0
  638. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/scss/rx.rb +140 -0
  639. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/scss/static_parser.rb +366 -0
  640. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/selector.rb +323 -0
  641. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/selector/abstract_sequence.rb +111 -0
  642. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/selector/comma_sequence.rb +179 -0
  643. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/selector/pseudo.rb +266 -0
  644. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/selector/sequence.rb +636 -0
  645. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/selector/simple.rb +116 -0
  646. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/selector/simple_sequence.rb +344 -0
  647. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/shared.rb +76 -0
  648. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/source/map.rb +211 -0
  649. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/source/position.rb +39 -0
  650. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/source/range.rb +41 -0
  651. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/stack.rb +120 -0
  652. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/supports.rb +225 -0
  653. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/at_root_node.rb +83 -0
  654. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/charset_node.rb +22 -0
  655. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/comment_node.rb +82 -0
  656. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/content_node.rb +9 -0
  657. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/css_import_node.rb +68 -0
  658. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/debug_node.rb +18 -0
  659. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/directive_node.rb +59 -0
  660. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/each_node.rb +24 -0
  661. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/error_node.rb +18 -0
  662. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/extend_node.rb +43 -0
  663. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/for_node.rb +36 -0
  664. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/function_node.rb +44 -0
  665. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/if_node.rb +52 -0
  666. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/import_node.rb +75 -0
  667. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/keyframe_rule_node.rb +15 -0
  668. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/media_node.rb +48 -0
  669. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/mixin_def_node.rb +38 -0
  670. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/mixin_node.rb +52 -0
  671. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/node.rb +240 -0
  672. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/prop_node.rb +170 -0
  673. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/return_node.rb +19 -0
  674. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/root_node.rb +44 -0
  675. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/rule_node.rb +146 -0
  676. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/supports_node.rb +38 -0
  677. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/trace_node.rb +33 -0
  678. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/variable_node.rb +36 -0
  679. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/visitors/base.rb +72 -0
  680. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/visitors/check_nesting.rb +173 -0
  681. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/visitors/convert.rb +349 -0
  682. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/visitors/cssize.rb +373 -0
  683. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/visitors/deep_copy.rb +107 -0
  684. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/visitors/extend.rb +70 -0
  685. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb +563 -0
  686. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/visitors/set_options.rb +139 -0
  687. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/visitors/to_css.rb +409 -0
  688. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/warn_node.rb +18 -0
  689. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/while_node.rb +18 -0
  690. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/util.rb +1350 -0
  691. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/util/cross_platform_random.rb +19 -0
  692. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/util/multibyte_string_scanner.rb +155 -0
  693. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/util/normalized_map.rb +129 -0
  694. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/util/ordered_hash.rb +192 -0
  695. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/util/subset_map.rb +109 -0
  696. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/util/test.rb +9 -0
  697. data/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/version.rb +124 -0
  698. data/bundle/ruby/2.3.0/gems/sass-3.4.22/rails/init.rb +1 -0
  699. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass-spec.yml +3 -0
  700. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/cache_test.rb +131 -0
  701. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/callbacks_test.rb +61 -0
  702. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/compiler_test.rb +236 -0
  703. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/conversion_test.rb +2171 -0
  704. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/css2sass_test.rb +526 -0
  705. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/css_variable_test.rb +132 -0
  706. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/data/hsl-rgb.txt +319 -0
  707. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/encoding_test.rb +219 -0
  708. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/engine_test.rb +3441 -0
  709. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/exec_test.rb +96 -0
  710. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/extend_test.rb +1707 -0
  711. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/fixtures/test_staleness_check_across_importers.css +1 -0
  712. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/fixtures/test_staleness_check_across_importers.scss +1 -0
  713. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/functions_test.rb +1974 -0
  714. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/importer_test.rb +421 -0
  715. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/logger_test.rb +58 -0
  716. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/mock_importer.rb +49 -0
  717. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/more_results/more1.css +9 -0
  718. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/more_results/more1_with_line_comments.css +26 -0
  719. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/more_results/more_import.css +29 -0
  720. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/more_templates/_more_partial.sass +2 -0
  721. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/more_templates/more1.sass +23 -0
  722. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/more_templates/more_import.sass +11 -0
  723. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/plugin_test.rb +556 -0
  724. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/results/alt.css +4 -0
  725. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/results/basic.css +9 -0
  726. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/results/cached_import_option.css +3 -0
  727. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/results/compact.css +5 -0
  728. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/results/complex.css +86 -0
  729. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/results/compressed.css +1 -0
  730. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/results/expanded.css +19 -0
  731. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/results/filename_fn.css +3 -0
  732. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/results/if.css +3 -0
  733. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/results/import.css +31 -0
  734. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/results/import_charset.css +5 -0
  735. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/results/import_charset_1_8.css +5 -0
  736. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/results/import_charset_ibm866.css +5 -0
  737. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/results/import_content.css +1 -0
  738. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/results/line_numbers.css +49 -0
  739. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/results/mixins.css +95 -0
  740. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/results/multiline.css +24 -0
  741. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/results/nested.css +22 -0
  742. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/results/options.css +1 -0
  743. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/results/parent_ref.css +13 -0
  744. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/results/script.css +16 -0
  745. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/results/scss_import.css +31 -0
  746. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/results/scss_importee.css +2 -0
  747. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/results/subdir/nested_subdir/nested_subdir.css +1 -0
  748. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/results/subdir/subdir.css +3 -0
  749. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/results/units.css +11 -0
  750. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/results/warn.css +0 -0
  751. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/results/warn_imported.css +0 -0
  752. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/script_conversion_test.rb +357 -0
  753. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/script_test.rb +1422 -0
  754. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/scss/css_test.rb +1281 -0
  755. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/scss/rx_test.rb +160 -0
  756. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/scss/scss_test.rb +4157 -0
  757. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/scss/test_helper.rb +37 -0
  758. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/source_map_test.rb +1055 -0
  759. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/superselector_test.rb +210 -0
  760. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/_cached_import_option_partial.scss +1 -0
  761. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/_double_import_loop2.sass +1 -0
  762. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/_filename_fn_import.scss +11 -0
  763. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/_imported_charset_ibm866.sass +4 -0
  764. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/_imported_charset_utf8.sass +4 -0
  765. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/_imported_content.sass +3 -0
  766. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/_partial.sass +2 -0
  767. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/_same_name_different_partiality.scss +1 -0
  768. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/alt.sass +16 -0
  769. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/basic.sass +23 -0
  770. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/bork1.sass +2 -0
  771. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/bork2.sass +2 -0
  772. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/bork3.sass +2 -0
  773. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/bork4.sass +2 -0
  774. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/bork5.sass +3 -0
  775. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/cached_import_option.scss +3 -0
  776. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/compact.sass +17 -0
  777. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/complex.sass +305 -0
  778. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/compressed.sass +15 -0
  779. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/double_import_loop1.sass +1 -0
  780. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/expanded.sass +17 -0
  781. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/filename_fn.scss +18 -0
  782. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/if.sass +11 -0
  783. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/import.sass +12 -0
  784. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/import_charset.sass +9 -0
  785. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/import_charset_1_8.sass +6 -0
  786. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/import_charset_ibm866.sass +11 -0
  787. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/import_content.sass +4 -0
  788. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/importee.less +2 -0
  789. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/importee.sass +19 -0
  790. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/line_numbers.sass +13 -0
  791. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/mixin_bork.sass +5 -0
  792. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/mixins.sass +76 -0
  793. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/multiline.sass +20 -0
  794. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/nested.sass +25 -0
  795. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/nested_bork1.sass +2 -0
  796. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/nested_bork2.sass +2 -0
  797. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/nested_bork3.sass +2 -0
  798. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/nested_bork4.sass +2 -0
  799. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/nested_import.sass +2 -0
  800. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/nested_mixin_bork.sass +6 -0
  801. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/options.sass +2 -0
  802. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/parent_ref.sass +25 -0
  803. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/same_name_different_ext.sass +2 -0
  804. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/same_name_different_ext.scss +1 -0
  805. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/same_name_different_partiality.scss +1 -0
  806. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/script.sass +101 -0
  807. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/scss_import.scss +12 -0
  808. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/scss_importee.scss +1 -0
  809. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/single_import_loop.sass +1 -0
  810. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/subdir/import_up1.scss +1 -0
  811. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/subdir/import_up2.scss +1 -0
  812. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/subdir/nested_subdir/_nested_partial.sass +2 -0
  813. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/subdir/nested_subdir/nested_subdir.sass +3 -0
  814. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/subdir/subdir.sass +6 -0
  815. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/units.sass +11 -0
  816. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/warn.sass +3 -0
  817. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/templates/warn_imported.sass +4 -0
  818. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/test_helper.rb +8 -0
  819. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/util/multibyte_string_scanner_test.rb +147 -0
  820. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/util/normalized_map_test.rb +51 -0
  821. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/util/subset_map_test.rb +91 -0
  822. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/util_test.rb +438 -0
  823. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/sass/value_helpers_test.rb +179 -0
  824. data/bundle/ruby/2.3.0/gems/sass-3.4.22/test/test_helper.rb +110 -0
  825. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/CHANGELOG.md +1 -0
  826. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/CONTRIBUTING.md +38 -0
  827. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/Gemfile +20 -0
  828. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/Guardfile +8 -0
  829. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/LICENSE +20 -0
  830. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/README.md +349 -0
  831. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/Rakefile +5 -0
  832. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/Vagrantfile +96 -0
  833. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/lib/listen.rb +54 -0
  834. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/lib/listen/adapter.rb +327 -0
  835. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/lib/listen/adapters/bsd.rb +75 -0
  836. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/lib/listen/adapters/darwin.rb +48 -0
  837. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/lib/listen/adapters/linux.rb +81 -0
  838. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/lib/listen/adapters/polling.rb +58 -0
  839. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/lib/listen/adapters/windows.rb +91 -0
  840. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/lib/listen/directory_record.rb +406 -0
  841. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/lib/listen/listener.rb +323 -0
  842. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/lib/listen/turnstile.rb +32 -0
  843. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/lib/listen/version.rb +3 -0
  844. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/listen.gemspec +28 -0
  845. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/spec/listen/adapter_spec.rb +149 -0
  846. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/spec/listen/adapters/bsd_spec.rb +36 -0
  847. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/spec/listen/adapters/darwin_spec.rb +37 -0
  848. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/spec/listen/adapters/linux_spec.rb +47 -0
  849. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/spec/listen/adapters/polling_spec.rb +68 -0
  850. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/spec/listen/adapters/windows_spec.rb +30 -0
  851. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/spec/listen/directory_record_spec.rb +1250 -0
  852. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/spec/listen/listener_spec.rb +258 -0
  853. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/spec/listen/turnstile_spec.rb +56 -0
  854. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/spec/listen_spec.rb +67 -0
  855. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/spec/spec_helper.rb +25 -0
  856. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/spec/support/adapter_helper.rb +666 -0
  857. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/spec/support/directory_record_helper.rb +57 -0
  858. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/spec/support/fixtures_helper.rb +29 -0
  859. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/spec/support/listeners_helper.rb +179 -0
  860. data/bundle/ruby/2.3.0/gems/sass-3.4.22/vendor/listen/spec/support/platform_helper.rb +15 -0
  861. data/bundle/ruby/2.3.0/gems/sexp_processor-4.7.0/History.txt +278 -0
  862. data/bundle/ruby/2.3.0/gems/sexp_processor-4.7.0/Manifest.txt +13 -0
  863. data/bundle/ruby/2.3.0/gems/sexp_processor-4.7.0/README.txt +64 -0
  864. data/bundle/ruby/2.3.0/gems/sexp_processor-4.7.0/Rakefile +12 -0
  865. data/bundle/ruby/2.3.0/gems/sexp_processor-4.7.0/lib/composite_sexp_processor.rb +49 -0
  866. data/bundle/ruby/2.3.0/gems/sexp_processor-4.7.0/lib/pt_testcase.rb +3125 -0
  867. data/bundle/ruby/2.3.0/gems/sexp_processor-4.7.0/lib/sexp.rb +338 -0
  868. data/bundle/ruby/2.3.0/gems/sexp_processor-4.7.0/lib/sexp_processor.rb +695 -0
  869. data/bundle/ruby/2.3.0/gems/sexp_processor-4.7.0/lib/unique.rb +15 -0
  870. data/bundle/ruby/2.3.0/gems/sexp_processor-4.7.0/test/test_composite_sexp_processor.rb +69 -0
  871. data/bundle/ruby/2.3.0/gems/sexp_processor-4.7.0/test/test_environment.rb +94 -0
  872. data/bundle/ruby/2.3.0/gems/sexp_processor-4.7.0/test/test_sexp.rb +356 -0
  873. data/bundle/ruby/2.3.0/gems/sexp_processor-4.7.0/test/test_sexp_processor.rb +373 -0
  874. data/bundle/ruby/2.3.0/gems/slim-3.0.6/CHANGES +426 -0
  875. data/bundle/ruby/2.3.0/gems/slim-3.0.6/Gemfile +69 -0
  876. data/bundle/ruby/2.3.0/gems/slim-3.0.6/LICENSE +21 -0
  877. data/bundle/ruby/2.3.0/gems/slim-3.0.6/README.jp.md +1205 -0
  878. data/bundle/ruby/2.3.0/gems/slim-3.0.6/README.md +1205 -0
  879. data/bundle/ruby/2.3.0/gems/slim-3.0.6/Rakefile +100 -0
  880. data/bundle/ruby/2.3.0/gems/slim-3.0.6/benchmarks/context.rb +11 -0
  881. data/bundle/ruby/2.3.0/gems/slim-3.0.6/benchmarks/profile-parser.rb +10 -0
  882. data/bundle/ruby/2.3.0/gems/slim-3.0.6/benchmarks/profile-render.rb +12 -0
  883. data/bundle/ruby/2.3.0/gems/slim-3.0.6/benchmarks/run-benchmarks.rb +119 -0
  884. data/bundle/ruby/2.3.0/gems/slim-3.0.6/benchmarks/run-diffbench.rb +21 -0
  885. data/bundle/ruby/2.3.0/gems/slim-3.0.6/benchmarks/view.erb +23 -0
  886. data/bundle/ruby/2.3.0/gems/slim-3.0.6/benchmarks/view.haml +18 -0
  887. data/bundle/ruby/2.3.0/gems/slim-3.0.6/benchmarks/view.slim +17 -0
  888. data/bundle/ruby/2.3.0/gems/slim-3.0.6/bin/slimrb +6 -0
  889. data/bundle/ruby/2.3.0/gems/slim-3.0.6/doc/include.md +20 -0
  890. data/bundle/ruby/2.3.0/gems/slim-3.0.6/doc/jp/include.md +20 -0
  891. data/bundle/ruby/2.3.0/gems/slim-3.0.6/doc/jp/logic_less.md +137 -0
  892. data/bundle/ruby/2.3.0/gems/slim-3.0.6/doc/jp/smart.md +102 -0
  893. data/bundle/ruby/2.3.0/gems/slim-3.0.6/doc/jp/translator.md +28 -0
  894. data/bundle/ruby/2.3.0/gems/slim-3.0.6/doc/logic_less.md +137 -0
  895. data/bundle/ruby/2.3.0/gems/slim-3.0.6/doc/smart.md +103 -0
  896. data/bundle/ruby/2.3.0/gems/slim-3.0.6/doc/translator.md +28 -0
  897. data/bundle/ruby/2.3.0/gems/slim-3.0.6/lib/slim.rb +14 -0
  898. data/bundle/ruby/2.3.0/gems/slim-3.0.6/lib/slim/code_attributes.rb +67 -0
  899. data/bundle/ruby/2.3.0/gems/slim-3.0.6/lib/slim/command.rb +128 -0
  900. data/bundle/ruby/2.3.0/gems/slim-3.0.6/lib/slim/controls.rb +60 -0
  901. data/bundle/ruby/2.3.0/gems/slim-3.0.6/lib/slim/do_inserter.rb +33 -0
  902. data/bundle/ruby/2.3.0/gems/slim-3.0.6/lib/slim/embedded.rb +273 -0
  903. data/bundle/ruby/2.3.0/gems/slim-3.0.6/lib/slim/end_inserter.rb +62 -0
  904. data/bundle/ruby/2.3.0/gems/slim-3.0.6/lib/slim/engine.rb +41 -0
  905. data/bundle/ruby/2.3.0/gems/slim-3.0.6/lib/slim/erb_converter.rb +14 -0
  906. data/bundle/ruby/2.3.0/gems/slim-3.0.6/lib/slim/filter.rb +30 -0
  907. data/bundle/ruby/2.3.0/gems/slim-3.0.6/lib/slim/grammar.rb +20 -0
  908. data/bundle/ruby/2.3.0/gems/slim-3.0.6/lib/slim/include.rb +57 -0
  909. data/bundle/ruby/2.3.0/gems/slim-3.0.6/lib/slim/interpolation.rb +35 -0
  910. data/bundle/ruby/2.3.0/gems/slim-3.0.6/lib/slim/logic_less.rb +5 -0
  911. data/bundle/ruby/2.3.0/gems/slim-3.0.6/lib/slim/logic_less/context.rb +127 -0
  912. data/bundle/ruby/2.3.0/gems/slim-3.0.6/lib/slim/logic_less/filter.rb +80 -0
  913. data/bundle/ruby/2.3.0/gems/slim-3.0.6/lib/slim/parser.rb +527 -0
  914. data/bundle/ruby/2.3.0/gems/slim-3.0.6/lib/slim/smart.rb +8 -0
  915. data/bundle/ruby/2.3.0/gems/slim-3.0.6/lib/slim/smart/escaper.rb +42 -0
  916. data/bundle/ruby/2.3.0/gems/slim-3.0.6/lib/slim/smart/filter.rb +96 -0
  917. data/bundle/ruby/2.3.0/gems/slim-3.0.6/lib/slim/smart/parser.rb +36 -0
  918. data/bundle/ruby/2.3.0/gems/slim-3.0.6/lib/slim/splat/builder.rb +101 -0
  919. data/bundle/ruby/2.3.0/gems/slim-3.0.6/lib/slim/splat/filter.rb +91 -0
  920. data/bundle/ruby/2.3.0/gems/slim-3.0.6/lib/slim/template.rb +19 -0
  921. data/bundle/ruby/2.3.0/gems/slim-3.0.6/lib/slim/translator.rb +118 -0
  922. data/bundle/ruby/2.3.0/gems/slim-3.0.6/lib/slim/version.rb +5 -0
  923. data/bundle/ruby/2.3.0/gems/slim-3.0.6/slim.gemspec +24 -0
  924. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/core/helper.rb +211 -0
  925. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/core/test_code_blocks.rb +183 -0
  926. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/core/test_code_escaping.rb +150 -0
  927. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/core/test_code_evaluation.rb +180 -0
  928. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/core/test_code_output.rb +168 -0
  929. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/core/test_code_structure.rb +168 -0
  930. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/core/test_commands.rb +223 -0
  931. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/core/test_embedded_engines.rb +242 -0
  932. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/core/test_encoding.rb +28 -0
  933. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/core/test_erb_converter.rb +67 -0
  934. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/core/test_html_attributes.rb +268 -0
  935. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/core/test_html_escaping.rb +65 -0
  936. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/core/test_html_structure.rb +537 -0
  937. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/core/test_parser_errors.rb +148 -0
  938. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/core/test_pretty.rb +166 -0
  939. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/core/test_ruby_errors.rb +207 -0
  940. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/core/test_slim_template.rb +77 -0
  941. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/core/test_tabs.rb +169 -0
  942. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/core/test_text_interpolation.rb +79 -0
  943. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/core/test_thread_options.rb +18 -0
  944. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/core/test_unicode.rb +16 -0
  945. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/include/files/recursive.slim +1 -0
  946. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/include/files/slimfile.slim +3 -0
  947. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/include/files/subdir/test.slim +1 -0
  948. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/include/files/textfile +1 -0
  949. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/include/test_include.rb +24 -0
  950. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/literate/TESTS.md +1290 -0
  951. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/literate/helper.rb +15 -0
  952. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/literate/run.rb +92 -0
  953. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/logic_less/test_logic_less.rb +295 -0
  954. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/Rakefile +7 -0
  955. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/app/controllers/application_controller.rb +2 -0
  956. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/app/controllers/entries_controller.rb +5 -0
  957. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/app/controllers/slim_controller.rb +40 -0
  958. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/app/helpers/application_helper.rb +5 -0
  959. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/app/models/entry.rb +16 -0
  960. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/app/views/entries/edit.html.slim +3 -0
  961. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/app/views/layouts/application.html.slim +10 -0
  962. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/app/views/slim/_partial.html.slim +1 -0
  963. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/app/views/slim/content_for.html.slim +7 -0
  964. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/app/views/slim/erb.html.erb +1 -0
  965. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/app/views/slim/form_for.html.slim +2 -0
  966. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/app/views/slim/helper.html.slim +4 -0
  967. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/app/views/slim/integers.html.slim +1 -0
  968. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/app/views/slim/no_layout.html.slim +1 -0
  969. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/app/views/slim/normal.html.slim +1 -0
  970. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/app/views/slim/partial.html.slim +2 -0
  971. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/app/views/slim/splat.html.slim +2 -0
  972. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/app/views/slim/thread_options.html.slim +1 -0
  973. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/app/views/slim/variables.html.slim +1 -0
  974. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/app/views/slim/xml.slim +1 -0
  975. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/config.ru +4 -0
  976. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/config/application.rb +44 -0
  977. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/config/boot.rb +10 -0
  978. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/config/environment.rb +5 -0
  979. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/config/environments/test.rb +34 -0
  980. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/config/initializers/backtrace_silencers.rb +7 -0
  981. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/config/initializers/inflections.rb +10 -0
  982. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/config/initializers/mime_types.rb +5 -0
  983. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/config/initializers/secret_token.rb +7 -0
  984. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/config/initializers/session_store.rb +8 -0
  985. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/config/locales/en.yml +5 -0
  986. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/config/routes.rb +60 -0
  987. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/script/rails +6 -0
  988. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/test/helper.rb +31 -0
  989. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/rails/test/test_slim.rb +90 -0
  990. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/smart/test_smart_text.rb +296 -0
  991. data/bundle/ruby/2.3.0/gems/slim-3.0.6/test/translator/test_translator.rb +76 -0
  992. data/bundle/ruby/2.3.0/gems/temple-0.7.6/CHANGES +235 -0
  993. data/bundle/ruby/2.3.0/gems/temple-0.7.6/EXPRESSIONS.md +261 -0
  994. data/bundle/ruby/2.3.0/gems/temple-0.7.6/Gemfile +3 -0
  995. data/bundle/ruby/2.3.0/gems/temple-0.7.6/LICENSE +20 -0
  996. data/bundle/ruby/2.3.0/gems/temple-0.7.6/README.md +267 -0
  997. data/bundle/ruby/2.3.0/gems/temple-0.7.6/Rakefile +25 -0
  998. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple.rb +64 -0
  999. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/engine.rb +67 -0
  1000. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/erb/engine.rb +15 -0
  1001. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/erb/parser.rb +40 -0
  1002. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/erb/template.rb +11 -0
  1003. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/erb/trimming.rb +23 -0
  1004. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/exceptions.rb +13 -0
  1005. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/filter.rb +9 -0
  1006. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/filters/code_merger.rb +30 -0
  1007. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/filters/control_flow.rb +42 -0
  1008. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/filters/dynamic_inliner.rb +71 -0
  1009. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/filters/encoding.rb +24 -0
  1010. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/filters/eraser.rb +22 -0
  1011. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/filters/escapable.rb +40 -0
  1012. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/filters/multi_flattener.rb +25 -0
  1013. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/filters/remove_bom.rb +13 -0
  1014. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/filters/static_merger.rb +37 -0
  1015. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/filters/validator.rb +15 -0
  1016. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/generator.rb +88 -0
  1017. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/generators/array.rb +21 -0
  1018. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/generators/array_buffer.rb +28 -0
  1019. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/generators/erb.rb +32 -0
  1020. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/generators/rails_output_buffer.rb +35 -0
  1021. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/generators/string_buffer.rb +25 -0
  1022. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/grammar.rb +57 -0
  1023. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/html/attribute_merger.rb +47 -0
  1024. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/html/attribute_remover.rb +35 -0
  1025. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/html/attribute_sorter.rb +21 -0
  1026. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/html/dispatcher.rb +31 -0
  1027. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/html/fast.rb +130 -0
  1028. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/html/filter.rb +21 -0
  1029. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/html/pretty.rb +103 -0
  1030. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/html/safe.rb +23 -0
  1031. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/map.rb +105 -0
  1032. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/mixins/dispatcher.rb +158 -0
  1033. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/mixins/engine_dsl.rb +145 -0
  1034. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/mixins/grammar_dsl.rb +170 -0
  1035. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/mixins/options.rb +87 -0
  1036. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/mixins/template.rb +28 -0
  1037. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/parser.rb +8 -0
  1038. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/templates.rb +11 -0
  1039. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/templates/rails.rb +26 -0
  1040. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/templates/tilt.rb +46 -0
  1041. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/utils.rb +90 -0
  1042. data/bundle/ruby/2.3.0/gems/temple-0.7.6/lib/temple/version.rb +3 -0
  1043. data/bundle/ruby/2.3.0/gems/temple-0.7.6/temple.gemspec +29 -0
  1044. data/bundle/ruby/2.3.0/gems/temple-0.7.6/test/filters/test_code_merger.rb +38 -0
  1045. data/bundle/ruby/2.3.0/gems/temple-0.7.6/test/filters/test_control_flow.rb +90 -0
  1046. data/bundle/ruby/2.3.0/gems/temple-0.7.6/test/filters/test_dynamic_inliner.rb +95 -0
  1047. data/bundle/ruby/2.3.0/gems/temple-0.7.6/test/filters/test_eraser.rb +55 -0
  1048. data/bundle/ruby/2.3.0/gems/temple-0.7.6/test/filters/test_escapable.rb +49 -0
  1049. data/bundle/ruby/2.3.0/gems/temple-0.7.6/test/filters/test_multi_flattener.rb +33 -0
  1050. data/bundle/ruby/2.3.0/gems/temple-0.7.6/test/filters/test_static_merger.rb +41 -0
  1051. data/bundle/ruby/2.3.0/gems/temple-0.7.6/test/helper.rb +30 -0
  1052. data/bundle/ruby/2.3.0/gems/temple-0.7.6/test/html/test_attribute_merger.rb +76 -0
  1053. data/bundle/ruby/2.3.0/gems/temple-0.7.6/test/html/test_attribute_remover.rb +43 -0
  1054. data/bundle/ruby/2.3.0/gems/temple-0.7.6/test/html/test_attribute_sorter.rb +48 -0
  1055. data/bundle/ruby/2.3.0/gems/temple-0.7.6/test/html/test_fast.rb +97 -0
  1056. data/bundle/ruby/2.3.0/gems/temple-0.7.6/test/html/test_pretty.rb +55 -0
  1057. data/bundle/ruby/2.3.0/gems/temple-0.7.6/test/mixins/test_dispatcher.rb +70 -0
  1058. data/bundle/ruby/2.3.0/gems/temple-0.7.6/test/mixins/test_grammar_dsl.rb +86 -0
  1059. data/bundle/ruby/2.3.0/gems/temple-0.7.6/test/test_engine.rb +189 -0
  1060. data/bundle/ruby/2.3.0/gems/temple-0.7.6/test/test_erb.rb +61 -0
  1061. data/bundle/ruby/2.3.0/gems/temple-0.7.6/test/test_filter.rb +29 -0
  1062. data/bundle/ruby/2.3.0/gems/temple-0.7.6/test/test_generator.rb +158 -0
  1063. data/bundle/ruby/2.3.0/gems/temple-0.7.6/test/test_grammar.rb +47 -0
  1064. data/bundle/ruby/2.3.0/gems/temple-0.7.6/test/test_map.rb +39 -0
  1065. data/bundle/ruby/2.3.0/gems/temple-0.7.6/test/test_utils.rb +39 -0
  1066. data/bundle/ruby/2.3.0/gems/terminal-table-1.5.2/Gemfile +4 -0
  1067. data/bundle/ruby/2.3.0/gems/terminal-table-1.5.2/History.rdoc +48 -0
  1068. data/bundle/ruby/2.3.0/gems/terminal-table-1.5.2/Manifest +27 -0
  1069. data/bundle/ruby/2.3.0/gems/terminal-table-1.5.2/README.rdoc +240 -0
  1070. data/bundle/ruby/2.3.0/gems/terminal-table-1.5.2/Rakefile +9 -0
  1071. data/bundle/ruby/2.3.0/gems/terminal-table-1.5.2/Todo.rdoc +14 -0
  1072. data/bundle/ruby/2.3.0/gems/terminal-table-1.5.2/examples/examples.rb +83 -0
  1073. data/bundle/ruby/2.3.0/gems/terminal-table-1.5.2/lib/terminal-table.rb +26 -0
  1074. data/bundle/ruby/2.3.0/gems/terminal-table-1.5.2/lib/terminal-table/cell.rb +92 -0
  1075. data/bundle/ruby/2.3.0/gems/terminal-table-1.5.2/lib/terminal-table/import.rb +3 -0
  1076. data/bundle/ruby/2.3.0/gems/terminal-table-1.5.2/lib/terminal-table/row.rb +48 -0
  1077. data/bundle/ruby/2.3.0/gems/terminal-table-1.5.2/lib/terminal-table/separator.rb +14 -0
  1078. data/bundle/ruby/2.3.0/gems/terminal-table-1.5.2/lib/terminal-table/style.rb +62 -0
  1079. data/bundle/ruby/2.3.0/gems/terminal-table-1.5.2/lib/terminal-table/table.rb +226 -0
  1080. data/bundle/ruby/2.3.0/gems/terminal-table-1.5.2/lib/terminal-table/table_helper.rb +9 -0
  1081. data/bundle/ruby/2.3.0/gems/terminal-table-1.5.2/lib/terminal-table/version.rb +5 -0
  1082. data/bundle/ruby/2.3.0/gems/terminal-table-1.5.2/terminal-table.gemspec +24 -0
  1083. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/CHANGELOG.md +84 -0
  1084. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/COPYING +18 -0
  1085. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/Gemfile +64 -0
  1086. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/HACKING +16 -0
  1087. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/README.md +226 -0
  1088. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/Rakefile +105 -0
  1089. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/bin/tilt +122 -0
  1090. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/docs/TEMPLATES.md +524 -0
  1091. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/docs/common.css +14 -0
  1092. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt.rb +159 -0
  1093. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/asciidoc.rb +27 -0
  1094. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/babel.rb +15 -0
  1095. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/bluecloth.rb +24 -0
  1096. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/builder.rb +33 -0
  1097. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/coffee.rb +58 -0
  1098. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/creole.rb +25 -0
  1099. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/csv.rb +65 -0
  1100. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/erb.rb +57 -0
  1101. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/erubis.rb +43 -0
  1102. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/etanni.rb +27 -0
  1103. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/haml.rb +58 -0
  1104. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/kramdown.rb +25 -0
  1105. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/less.rb +30 -0
  1106. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/liquid.rb +38 -0
  1107. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/mapping.rb +265 -0
  1108. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/markaby.rb +45 -0
  1109. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/maruku.rb +22 -0
  1110. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/nokogiri.rb +36 -0
  1111. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/plain.rb +16 -0
  1112. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/prawn.rb +43 -0
  1113. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/radius.rb +48 -0
  1114. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/rdiscount.rb +39 -0
  1115. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/rdoc.rb +40 -0
  1116. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/redcarpet.rb +83 -0
  1117. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/redcloth.rb +23 -0
  1118. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/sass.rb +41 -0
  1119. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/string.rb +21 -0
  1120. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/template.rb +295 -0
  1121. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/wikicloth.rb +22 -0
  1122. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/lib/tilt/yajl.rb +87 -0
  1123. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/man/index.txt +2 -0
  1124. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/man/tilt.1.ronn +59 -0
  1125. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/markaby/locals.mab +1 -0
  1126. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/markaby/markaby.mab +1 -0
  1127. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/markaby/markaby_other_static.mab +1 -0
  1128. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/markaby/render_twice.mab +1 -0
  1129. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/markaby/scope.mab +1 -0
  1130. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/markaby/yielding.mab +2 -0
  1131. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/test_helper.rb +64 -0
  1132. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_asciidoctor_test.rb +50 -0
  1133. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_babeltemplate.rb +33 -0
  1134. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_blueclothtemplate_test.rb +33 -0
  1135. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_buildertemplate_test.rb +59 -0
  1136. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_cache_test.rb +43 -0
  1137. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_coffeescripttemplate_test.rb +141 -0
  1138. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_compilesite_test.rb +51 -0
  1139. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_creoletemplate_test.rb +24 -0
  1140. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_csv_test.rb +77 -0
  1141. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_erbtemplate_test.rb +239 -0
  1142. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_erubistemplate_test.rb +151 -0
  1143. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_etannitemplate_test.rb +174 -0
  1144. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_hamltemplate_test.rb +166 -0
  1145. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_kramdown_test.rb +20 -0
  1146. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_lesstemplate_test.less +1 -0
  1147. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_lesstemplate_test.rb +42 -0
  1148. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_liquidtemplate_test.rb +78 -0
  1149. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_mapping_test.rb +229 -0
  1150. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_markaby_test.rb +88 -0
  1151. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_markdown_test.rb +177 -0
  1152. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_marukutemplate_test.rb +36 -0
  1153. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_metadata_test.rb +42 -0
  1154. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_nokogiritemplate_test.rb +87 -0
  1155. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_prawntemplate.prawn +1 -0
  1156. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_prawntemplate_test.rb +75 -0
  1157. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_radiustemplate_test.rb +75 -0
  1158. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_rdiscounttemplate_test.rb +43 -0
  1159. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_rdoctemplate_test.rb +29 -0
  1160. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_redcarpettemplate_test.rb +54 -0
  1161. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_redclothtemplate_test.rb +36 -0
  1162. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_sasstemplate_test.rb +41 -0
  1163. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_stringtemplate_test.rb +171 -0
  1164. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_template_test.rb +308 -0
  1165. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_test.rb +60 -0
  1166. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_wikiclothtemplate_test.rb +32 -0
  1167. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/test/tilt_yajltemplate_test.rb +101 -0
  1168. data/bundle/ruby/2.3.0/gems/tilt-2.0.2/tilt.gemspec +114 -0
  1169. data/lib/brakeman.rb +9 -1
  1170. data/lib/brakeman/call_index.rb +1 -1
  1171. data/lib/brakeman/checks/check_content_tag.rb +1 -1
  1172. data/lib/brakeman/checks/check_cross_site_scripting.rb +1 -1
  1173. data/lib/brakeman/checks/check_execute.rb +4 -0
  1174. data/lib/brakeman/checks/check_forgery_setting.rb +3 -2
  1175. data/lib/brakeman/checks/check_link_to.rb +1 -1
  1176. data/lib/brakeman/checks/check_link_to_href.rb +2 -2
  1177. data/lib/brakeman/checks/check_mass_assignment.rb +1 -1
  1178. data/lib/brakeman/checks/check_redirect.rb +6 -0
  1179. data/lib/brakeman/checks/check_secrets.rb +40 -0
  1180. data/lib/brakeman/checks/check_sql.rb +1 -1
  1181. data/lib/brakeman/processor.rb +6 -6
  1182. data/lib/brakeman/processors/alias_processor.rb +29 -3
  1183. data/lib/brakeman/processors/base_processor.rb +35 -4
  1184. data/lib/brakeman/processors/controller_alias_processor.rb +4 -4
  1185. data/lib/brakeman/processors/haml_template_processor.rb +1 -1
  1186. data/lib/brakeman/processors/lib/basic_processor.rb +18 -0
  1187. data/lib/brakeman/processors/lib/rails2_config_processor.rb +3 -2
  1188. data/lib/brakeman/processors/lib/rails2_route_processor.rb +2 -1
  1189. data/lib/brakeman/processors/lib/rails3_config_processor.rb +3 -2
  1190. data/lib/brakeman/processors/lib/rails3_route_processor.rb +2 -1
  1191. data/lib/brakeman/processors/template_alias_processor.rb +4 -4
  1192. data/lib/brakeman/processors/template_processor.rb +1 -0
  1193. data/lib/brakeman/report/report_codeclimate.rb +2 -1
  1194. data/lib/brakeman/scanner.rb +1 -1
  1195. data/lib/brakeman/tracker.rb +11 -1
  1196. data/lib/brakeman/tracker/constants.rb +101 -0
  1197. data/lib/brakeman/util.rb +4 -0
  1198. data/lib/brakeman/version.rb +1 -1
  1199. data/lib/brakeman/warning_codes.rb +1 -0
  1200. data/lib/ruby_parser/bm_sexp.rb +6 -0
  1201. metadata +1171 -162
@@ -0,0 +1,2723 @@
1
+ # encoding: US-ASCII
2
+
3
+ require 'rubygems'
4
+ require 'minitest/autorun'
5
+ require 'ruby_lexer'
6
+ require 'ruby18_parser'
7
+ require 'ruby20_parser'
8
+
9
+ class TestRubyLexer < Minitest::Test
10
+ attr_accessor :processor, :lex, :parser_class, :lex_state
11
+
12
+ alias :lexer :lex # lets me copy/paste code from parser
13
+ alias :lexer= :lex=
14
+
15
+ def setup
16
+ self.lex_state = :expr_beg
17
+ setup_lexer_class Ruby20Parser
18
+ end
19
+
20
+ def setup_lexer input, exp_sexp = nil
21
+ setup_new_parser
22
+ lex.ss = RPStringScanner.new(input)
23
+ lex.lex_state = self.lex_state
24
+ end
25
+
26
+ def setup_new_parser
27
+ self.processor = parser_class.new
28
+ self.lex = processor.lexer
29
+ end
30
+
31
+ def setup_lexer_class parser_class
32
+ self.parser_class = parser_class
33
+ setup_new_parser
34
+ setup_lexer "blah blah"
35
+ end
36
+
37
+ def assert_lex input, exp_sexp, *args, &b
38
+ setup_lexer input
39
+ assert_parse input, exp_sexp if exp_sexp
40
+
41
+ b.call if b
42
+
43
+ args.each_slice(5) do |token, value, state, paren, brace|
44
+ assert_next_lexeme token, value, state, paren, brace
45
+ end
46
+
47
+ refute_lexeme
48
+ end
49
+
50
+ def assert_lex3 input, exp_sexp, *args, &block
51
+ args = args.each_slice(3).map { |a, b, c| [a, b, c, nil, nil] }.flatten
52
+
53
+ assert_lex(input, exp_sexp, *args, &block)
54
+ end
55
+
56
+ def refute_lex input, *args # TODO: re-sort
57
+ args = args.each_slice(2).map { |a, b| [a, b, nil, nil, nil] }.flatten
58
+
59
+ assert_raises RubyParser::SyntaxError do
60
+ assert_lex(input, nil, *args)
61
+ end
62
+ end
63
+
64
+ def assert_lex_fname name, type, end_state = :expr_arg # TODO: swap name/type
65
+ assert_lex3("def #{name} ",
66
+ nil,
67
+
68
+ :kDEF, "def", :expr_fname,
69
+ type, name, end_state)
70
+ end
71
+
72
+ def assert_next_lexeme token=nil, value=nil, state=nil, paren=nil, brace=nil
73
+ adv = @lex.next_token
74
+
75
+ assert adv, "no more tokens"
76
+
77
+ act_token, act_value = adv
78
+
79
+ msg = message {
80
+ act = [act_token, act_value, @lex.lex_state,
81
+ @lex.paren_nest, @lex.brace_nest]
82
+ exp = [token, value, state, paren, brace]
83
+ "#{exp.inspect} vs #{act.inspect}"
84
+ }
85
+
86
+ act_value = act_value.first if Array === act_value
87
+
88
+ assert_equal token, act_token, msg
89
+ case value
90
+ when Float then
91
+ assert_in_epsilon value, act_value, 0.001, msg
92
+ else
93
+ assert_equal value, act_value, msg
94
+ end
95
+ assert_equal state, @lex.lex_state, msg if state
96
+ assert_equal paren, @lex.paren_nest, msg if paren
97
+ assert_equal brace, @lex.brace_nest, msg if brace
98
+ end
99
+
100
+ def assert_parse input, exp_sexp
101
+ assert_equal exp_sexp, processor.class.new.parse(input)
102
+ end
103
+
104
+ def assert_read_escape expected, input
105
+ @lex.ss.string = input
106
+ assert_equal expected, @lex.read_escape, input
107
+ end
108
+
109
+ def assert_read_escape_bad input # TODO: rename refute_read_escape
110
+ @lex.ss.string = input
111
+ assert_raises RubyParser::SyntaxError do
112
+ @lex.read_escape
113
+ end
114
+ end
115
+
116
+ def refute_lexeme
117
+ x = y = @lex.next_token
118
+
119
+ refute x, "not empty: #{y.inspect}"
120
+ end
121
+
122
+ ## Utility Methods:
123
+
124
+ def emulate_string_interpolation
125
+ lex_strterm = lexer.lex_strterm
126
+ string_nest = lexer.string_nest
127
+ brace_nest = lexer.brace_nest
128
+
129
+ lexer.string_nest = 0
130
+ lexer.brace_nest = 0
131
+ lexer.cond.push false
132
+ lexer.cmdarg.push false
133
+
134
+ lexer.lex_strterm = nil
135
+ lexer.lex_state = :expr_beg
136
+
137
+ yield
138
+
139
+ lexer.lex_state = :expr_endarg
140
+ assert_next_lexeme :tRCURLY, "}", :expr_endarg, 0
141
+
142
+ lexer.lex_strterm = lex_strterm
143
+ lexer.lex_state = :expr_beg
144
+ lexer.string_nest = string_nest
145
+ lexer.brace_nest = brace_nest
146
+
147
+ lexer.cond.lexpop
148
+ lexer.cmdarg.lexpop
149
+ end
150
+
151
+ ## Tests:
152
+
153
+ def test_next_token
154
+ assert_equal [:tIDENTIFIER, "blah"], @lex.next_token
155
+ assert_equal [:tIDENTIFIER, "blah"], @lex.next_token
156
+ assert_nil @lex.next_token
157
+ end
158
+
159
+ def test_unicode_ident
160
+ s = "@\u1088\u1077\u1093\u1072"
161
+ assert_lex3(s.dup, nil, :tIVAR, s.dup, :expr_end)
162
+ end
163
+
164
+ def test_read_escape
165
+ assert_read_escape "\\", "\\"
166
+ assert_read_escape "\n", "n"
167
+ assert_read_escape "\t", "t"
168
+ assert_read_escape "\r", "r"
169
+ assert_read_escape "\f", "f"
170
+ assert_read_escape "\13", "v"
171
+ assert_read_escape "\0", "0"
172
+ assert_read_escape "\07", "a"
173
+ assert_read_escape "\007", "a"
174
+ assert_read_escape "\033", "e"
175
+ assert_read_escape "\377", "377"
176
+ assert_read_escape "\377", "xff"
177
+ assert_read_escape "\010", "b"
178
+ assert_read_escape " ", "s"
179
+ assert_read_escape "q", "q" # plain vanilla escape
180
+
181
+ assert_read_escape "8", "8" # ugh... mri... WHY?!?
182
+ assert_read_escape "9", "9" # ugh... mri... WHY?!?
183
+
184
+ assert_read_escape "$", "444" # ugh
185
+ end
186
+
187
+ def test_read_escape_c
188
+ assert_read_escape "\030", "C-x"
189
+ assert_read_escape "\030", "cx"
190
+ assert_read_escape "\230", 'C-\M-x'
191
+ assert_read_escape "\230", 'c\M-x'
192
+
193
+ assert_read_escape "\177", "C-?"
194
+ assert_read_escape "\177", "c?"
195
+ end
196
+
197
+ def test_read_escape_errors
198
+ assert_read_escape_bad ""
199
+
200
+ assert_read_escape_bad "M"
201
+ assert_read_escape_bad "M-"
202
+ assert_read_escape_bad "Mx"
203
+
204
+ assert_read_escape_bad "Cx"
205
+ assert_read_escape_bad "C"
206
+ assert_read_escape_bad "C-"
207
+
208
+ assert_read_escape_bad "c"
209
+ end
210
+
211
+ def test_read_escape_m
212
+ assert_read_escape "\370", "M-x"
213
+ assert_read_escape "\230", 'M-\C-x'
214
+ assert_read_escape "\230", 'M-\cx'
215
+ end
216
+
217
+ def test_yylex_ambiguous_uminus
218
+ assert_lex3("m -3",
219
+ nil,
220
+ :tIDENTIFIER, "m", :expr_cmdarg,
221
+ :tUMINUS_NUM, "-", :expr_beg,
222
+ :tINTEGER, 3, :expr_end)
223
+
224
+ # TODO: verify warning
225
+ end
226
+
227
+ def test_yylex_ambiguous_uplus
228
+ assert_lex3("m +3",
229
+ nil,
230
+ :tIDENTIFIER, "m", :expr_cmdarg,
231
+ :tINTEGER, 3, :expr_end)
232
+
233
+ # TODO: verify warning
234
+ end
235
+
236
+ def test_yylex_and
237
+ assert_lex3("&", nil, :tAMPER, "&", :expr_beg)
238
+ end
239
+
240
+ def test_yylex_and2
241
+ assert_lex3("&&", nil, :tANDOP, "&&", :expr_beg)
242
+ end
243
+
244
+ def test_yylex_and2_equals
245
+ assert_lex3("&&=", nil, :tOP_ASGN, "&&", :expr_beg)
246
+ end
247
+
248
+ def test_yylex_and_dot
249
+ setup_lexer_class Ruby23Parser
250
+
251
+ assert_lex3("&.", nil, :tLONELY, "&.", :expr_dot)
252
+ end
253
+
254
+ def test_yylex_and_dot_call
255
+ setup_lexer_class Ruby23Parser
256
+
257
+ assert_lex3("x&.y", nil,
258
+ :tIDENTIFIER, "x", :expr_cmdarg,
259
+ :tLONELY, "&.", :expr_dot,
260
+ :tIDENTIFIER, "y")
261
+ end
262
+
263
+ def test_yylex_and_arg
264
+ self.lex_state = :expr_arg
265
+
266
+ assert_lex3(" &y",
267
+ nil,
268
+ :tAMPER, "&", :expr_beg,
269
+ :tIDENTIFIER, "y", :expr_arg)
270
+ end
271
+
272
+ def test_yylex_and_equals
273
+ assert_lex3("&=", nil, :tOP_ASGN, "&", :expr_beg)
274
+ end
275
+
276
+ def test_yylex_and_expr
277
+ self.lex_state = :expr_arg
278
+
279
+ assert_lex3("x & y",
280
+ nil,
281
+ :tIDENTIFIER, "x", :expr_cmdarg,
282
+ :tAMPER2, "&", :expr_beg,
283
+ :tIDENTIFIER, "y", :expr_arg)
284
+ end
285
+
286
+ def test_yylex_and_meth
287
+ assert_lex_fname "&", :tAMPER2
288
+ end
289
+
290
+ def test_yylex_assoc
291
+ assert_lex3("=>", nil, :tASSOC, "=>", :expr_beg)
292
+ end
293
+
294
+ def test_yylex_label__18
295
+ setup_lexer_class Ruby18Parser
296
+
297
+ assert_lex3("{a:",
298
+ nil,
299
+ :tLBRACE, "{", :expr_beg,
300
+ :tIDENTIFIER, "a", :expr_arg,
301
+ :tSYMBEG, ":", :expr_fname)
302
+ end
303
+
304
+ def test_yylex_label_in_params__18
305
+ setup_lexer_class Ruby18Parser
306
+
307
+ assert_lex3("foo(a:",
308
+ nil,
309
+ :tIDENTIFIER, "foo", :expr_cmdarg,
310
+ :tLPAREN2, "(", :expr_beg,
311
+ :tIDENTIFIER, "a", :expr_cmdarg,
312
+ :tSYMBEG, ":", :expr_fname)
313
+ end
314
+
315
+ def test_yylex_label__19
316
+ setup_lexer_class Ruby19Parser
317
+
318
+ assert_lex3("{a:",
319
+ nil,
320
+ :tLBRACE, "{", :expr_beg,
321
+ :tLABEL, "a", :expr_labelarg)
322
+ end
323
+
324
+ def test_yylex_label_in_params__19
325
+ setup_lexer_class Ruby19Parser
326
+
327
+ assert_lex3("foo(a:",
328
+ nil,
329
+ :tIDENTIFIER, "foo", :expr_cmdarg,
330
+ :tLPAREN2, "(", :expr_beg,
331
+ :tLABEL, "a", :expr_labelarg)
332
+ end
333
+
334
+ def test_yylex_paren_string_parens_interpolated
335
+ setup_lexer('%((#{b}#{d}))',
336
+ s(:dstr,
337
+ "(",
338
+ s(:evstr, s(:call, nil, :b)),
339
+ s(:evstr, s(:call, nil, :d)),
340
+ s(:str, ")")))
341
+
342
+ assert_next_lexeme :tSTRING_BEG, "%)", :expr_beg, 0, 0
343
+ assert_next_lexeme :tSTRING_CONTENT, "(", :expr_beg, 0, 0
344
+ assert_next_lexeme :tSTRING_DBEG, nil, :expr_beg, 0, 0
345
+
346
+ emulate_string_interpolation do
347
+ assert_next_lexeme :tIDENTIFIER, "b", :expr_arg, 0, 0
348
+ end
349
+
350
+ assert_next_lexeme :tSTRING_DBEG, nil, :expr_beg, 0, 0
351
+
352
+ emulate_string_interpolation do
353
+ assert_next_lexeme :tIDENTIFIER, "d", :expr_arg, 0, 0
354
+ end
355
+
356
+ assert_next_lexeme :tSTRING_CONTENT, ")", :expr_beg, 0, 0
357
+ assert_next_lexeme :tSTRING_END, ")", :expr_end, 0, 0
358
+
359
+ refute_lexeme
360
+ end
361
+
362
+ def test_yylex_paren_string_interpolated_regexp
363
+ setup_lexer('%( #{(/abcd/)} )',
364
+ s(:dstr, " ", s(:evstr, s(:lit, /abcd/)), s(:str, " ")))
365
+
366
+ assert_next_lexeme :tSTRING_BEG, "%)", :expr_beg, 0, 0
367
+ assert_next_lexeme :tSTRING_CONTENT, " ", :expr_beg, 0, 0
368
+ assert_next_lexeme :tSTRING_DBEG, nil, :expr_beg, 0, 0
369
+
370
+ emulate_string_interpolation do
371
+ assert_next_lexeme :tLPAREN, "(", :expr_beg, 1, 0
372
+ assert_next_lexeme :tREGEXP_BEG, "/", :expr_beg, 1, 0
373
+ assert_next_lexeme :tSTRING_CONTENT, "abcd", :expr_beg, 1, 0
374
+ assert_next_lexeme :tREGEXP_END, "", :expr_end, 1, 0
375
+ assert_next_lexeme :tRPAREN, ")", :expr_endfn, 0, 0
376
+ end
377
+
378
+ assert_next_lexeme :tSTRING_CONTENT, " ", :expr_beg, 0, 0
379
+ assert_next_lexeme :tSTRING_END, ")", :expr_end, 0, 0
380
+
381
+ refute_lexeme
382
+ end
383
+
384
+ def test_yylex_not_at_defn
385
+ assert_lex("def +@; end",
386
+ s(:defn, :+@, s(:args), s(:nil)),
387
+
388
+ :kDEF, "def", :expr_fname, 0, 0,
389
+ :tUPLUS, "+@", :expr_arg, 0, 0,
390
+ :tSEMI, ";", :expr_beg, 0, 0,
391
+ :kEND, "end", :expr_end, 0, 0)
392
+
393
+ assert_lex("def !@; end",
394
+ s(:defn, :"!@", s(:args), s(:nil)),
395
+
396
+ :kDEF, "def", :expr_fname, 0, 0,
397
+ :tUBANG, "!@", :expr_arg, 0, 0,
398
+ :tSEMI, ";", :expr_beg, 0, 0,
399
+ :kEND, "end", :expr_end, 0, 0)
400
+ end
401
+
402
+ def test_yylex_not_at_ivar
403
+ assert_lex("!@ivar",
404
+ s(:call, s(:ivar, :@ivar), :"!"),
405
+
406
+ :tBANG, "!", :expr_beg, 0, 0,
407
+ :tIVAR, "@ivar", :expr_end, 0, 0)
408
+ end
409
+
410
+ def test_yylex_number_times_ident_times_return_number
411
+ assert_lex("1 * b * 3",
412
+ s(:call,
413
+ s(:call, s(:lit, 1), :*, s(:call, nil, :b)),
414
+ :*, s(:lit, 3)),
415
+
416
+ :tINTEGER, 1, :expr_end, 0, 0,
417
+ :tSTAR2, "*", :expr_beg, 0, 0,
418
+ :tIDENTIFIER, "b", :expr_arg, 0, 0,
419
+ :tSTAR2, "*", :expr_beg, 0, 0,
420
+ :tINTEGER, 3, :expr_end, 0, 0)
421
+
422
+ assert_lex("1 * b *\n 3",
423
+ s(:call,
424
+ s(:call, s(:lit, 1), :*, s(:call, nil, :b)),
425
+ :*, s(:lit, 3)),
426
+
427
+ :tINTEGER, 1, :expr_end, 0, 0,
428
+ :tSTAR2, "*", :expr_beg, 0, 0,
429
+ :tIDENTIFIER, "b", :expr_arg, 0, 0,
430
+ :tSTAR2, "*", :expr_beg, 0, 0,
431
+ :tINTEGER, 3, :expr_end, 0, 0)
432
+ end
433
+
434
+ def test_yylex_paren_string_parens_interpolated_regexp
435
+ setup_lexer('%((#{(/abcd/)}))',
436
+ s(:dstr, "(", s(:evstr, s(:lit, /abcd/)), s(:str, ")")))
437
+
438
+ assert_next_lexeme :tSTRING_BEG, "%)", :expr_beg, 0, 0
439
+ assert_next_lexeme :tSTRING_CONTENT, "(", :expr_beg, 0, 0
440
+
441
+ assert_next_lexeme :tSTRING_DBEG, nil, :expr_beg, 0, 0
442
+
443
+ emulate_string_interpolation do
444
+ assert_next_lexeme :tLPAREN, "(", :expr_beg, 1, 0
445
+ assert_next_lexeme :tREGEXP_BEG, "/", :expr_beg, 1, 0
446
+ assert_next_lexeme :tSTRING_CONTENT, "abcd", :expr_beg, 1, 0
447
+ assert_next_lexeme :tREGEXP_END, "", :expr_end, 1, 0
448
+ assert_next_lexeme :tRPAREN, ")", :expr_endfn, 0, 0
449
+ end
450
+
451
+ assert_next_lexeme :tSTRING_CONTENT, ")", :expr_beg, 0, 0
452
+ assert_next_lexeme :tSTRING_END, ")", :expr_end, 0, 0
453
+
454
+ refute_lexeme
455
+ end
456
+
457
+ def test_yylex_method_parens_chevron
458
+ assert_lex("a()<<1",
459
+ s(:call, s(:call, nil, :a), :<<, s(:lit, 1)),
460
+ :tIDENTIFIER, "a", :expr_cmdarg, 0, 0,
461
+ :tLPAREN2, "(", :expr_beg, 1, 0,
462
+ :tRPAREN, ")", :expr_endfn, 0, 0,
463
+ :tLSHFT, "<<" , :expr_beg, 0, 0,
464
+ :tINTEGER, 1, :expr_end, 0, 0)
465
+ end
466
+
467
+ def test_yylex_lambda_args__20
468
+ setup_lexer_class Ruby20Parser
469
+
470
+ assert_lex("-> (a) { }",
471
+ s(:iter, s(:call, nil, :lambda),
472
+ s(:args, :a)),
473
+
474
+ :tLAMBDA, nil, :expr_endfn, 0, 0,
475
+ :tLPAREN2, "(", :expr_beg, 1, 0,
476
+ :tIDENTIFIER, "a", :expr_arg, 1, 0,
477
+ :tRPAREN, ")", :expr_endfn, 0, 0,
478
+ :tLCURLY, "{", :expr_beg, 0, 1,
479
+ :tRCURLY, "}", :expr_endarg, 0, 0)
480
+ end
481
+
482
+ def test_yylex_lambda_args_opt__20
483
+ setup_lexer_class Ruby20Parser
484
+
485
+ assert_lex("-> (a=nil) { }",
486
+ s(:iter, s(:call, nil, :lambda),
487
+ s(:args, s(:lasgn, :a, s(:nil)))),
488
+
489
+ :tLAMBDA, nil, :expr_endfn, 0, 0,
490
+ :tLPAREN2, "(", :expr_beg, 1, 0,
491
+ :tIDENTIFIER, "a", :expr_arg, 1, 0,
492
+ :tEQL, "=", :expr_beg, 1, 0,
493
+ :kNIL, "nil", :expr_end, 1, 0,
494
+ :tRPAREN, ")", :expr_endfn, 0, 0,
495
+ :tLCURLY, "{", :expr_beg, 0, 1,
496
+ :tRCURLY, "}", :expr_endarg, 0, 0)
497
+ end
498
+
499
+ def test_yylex_lambda_hash__20
500
+ setup_lexer_class Ruby20Parser
501
+
502
+ assert_lex("-> (a={}) { }",
503
+ s(:iter, s(:call, nil, :lambda),
504
+ s(:args, s(:lasgn, :a, s(:hash)))),
505
+
506
+ :tLAMBDA, nil, :expr_endfn, 0, 0,
507
+ :tLPAREN2, "(", :expr_beg, 1, 0,
508
+ :tIDENTIFIER, "a", :expr_arg, 1, 0,
509
+ :tEQL, "=", :expr_beg, 1, 0,
510
+ :tLBRACE, "{", :expr_beg, 1, 1,
511
+ :tRCURLY, "}", :expr_endarg, 1, 0,
512
+ :tRPAREN, ")", :expr_endfn, 0, 0,
513
+ :tLCURLY, "{", :expr_beg, 0, 1,
514
+ :tRCURLY, "}", :expr_endarg, 0, 0)
515
+ end
516
+
517
+ def test_yylex_iter_array_curly
518
+ assert_lex("f :a, [:b] { |c, d| }", # yes, this is bad code
519
+ s(:iter,
520
+ s(:call, nil, :f, s(:lit, :a), s(:array, s(:lit, :b))),
521
+ s(:args, :c, :d)),
522
+
523
+ :tIDENTIFIER, "f", :expr_cmdarg, 0, 0,
524
+ :tSYMBOL, "a", :expr_end, 0, 0,
525
+ :tCOMMA, ",", :expr_beg, 0, 0,
526
+ :tLBRACK, "[", :expr_beg, 1, 0,
527
+ :tSYMBOL, "b", :expr_end, 1, 0,
528
+ :tRBRACK, "]", :expr_endarg, 0, 0,
529
+ :tLBRACE_ARG, "{", :expr_beg, 0, 1,
530
+ :tPIPE, "|", :expr_beg, 0, 1,
531
+ :tIDENTIFIER, "c", :expr_arg, 0, 1,
532
+ :tCOMMA, ",", :expr_beg, 0, 1,
533
+ :tIDENTIFIER, "d", :expr_arg, 0, 1,
534
+ :tPIPE, "|", :expr_beg, 0, 1,
535
+ :tRCURLY, "}", :expr_endarg, 0, 0)
536
+ end
537
+
538
+ def test_yylex_const_call_same_name
539
+ assert_lex("X = a { }; b { f :c }",
540
+ s(:block,
541
+ s(:cdecl, :X, s(:iter, s(:call, nil, :a), 0)),
542
+ s(:iter,
543
+ s(:call, nil, :b),
544
+ 0,
545
+ s(:call, nil, :f, s(:lit, :c)))),
546
+
547
+ :tCONSTANT, "X", :expr_cmdarg, 0, 0,
548
+ :tEQL, "=", :expr_beg, 0, 0,
549
+ :tIDENTIFIER, "a", :expr_arg, 0, 0,
550
+ :tLCURLY, "{", :expr_beg, 0, 1,
551
+ :tRCURLY, "}", :expr_endarg, 0, 0,
552
+ :tSEMI, ";", :expr_beg, 0, 0,
553
+
554
+ :tIDENTIFIER, "b", :expr_cmdarg, 0, 0,
555
+ :tLCURLY, "{", :expr_beg, 0, 1,
556
+ :tIDENTIFIER, "f", :expr_cmdarg, 0, 1, # different
557
+ :tSYMBOL, "c", :expr_end, 0, 1,
558
+ :tRCURLY, "}", :expr_endarg, 0, 0)
559
+
560
+ assert_lex("X = a { }; b { X :c }",
561
+ s(:block,
562
+ s(:cdecl, :X, s(:iter, s(:call, nil, :a), 0)),
563
+ s(:iter,
564
+ s(:call, nil, :b),
565
+ 0,
566
+ s(:call, nil, :X, s(:lit, :c)))),
567
+
568
+ :tCONSTANT, "X", :expr_cmdarg, 0, 0,
569
+ :tEQL, "=", :expr_beg, 0, 0,
570
+ :tIDENTIFIER, "a", :expr_arg, 0, 0,
571
+ :tLCURLY, "{", :expr_beg, 0, 1,
572
+ :tRCURLY, "}", :expr_endarg, 0, 0,
573
+ :tSEMI, ";", :expr_beg, 0, 0,
574
+
575
+ :tIDENTIFIER, "b", :expr_cmdarg, 0, 0,
576
+ :tLCURLY, "{", :expr_beg, 0, 1,
577
+ :tCONSTANT, "X", :expr_cmdarg, 0, 1, # same
578
+ :tSYMBOL, "c", :expr_end, 0, 1,
579
+ :tRCURLY, "}", :expr_endarg, 0, 0)
580
+ end
581
+
582
+ def test_yylex_lasgn_call_same_name
583
+ assert_lex("a = b.c :d => 1",
584
+ s(:lasgn, :a,
585
+ s(:call, s(:call, nil, :b), :c,
586
+ s(:hash, s(:lit, :d), s(:lit, 1)))),
587
+
588
+ :tIDENTIFIER, "a", :expr_cmdarg, 0, 0,
589
+ :tEQL, "=", :expr_beg, 0, 0,
590
+ :tIDENTIFIER, "b", :expr_arg, 0, 0,
591
+ :tDOT, ".", :expr_dot, 0, 0,
592
+ :tIDENTIFIER, "c", :expr_arg, 0, 0, # different
593
+ :tSYMBOL, "d", :expr_end, 0, 0,
594
+ :tASSOC, "=>", :expr_beg, 0, 0,
595
+ :tINTEGER, 1, :expr_end, 0, 0)
596
+
597
+ assert_lex("a = b.a :d => 1",
598
+ s(:lasgn, :a,
599
+ s(:call, s(:call, nil, :b), :a,
600
+ s(:hash, s(:lit, :d), s(:lit, 1)))),
601
+
602
+ :tIDENTIFIER, "a", :expr_cmdarg, 0, 0,
603
+ :tEQL, "=", :expr_beg, 0, 0,
604
+ :tIDENTIFIER, "b", :expr_arg, 0, 0,
605
+ :tDOT, ".", :expr_dot, 0, 0,
606
+ :tIDENTIFIER, "a", :expr_arg, 0, 0, # same as lvar
607
+ :tSYMBOL, "d", :expr_end, 0, 0,
608
+ :tASSOC, "=>", :expr_beg, 0, 0,
609
+ :tINTEGER, 1, :expr_end, 0, 0)
610
+ end
611
+
612
+ def test_yylex_back_ref
613
+ assert_lex3("[$&, $`, $', $+]",
614
+ nil,
615
+ :tLBRACK, "[", :expr_beg,
616
+ :tBACK_REF, :&, :expr_end, :tCOMMA, ",", :expr_beg,
617
+ :tBACK_REF, :"`", :expr_end, :tCOMMA, ",", :expr_beg,
618
+ :tBACK_REF, :"'", :expr_end, :tCOMMA, ",", :expr_beg,
619
+ :tBACK_REF, :+, :expr_end,
620
+ :tRBRACK, "]", :expr_endarg)
621
+ end
622
+
623
+ def test_yylex_backslash
624
+ assert_lex3("1 \\\n+ 2",
625
+ nil,
626
+ :tINTEGER, 1, :expr_end,
627
+ :tPLUS, "+", :expr_beg,
628
+ :tINTEGER, 2, :expr_end)
629
+ end
630
+
631
+ def test_yylex_backslash_bad
632
+ refute_lex("1 \\ + 2", :tINTEGER, 1)
633
+ end
634
+
635
+ def test_yylex_backtick
636
+ assert_lex3("`ls`",
637
+ nil,
638
+ :tXSTRING_BEG, "`", :expr_beg,
639
+ :tSTRING_CONTENT, "ls", :expr_beg,
640
+ :tSTRING_END, "`", :expr_end)
641
+ end
642
+
643
+ def test_yylex_backtick_cmdarg
644
+ self.lex_state = :expr_dot
645
+
646
+ # \n ensures expr_cmd (TODO: why?)
647
+ assert_lex3("\n`", nil, :tBACK_REF2, "`", :expr_cmdarg)
648
+ end
649
+
650
+ def test_yylex_backtick_dot
651
+ self.lex_state = :expr_dot
652
+
653
+ assert_lex3("a.`(3)",
654
+ nil,
655
+ :tIDENTIFIER, "a", :expr_cmdarg,
656
+ :tDOT, ".", :expr_dot,
657
+ :tBACK_REF2, "`", :expr_arg,
658
+ :tLPAREN2, "(", :expr_beg,
659
+ :tINTEGER, 3, :expr_end,
660
+ :tRPAREN, ")", :expr_endfn)
661
+ end
662
+
663
+ def test_yylex_backtick_method
664
+ self.lex_state = :expr_fname
665
+
666
+ assert_lex3("`",
667
+ nil,
668
+ :tBACK_REF2, "`", :expr_end)
669
+ end
670
+
671
+ def test_yylex_bad_char
672
+ refute_lex(" \010 ")
673
+ end
674
+
675
+ def test_yylex_bang
676
+ assert_lex3("!", nil, :tBANG, "!", :expr_beg)
677
+ end
678
+
679
+ def test_yylex_bang_equals
680
+ assert_lex3("!=", nil, :tNEQ, "!=", :expr_beg)
681
+ end
682
+
683
+ def test_yylex_bang_tilde
684
+ assert_lex3("!~", nil, :tNMATCH, "!~", :expr_beg)
685
+ end
686
+
687
+ def test_yylex_carat
688
+ assert_lex3("^", nil, :tCARET, "^", :expr_beg)
689
+ end
690
+
691
+ def test_yylex_carat_equals
692
+ assert_lex3("^=", nil, :tOP_ASGN, "^", :expr_beg)
693
+ end
694
+
695
+ def test_yylex_colon2
696
+ assert_lex3("A::B",
697
+ nil,
698
+ :tCONSTANT, "A", :expr_cmdarg,
699
+ :tCOLON2, "::", :expr_dot,
700
+ :tCONSTANT, "B", :expr_arg)
701
+ end
702
+
703
+ def test_yylex_colon2_argh
704
+ assert_lex3("module X::Y\n c\nend",
705
+ nil,
706
+ :kMODULE, "module", :expr_value,
707
+ :tCONSTANT, "X", :expr_arg,
708
+ :tCOLON2, "::", :expr_dot,
709
+ :tCONSTANT, "Y", :expr_arg,
710
+ :tNL, nil, :expr_beg,
711
+ :tIDENTIFIER, "c", :expr_cmdarg,
712
+ :tNL, nil, :expr_beg,
713
+ :kEND, "end", :expr_end)
714
+ end
715
+
716
+ def test_yylex_colon3
717
+ assert_lex3("::Array",
718
+ nil,
719
+ :tCOLON3, "::", :expr_beg,
720
+ :tCONSTANT, "Array", :expr_arg)
721
+ end
722
+
723
+ def test_yylex_comma
724
+ assert_lex3(",", nil, :tCOMMA, ",", :expr_beg)
725
+ end
726
+
727
+ def test_yylex_comment
728
+ assert_lex3("1 # one\n# two\n2",
729
+ nil,
730
+ :tINTEGER, 1, :expr_end,
731
+ :tNL, nil, :expr_beg,
732
+ :tINTEGER, 2, :expr_end)
733
+
734
+ assert_equal "# one\n# two\n", @lex.comments
735
+ end
736
+
737
+ def test_yylex_comment_begin
738
+ assert_lex3("=begin\nblah\nblah\n=end\n42",
739
+ nil,
740
+ :tINTEGER, 42, :expr_end)
741
+
742
+ assert_equal "=begin\nblah\nblah\n=end\n", @lex.comments
743
+ end
744
+
745
+ def test_yylex_comment_begin_bad
746
+ refute_lex("=begin\nblah\nblah\n")
747
+
748
+ assert_equal "", @lex.comments
749
+ end
750
+
751
+ def test_yylex_comment_begin_not_comment
752
+ assert_lex3("beginfoo = 5\np x \\\n=beginfoo",
753
+ nil,
754
+ :tIDENTIFIER, "beginfoo", :expr_cmdarg,
755
+ :tEQL, "=", :expr_beg,
756
+ :tINTEGER, 5, :expr_end,
757
+ :tNL, nil, :expr_beg,
758
+ :tIDENTIFIER, "p", :expr_cmdarg,
759
+ :tIDENTIFIER, "x", :expr_arg,
760
+ :tEQL, "=", :expr_beg,
761
+ :tIDENTIFIER, "beginfoo", :expr_arg)
762
+ end
763
+
764
+ def test_yylex_comment_begin_space
765
+ assert_lex3("=begin blah\nblah\n=end\n", nil)
766
+
767
+ assert_equal "=begin blah\nblah\n=end\n", @lex.comments
768
+ end
769
+
770
+ def test_yylex_comment_end_space_and_text
771
+ assert_lex3("=begin blah\nblah\n=end blab\n", nil)
772
+
773
+ assert_equal "=begin blah\nblah\n=end blab\n", @lex.comments
774
+ end
775
+
776
+ def test_yylex_comment_eos
777
+ assert_lex3("# comment", nil)
778
+ end
779
+
780
+ def test_yylex_constant
781
+ assert_lex3("ArgumentError", nil, :tCONSTANT, "ArgumentError", :expr_cmdarg)
782
+ end
783
+
784
+ def test_yylex_constant_semi
785
+ assert_lex3("ArgumentError;",
786
+ nil,
787
+ :tCONSTANT, "ArgumentError", :expr_cmdarg,
788
+ :tSEMI, ";", :expr_beg)
789
+ end
790
+
791
+ def test_yylex_cvar
792
+ assert_lex3("@@blah", nil, :tCVAR, "@@blah", :expr_end)
793
+ end
794
+
795
+ def test_yylex_cvar_bad
796
+ assert_raises RubyParser::SyntaxError do
797
+ assert_lex3("@@1", nil)
798
+ end
799
+ end
800
+
801
+ def test_yylex_def_bad_name
802
+ self.lex_state = :expr_fname
803
+ refute_lex("def [ ", :kDEF, "def")
804
+ end
805
+
806
+ def test_yylex_div
807
+ assert_lex3("a / 2",
808
+ nil,
809
+ :tIDENTIFIER, "a", :expr_cmdarg,
810
+ :tDIVIDE, "/", :expr_beg,
811
+ :tINTEGER, 2, :expr_end)
812
+ end
813
+
814
+ def test_yylex_div_equals
815
+ assert_lex3("a /= 2",
816
+ nil,
817
+ :tIDENTIFIER, "a", :expr_cmdarg,
818
+ :tOP_ASGN, "/", :expr_beg,
819
+ :tINTEGER, 2, :expr_end)
820
+ end
821
+
822
+ def test_yylex_do
823
+ assert_lex3("x do 42 end",
824
+ nil,
825
+ :tIDENTIFIER, "x", :expr_cmdarg,
826
+ :kDO, "do", :expr_beg,
827
+ :tINTEGER, 42, :expr_end,
828
+ :kEND, "end", :expr_end)
829
+ end
830
+
831
+ def test_yylex_do_block
832
+ self.lex_state = :expr_endarg
833
+
834
+ assert_lex3("x.y do 42 end",
835
+ nil,
836
+ :tIDENTIFIER, "x", :expr_end,
837
+ :tDOT, ".", :expr_dot,
838
+ :tIDENTIFIER, "y", :expr_arg,
839
+ :kDO_BLOCK, "do", :expr_beg,
840
+ :tINTEGER, 42, :expr_end,
841
+ :kEND, "end", :expr_end) do
842
+ @lex.cmdarg.push true
843
+ end
844
+ end
845
+
846
+ def test_yylex_do_block2
847
+ self.lex_state = :expr_endarg
848
+
849
+ assert_lex3("do 42 end",
850
+ nil,
851
+ :kDO_BLOCK, "do", :expr_beg,
852
+ :tINTEGER, 42, :expr_end,
853
+ :kEND, "end", :expr_end)
854
+ end
855
+
856
+ def test_yylex_is_your_spacebar_broken?
857
+ assert_lex3(":a!=:b",
858
+ nil,
859
+ :tSYMBOL, "a", :expr_end,
860
+ :tNEQ, "!=", :expr_beg,
861
+ :tSYMBOL, "b", :expr_end)
862
+ end
863
+
864
+ def test_yylex_do_cond
865
+ assert_lex3("x do 42 end",
866
+ nil,
867
+ :tIDENTIFIER, "x", :expr_cmdarg,
868
+ :kDO_COND, "do", :expr_beg,
869
+ :tINTEGER, 42, :expr_end,
870
+ :kEND, "end", :expr_end) do
871
+ @lex.cond.push true
872
+ end
873
+ end
874
+
875
+ def test_yylex_dollar_bad
876
+ e = refute_lex("$%")
877
+ assert_includes(e.message, "is not allowed as a global variable name")
878
+ end
879
+
880
+ def test_yylex_dollar_eos
881
+ assert_lex3("$", nil, "$", "$", :expr_end) # FIX: wtf is this?!?
882
+ end
883
+
884
+ def test_yylex_dot # HINT message sends
885
+ assert_lex3(".", nil, :tDOT, ".", :expr_dot)
886
+ end
887
+
888
+ def test_yylex_dot2
889
+ assert_lex3("..", nil, :tDOT2, "..", :expr_beg)
890
+ end
891
+
892
+ def test_yylex_dot3
893
+ assert_lex3("...", nil, :tDOT3, "...", :expr_beg)
894
+ end
895
+
896
+ def test_yylex_equals
897
+ # FIX: this sucks
898
+ assert_lex3("=", nil, :tEQL, "=", :expr_beg)
899
+ end
900
+
901
+ def test_yylex_equals2
902
+ assert_lex3("==", nil, :tEQ, "==", :expr_beg)
903
+ end
904
+
905
+ def test_yylex_equals3
906
+ assert_lex3("===", nil, :tEQQ, "===", :expr_beg)
907
+ end
908
+
909
+ def test_yylex_equals_tilde
910
+ assert_lex3("=~", nil, :tMATCH, "=~", :expr_beg)
911
+ end
912
+
913
+ def test_yylex_float
914
+ assert_lex3("1.0", nil, :tFLOAT, 1.0, :expr_end)
915
+ end
916
+
917
+ def test_yylex_float_bad_no_underscores
918
+ refute_lex "1__0.0"
919
+ end
920
+
921
+ def test_yylex_float_bad_no_zero_leading
922
+ refute_lex ".0"
923
+ end
924
+
925
+ def test_yylex_float_bad_trailing_underscore
926
+ refute_lex "123_.0"
927
+ end
928
+
929
+ def test_yylex_float_call
930
+ assert_lex3("1.0.to_s",
931
+ nil,
932
+ :tFLOAT, 1.0, :expr_end,
933
+ :tDOT, ".", :expr_dot,
934
+ :tIDENTIFIER, "to_s", :expr_arg)
935
+ end
936
+
937
+ def test_yylex_float_dot_E
938
+ assert_lex3("1.0E10",
939
+ nil,
940
+ :tFLOAT, 10000000000.0, :expr_end)
941
+ end
942
+
943
+ def test_yylex_float_dot_E_neg
944
+ assert_lex3("-1.0E10",
945
+ nil,
946
+ :tUMINUS_NUM, "-", :expr_beg,
947
+ :tFLOAT, 10000000000.0, :expr_end)
948
+ end
949
+
950
+ def test_yylex_float_dot_e
951
+ assert_lex3("1.0e10",
952
+ nil,
953
+ :tFLOAT, 10000000000.0, :expr_end)
954
+ end
955
+
956
+ def test_yylex_float_dot_e_neg
957
+ assert_lex3("-1.0e10",
958
+ nil,
959
+ :tUMINUS_NUM, "-", :expr_beg,
960
+ :tFLOAT, 10000000000.0, :expr_end)
961
+ end
962
+
963
+ def test_yylex_float_e
964
+ assert_lex3("1e10",
965
+ nil,
966
+ :tFLOAT, 10000000000.0, :expr_end)
967
+ end
968
+
969
+ def test_yylex_float_e_bad_double_e
970
+ refute_lex "1e2e3"
971
+ end
972
+
973
+ def test_yylex_float_e_bad_trailing_underscore
974
+ refute_lex "123_e10"
975
+ end
976
+
977
+ def test_yylex_float_e_minus
978
+ assert_lex3("1e-10", nil, :tFLOAT, 1.0e-10, :expr_end)
979
+ end
980
+
981
+ def test_yylex_float_e_neg
982
+ assert_lex3("-1e10",
983
+ nil,
984
+ :tUMINUS_NUM, "-", :expr_beg,
985
+ :tFLOAT, 10000000000.0, :expr_end)
986
+ end
987
+
988
+ def test_yylex_float_e_neg_minus
989
+ assert_lex3("-1e-10",
990
+ nil,
991
+ :tUMINUS_NUM, "-", :expr_beg,
992
+ :tFLOAT, 1.0e-10, :expr_end)
993
+ end
994
+
995
+ def test_yylex_float_e_neg_plus
996
+ assert_lex3("-1e+10",
997
+ nil,
998
+ :tUMINUS_NUM, "-", :expr_beg,
999
+ :tFLOAT, 10000000000.0, :expr_end)
1000
+ end
1001
+
1002
+ def test_yylex_float_e_plus
1003
+ assert_lex3("1e+10", nil, :tFLOAT, 10000000000.0, :expr_end)
1004
+ end
1005
+
1006
+ def test_yylex_float_e_zero
1007
+ assert_lex3("0e0", nil, :tFLOAT, 0.0, :expr_end)
1008
+ end
1009
+
1010
+ def test_yylex_float_neg
1011
+ assert_lex3("-1.0",
1012
+ nil,
1013
+ :tUMINUS_NUM, "-", :expr_beg,
1014
+ :tFLOAT, 1.0, :expr_end)
1015
+ end
1016
+
1017
+ def test_yylex_ge
1018
+ assert_lex3("a >= 2",
1019
+ nil,
1020
+ :tIDENTIFIER, "a", :expr_cmdarg,
1021
+ :tGEQ, ">=", :expr_beg,
1022
+ :tINTEGER, 2, :expr_end)
1023
+ end
1024
+
1025
+ def test_yylex_global
1026
+ assert_lex3("$blah", nil, :tGVAR, "$blah", :expr_end)
1027
+ end
1028
+
1029
+ def test_yylex_global_backref
1030
+ self.lex_state = :expr_fname
1031
+
1032
+ assert_lex3("$`", nil, :tGVAR, "$`", :expr_end)
1033
+ end
1034
+
1035
+ def test_yylex_global_dash_nothing
1036
+ assert_lex3("$- ", nil, :tGVAR, "$-", :expr_end)
1037
+ end
1038
+
1039
+ def test_yylex_global_dash_something
1040
+ assert_lex3("$-x", nil, :tGVAR, "$-x", :expr_end)
1041
+ end
1042
+
1043
+ def test_yylex_global_number
1044
+ self.lex_state = :expr_fname
1045
+
1046
+ assert_lex3("$1", nil, :tGVAR, "$1", :expr_end)
1047
+ end
1048
+
1049
+ def test_yylex_global_number_big
1050
+ self.lex_state = :expr_fname
1051
+
1052
+ assert_lex3("$1234", nil, :tGVAR, "$1234", :expr_end)
1053
+ end
1054
+
1055
+ def test_yylex_global_other
1056
+ assert_lex3("[$~, $*, $$, $?, $!, $@, $/, $\\, $;, $,, $., $=, $:, $<, $>, $\"]",
1057
+ nil,
1058
+ :tLBRACK, "[", :expr_beg,
1059
+ :tGVAR, "$~", :expr_end, :tCOMMA, ",", :expr_beg,
1060
+ :tGVAR, "$*", :expr_end, :tCOMMA, ",", :expr_beg,
1061
+ :tGVAR, "$$", :expr_end, :tCOMMA, ",", :expr_beg,
1062
+ :tGVAR, "$?", :expr_end, :tCOMMA, ",", :expr_beg,
1063
+ :tGVAR, "$!", :expr_end, :tCOMMA, ",", :expr_beg,
1064
+ :tGVAR, "$@", :expr_end, :tCOMMA, ",", :expr_beg,
1065
+ :tGVAR, "$/", :expr_end, :tCOMMA, ",", :expr_beg,
1066
+ :tGVAR, "$\\", :expr_end, :tCOMMA, ",", :expr_beg,
1067
+ :tGVAR, "$;", :expr_end, :tCOMMA, ",", :expr_beg,
1068
+ :tGVAR, "$,", :expr_end, :tCOMMA, ",", :expr_beg,
1069
+ :tGVAR, "$.", :expr_end, :tCOMMA, ",", :expr_beg,
1070
+ :tGVAR, "$=", :expr_end, :tCOMMA, ",", :expr_beg,
1071
+ :tGVAR, "$:", :expr_end, :tCOMMA, ",", :expr_beg,
1072
+ :tGVAR, "$<", :expr_end, :tCOMMA, ",", :expr_beg,
1073
+ :tGVAR, "$>", :expr_end, :tCOMMA, ",", :expr_beg,
1074
+ :tGVAR, "$\"", :expr_end,
1075
+ :tRBRACK, "]", :expr_endarg)
1076
+ end
1077
+
1078
+ def test_yylex_global_underscore
1079
+ assert_lex3("$_", nil, :tGVAR, "$_", :expr_end)
1080
+ end
1081
+
1082
+ def test_yylex_global_wierd
1083
+ assert_lex3("$__blah", nil, :tGVAR, "$__blah", :expr_end)
1084
+ end
1085
+
1086
+ def test_yylex_global_zero
1087
+ assert_lex3("$0", nil, :tGVAR, "$0", :expr_end)
1088
+ end
1089
+
1090
+ def test_yylex_gt
1091
+ assert_lex3("a > 2",
1092
+ nil,
1093
+ :tIDENTIFIER, "a", :expr_cmdarg,
1094
+ :tGT, ">", :expr_beg,
1095
+ :tINTEGER, 2, :expr_end)
1096
+ end
1097
+
1098
+ def test_yylex_heredoc_backtick
1099
+ assert_lex3("a = <<`EOF`\n blah blah\nEOF\n\n",
1100
+ nil,
1101
+ :tIDENTIFIER, "a", :expr_cmdarg,
1102
+ :tEQL, "=", :expr_beg,
1103
+ :tXSTRING_BEG, "`", :expr_beg,
1104
+ :tSTRING_CONTENT, " blah blah\n", :expr_beg,
1105
+ :tSTRING_END, "EOF", :expr_end,
1106
+ :tNL, nil, :expr_beg)
1107
+ end
1108
+
1109
+ def test_yylex_heredoc_double
1110
+ assert_lex3("a = <<\"EOF\"\n blah blah\nEOF\n\n",
1111
+ nil,
1112
+ :tIDENTIFIER, "a", :expr_cmdarg,
1113
+ :tEQL, "=", :expr_beg,
1114
+ :tSTRING_BEG, "\"", :expr_beg,
1115
+ :tSTRING_CONTENT, " blah blah\n", :expr_beg,
1116
+ :tSTRING_END, "EOF", :expr_end,
1117
+ :tNL, nil, :expr_beg)
1118
+ end
1119
+
1120
+ def test_yylex_heredoc_double_dash
1121
+ assert_lex3("a = <<-\"EOF\"\n blah blah\n EOF\n\n",
1122
+ nil,
1123
+ :tIDENTIFIER, "a", :expr_cmdarg,
1124
+ :tEQL, "=", :expr_beg,
1125
+ :tSTRING_BEG, "\"", :expr_beg,
1126
+ :tSTRING_CONTENT, " blah blah\n", :expr_beg,
1127
+ :tSTRING_END, "EOF", :expr_end,
1128
+ :tNL, nil, :expr_beg)
1129
+ end
1130
+
1131
+ def test_yylex_heredoc_double_eos
1132
+ refute_lex("a = <<\"EOF\"\nblah",
1133
+ :tIDENTIFIER, "a",
1134
+ :tEQL, "=",
1135
+ :tSTRING_BEG, "\"")
1136
+ end
1137
+
1138
+ def test_yylex_heredoc_double_eos_nl
1139
+ refute_lex("a = <<\"EOF\"\nblah\n",
1140
+ :tIDENTIFIER, "a",
1141
+ :tEQL, "=",
1142
+ :tSTRING_BEG, "\"")
1143
+ end
1144
+
1145
+ def test_yylex_heredoc_double_interp
1146
+ assert_lex3("a = <<\"EOF\"\n#x a \#@a b \#$b c \#{3} \nEOF\n\n",
1147
+ nil,
1148
+ :tIDENTIFIER, "a", :expr_cmdarg,
1149
+ :tEQL, "=", :expr_beg,
1150
+ :tSTRING_BEG, "\"", :expr_beg,
1151
+ :tSTRING_CONTENT, "#x a ", :expr_beg,
1152
+ :tSTRING_DVAR, "\#@", :expr_beg,
1153
+ :tSTRING_CONTENT, "@a b ", :expr_beg, # HUH?
1154
+ :tSTRING_DVAR, "\#$", :expr_beg,
1155
+ :tSTRING_CONTENT, "$b c ", :expr_beg, # HUH?
1156
+ :tSTRING_DBEG, "\#{", :expr_beg,
1157
+ :tSTRING_CONTENT, "3} \n", :expr_beg, # HUH?
1158
+ :tSTRING_END, "EOF", :expr_end,
1159
+ :tNL, nil, :expr_beg)
1160
+ end
1161
+
1162
+ def test_yylex_heredoc_empty
1163
+ assert_lex3("<<\"\"\n\#{x}\nblah2\n\n\n",
1164
+ nil,
1165
+ :tSTRING_BEG, "\"", :expr_beg,
1166
+ :tSTRING_DBEG, "\#{", :expr_beg,
1167
+ :tSTRING_CONTENT, "x}\nblah2\n", :expr_beg,
1168
+ :tSTRING_END, "", :expr_end,
1169
+ :tNL, nil, :expr_beg)
1170
+ end
1171
+
1172
+ def test_yylex_heredoc_none
1173
+ assert_lex3("a = <<EOF\nblah\nblah\nEOF\n",
1174
+ nil,
1175
+ :tIDENTIFIER, "a", :expr_cmdarg,
1176
+ :tEQL, "=", :expr_beg,
1177
+ :tSTRING_BEG, "\"", :expr_beg,
1178
+ :tSTRING_CONTENT, "blah\nblah\n", :expr_beg,
1179
+ :tSTRING_END, "EOF", :expr_end,
1180
+ :tNL, nil, :expr_beg)
1181
+ end
1182
+
1183
+ def test_yylex_heredoc_none_bad_eos
1184
+ refute_lex("a = <<EOF",
1185
+ :tIDENTIFIER, "a",
1186
+ :tEQL, "=",
1187
+ :tSTRING_BEG, "\"")
1188
+ end
1189
+
1190
+ def test_yylex_heredoc_none_dash
1191
+ assert_lex3("a = <<-EOF\nblah\nblah\n EOF\n",
1192
+ nil,
1193
+ :tIDENTIFIER, "a", :expr_cmdarg,
1194
+ :tEQL, "=", :expr_beg,
1195
+ :tSTRING_BEG, "\"", :expr_beg,
1196
+ :tSTRING_CONTENT, "blah\nblah\n", :expr_beg,
1197
+ :tSTRING_END, "EOF", :expr_end,
1198
+ :tNL, nil, :expr_beg)
1199
+ end
1200
+
1201
+ def test_yylex_heredoc_single
1202
+ assert_lex3("a = <<'EOF'\n blah blah\nEOF\n\n",
1203
+ nil,
1204
+ :tIDENTIFIER, "a", :expr_cmdarg,
1205
+ :tEQL, "=", :expr_beg,
1206
+ :tSTRING_BEG, "\"", :expr_beg,
1207
+ :tSTRING_CONTENT, " blah blah\n", :expr_beg,
1208
+ :tSTRING_END, "EOF", :expr_end,
1209
+ :tNL, nil, :expr_beg)
1210
+ end
1211
+
1212
+ def test_yylex_heredoc_single_bad_eos_body
1213
+ refute_lex("a = <<'EOF'\nblah",
1214
+ :tIDENTIFIER, "a",
1215
+ :tEQL, "=",
1216
+ :tSTRING_BEG, "\"")
1217
+ end
1218
+
1219
+ def test_yylex_heredoc_single_bad_eos_empty
1220
+ refute_lex("a = <<''\n",
1221
+ :tIDENTIFIER, "a",
1222
+ :tEQL, "=",
1223
+ :tSTRING_BEG, "\"")
1224
+ end
1225
+
1226
+ def test_yylex_heredoc_single_bad_eos_term
1227
+ refute_lex("a = <<'EOF",
1228
+ :tIDENTIFIER, "a",
1229
+ :tEQL, "=",
1230
+ :tSTRING_BEG, "\"")
1231
+ end
1232
+
1233
+ def test_yylex_heredoc_single_bad_eos_term_nl
1234
+ refute_lex("a = <<'EOF\ns = 'blah blah'",
1235
+ :tIDENTIFIER, "a",
1236
+ :tEQL, "=",
1237
+ :tSTRING_BEG, "\"")
1238
+ end
1239
+
1240
+ def test_yylex_heredoc_single_dash
1241
+ assert_lex3("a = <<-'EOF'\n blah blah\n EOF\n\n",
1242
+ nil,
1243
+ :tIDENTIFIER, "a", :expr_cmdarg,
1244
+ :tEQL, "=", :expr_beg,
1245
+ :tSTRING_BEG, "\"", :expr_beg,
1246
+ :tSTRING_CONTENT, " blah blah\n", :expr_beg,
1247
+ :tSTRING_END, "EOF", :expr_end,
1248
+ :tNL, nil, :expr_beg)
1249
+ end
1250
+
1251
+ def test_yylex_identifier
1252
+ assert_lex3("identifier",
1253
+ nil,
1254
+ :tIDENTIFIER, "identifier", :expr_cmdarg)
1255
+ end
1256
+
1257
+ def test_yylex_identifier_bang
1258
+ assert_lex3("identifier!",
1259
+ nil,
1260
+ :tFID, "identifier!", :expr_cmdarg)
1261
+ end
1262
+
1263
+ def test_yylex_identifier_cmp
1264
+ assert_lex_fname "<=>", :tCMP
1265
+ end
1266
+
1267
+ def test_yylex_identifier_def__18
1268
+ setup_lexer_class Ruby18Parser
1269
+
1270
+ assert_lex_fname "identifier", :tIDENTIFIER, :expr_end
1271
+ end
1272
+
1273
+ def test_yylex_identifier_def__1920
1274
+ setup_lexer_class Ruby19Parser
1275
+
1276
+ assert_lex_fname "identifier", :tIDENTIFIER, :expr_endfn
1277
+ end
1278
+
1279
+ def test_yylex_identifier_eh
1280
+ assert_lex3("identifier?", nil, :tFID, "identifier?", :expr_cmdarg)
1281
+ end
1282
+
1283
+ def test_yylex_identifier_equals_arrow
1284
+ assert_lex3(":blah==>",
1285
+ nil,
1286
+ :tSYMBOL, "blah=", :expr_end,
1287
+ :tASSOC, "=>", :expr_beg)
1288
+ end
1289
+
1290
+ def test_yylex_identifier_equals3
1291
+ assert_lex3(":a===b",
1292
+ nil,
1293
+ :tSYMBOL, "a", :expr_end,
1294
+ :tEQQ, "===", :expr_beg,
1295
+ :tIDENTIFIER, "b", :expr_arg)
1296
+ end
1297
+
1298
+ def test_yylex_identifier_equals_equals_arrow
1299
+ assert_lex3(":a==>b",
1300
+ nil,
1301
+ :tSYMBOL, "a=", :expr_end,
1302
+ :tASSOC, "=>", :expr_beg,
1303
+ :tIDENTIFIER, "b", :expr_arg)
1304
+ end
1305
+
1306
+ def test_yylex_identifier_equals_caret
1307
+ assert_lex_fname "^", :tCARET
1308
+ end
1309
+
1310
+ def test_yylex_identifier_equals_def__18
1311
+ setup_lexer_class Ruby18Parser
1312
+
1313
+ assert_lex_fname "identifier=", :tIDENTIFIER, :expr_end
1314
+ end
1315
+
1316
+ def test_yylex_identifier_equals_def__1920
1317
+ setup_lexer_class Ruby19Parser
1318
+
1319
+ assert_lex_fname "identifier=", :tIDENTIFIER, :expr_endfn
1320
+ end
1321
+
1322
+ def test_yylex_identifier_equals_def2
1323
+ assert_lex_fname "==", :tEQ
1324
+ end
1325
+
1326
+ def test_yylex_identifier_equals_expr
1327
+ self.lex_state = :expr_dot
1328
+ assert_lex3("y = arg",
1329
+ nil,
1330
+ :tIDENTIFIER, "y", :expr_cmdarg,
1331
+ :tEQL, "=", :expr_beg,
1332
+ :tIDENTIFIER, "arg", :expr_arg)
1333
+ end
1334
+
1335
+ def test_yylex_identifier_equals_or
1336
+ assert_lex_fname "|", :tPIPE
1337
+ end
1338
+
1339
+ def test_yylex_identifier_equals_slash
1340
+ assert_lex_fname "/", :tDIVIDE
1341
+ end
1342
+
1343
+ def test_yylex_identifier_equals_tilde
1344
+ self.lex_state = :expr_fname # can only set via parser's defs
1345
+
1346
+ assert_lex3("identifier=~",
1347
+ nil,
1348
+ :tIDENTIFIER, "identifier", :expr_endfn,
1349
+ :tMATCH, "=~", :expr_beg)
1350
+ end
1351
+
1352
+ def test_yylex_identifier_gt
1353
+ assert_lex_fname ">", :tGT
1354
+ end
1355
+
1356
+ def test_yylex_identifier_le
1357
+ assert_lex_fname "<=", :tLEQ
1358
+ end
1359
+
1360
+ def test_yylex_identifier_lt
1361
+ assert_lex_fname "<", :tLT
1362
+ end
1363
+
1364
+ def test_yylex_identifier_tilde
1365
+ assert_lex_fname "~", :tTILDE
1366
+ end
1367
+
1368
+ def test_yylex_index
1369
+ assert_lex_fname "[]", :tAREF
1370
+ end
1371
+
1372
+ def test_yylex_index_equals
1373
+ assert_lex_fname "[]=", :tASET
1374
+ end
1375
+
1376
+ def test_yylex_integer
1377
+ assert_lex3("42", nil, :tINTEGER, 42, :expr_end)
1378
+ end
1379
+
1380
+ def test_yylex_integer_bin
1381
+ assert_lex3("0b101010", nil, :tINTEGER, 42, :expr_end)
1382
+ end
1383
+
1384
+ def test_yylex_integer_bin_bad_none
1385
+ refute_lex "0b "
1386
+ end
1387
+
1388
+ def test_yylex_integer_bin_bad_underscores
1389
+ refute_lex "0b10__01"
1390
+ end
1391
+
1392
+ def test_yylex_integer_dec
1393
+ assert_lex3("42", nil, :tINTEGER, 42, :expr_end)
1394
+ end
1395
+
1396
+ def test_yylex_integer_dec_bad_underscores
1397
+ refute_lex "42__24"
1398
+ end
1399
+
1400
+ def test_yylex_integer_dec_d
1401
+ assert_lex3("0d42", nil, :tINTEGER, 42, :expr_end)
1402
+ end
1403
+
1404
+ def test_yylex_integer_dec_d_bad_none
1405
+ refute_lex "0d"
1406
+ end
1407
+
1408
+ def test_yylex_integer_dec_d_bad_underscores
1409
+ refute_lex "0d42__24"
1410
+ end
1411
+
1412
+ def test_yylex_question_eh_a__18
1413
+ setup_lexer_class Ruby18Parser
1414
+
1415
+ assert_lex3("?a", nil, :tINTEGER, 97, :expr_end)
1416
+ end
1417
+
1418
+ def test_yylex_question_eh_a__19
1419
+ setup_lexer_class Ruby19Parser
1420
+
1421
+ assert_lex3("?a", nil, :tSTRING, "a", :expr_end)
1422
+ end
1423
+
1424
+ def test_yylex_question_eh_escape_M_escape_C__18
1425
+ setup_lexer_class Ruby18Parser
1426
+
1427
+ assert_lex3("?\\M-\\C-a", nil, :tINTEGER, 129, :expr_end)
1428
+ end
1429
+
1430
+ def test_yylex_question_eh_escape_M_escape_C__19
1431
+ setup_lexer_class Ruby19Parser
1432
+
1433
+ assert_lex3("?\\M-\\C-a", nil, :tSTRING, "\M-\C-a", :expr_end)
1434
+ end
1435
+
1436
+ def test_yylex_integer_hex
1437
+ assert_lex3 "0x2a", nil, :tINTEGER, 42, :expr_end
1438
+ end
1439
+
1440
+ def test_yylex_integer_hex_bad_none
1441
+ refute_lex "0x "
1442
+ end
1443
+
1444
+ def test_yylex_integer_hex_bad_underscores
1445
+ refute_lex "0xab__cd"
1446
+ end
1447
+
1448
+ def test_yylex_integer_oct
1449
+ assert_lex3("052", nil, :tINTEGER, 42, :expr_end)
1450
+ end
1451
+
1452
+ def test_yylex_integer_oct_bad_range
1453
+ refute_lex "08"
1454
+ end
1455
+
1456
+ def test_yylex_integer_oct_bad_range2
1457
+ refute_lex "08"
1458
+ end
1459
+
1460
+ def test_yylex_integer_oct_bad_underscores
1461
+ refute_lex "01__23"
1462
+ end
1463
+
1464
+ def test_yylex_integer_oct_O
1465
+ assert_lex3 "0O52", nil, :tINTEGER, 42, :expr_end
1466
+ end
1467
+
1468
+ def test_yylex_integer_oct_O_bad_range
1469
+ refute_lex "0O8"
1470
+ end
1471
+
1472
+ def test_yylex_integer_oct_O_bad_underscores
1473
+ refute_lex "0O1__23"
1474
+ end
1475
+
1476
+ def test_yylex_integer_oct_O_not_bad_none
1477
+ assert_lex3 "0O ", nil, :tINTEGER, 0, :expr_end
1478
+ end
1479
+
1480
+ def test_yylex_integer_oct_o
1481
+ assert_lex3 "0o52", nil, :tINTEGER, 42, :expr_end
1482
+ end
1483
+
1484
+ def test_yylex_integer_oct_o_bad_range
1485
+ refute_lex "0o8"
1486
+ end
1487
+
1488
+ def test_yylex_integer_oct_o_bad_underscores
1489
+ refute_lex "0o1__23"
1490
+ end
1491
+
1492
+ def test_yylex_integer_oct_o_not_bad_none
1493
+ assert_lex3 "0o ", nil, :tINTEGER, 0, :expr_end
1494
+ end
1495
+
1496
+ def test_yylex_integer_trailing
1497
+ assert_lex3("1.to_s",
1498
+ nil,
1499
+ :tINTEGER, 1, :expr_end,
1500
+ :tDOT, ".", :expr_dot,
1501
+ :tIDENTIFIER, "to_s", :expr_arg)
1502
+ end
1503
+
1504
+ def test_yylex_integer_underscore
1505
+ assert_lex3("4_2", nil, :tINTEGER, 42, :expr_end)
1506
+ end
1507
+
1508
+ def test_yylex_integer_underscore_bad
1509
+ refute_lex "4__2"
1510
+ end
1511
+
1512
+ def test_yylex_integer_zero
1513
+ assert_lex3 "0", nil, :tINTEGER, 0, :expr_end
1514
+ end
1515
+
1516
+ def test_yylex_ivar
1517
+ assert_lex3("@blah", nil, :tIVAR, "@blah", :expr_end)
1518
+ end
1519
+
1520
+ def test_yylex_ivar_bad
1521
+ refute_lex "@1"
1522
+ end
1523
+
1524
+ def test_yylex_ivar_bad_0_length
1525
+ refute_lex "1+@\n", :tINTEGER, 1, :tPLUS, "+", :expr_end
1526
+ end
1527
+
1528
+ def test_yylex_keyword_expr
1529
+ self.lex_state = :expr_endarg
1530
+
1531
+ assert_lex3("if", nil, :kIF_MOD, "if", :expr_beg)
1532
+ end
1533
+
1534
+ def test_yylex_lt
1535
+ assert_lex3("<", nil, :tLT, "<", :expr_beg)
1536
+ end
1537
+
1538
+ def test_yylex_lt2
1539
+ assert_lex3("a << b",
1540
+ nil,
1541
+ :tIDENTIFIER, "a", :expr_cmdarg,
1542
+ :tLSHFT, "<<", :expr_beg,
1543
+ :tIDENTIFIER, "b", :expr_arg)
1544
+ end
1545
+
1546
+ def test_yylex_lt2_equals
1547
+ assert_lex3("a <<= b",
1548
+ nil,
1549
+ :tIDENTIFIER, "a", :expr_cmdarg,
1550
+ :tOP_ASGN, "<<", :expr_beg,
1551
+ :tIDENTIFIER, "b", :expr_arg)
1552
+ end
1553
+
1554
+ def test_yylex_lt_equals
1555
+ assert_lex3("<=", nil, :tLEQ, "<=", :expr_beg)
1556
+ end
1557
+
1558
+ def test_yylex_minus
1559
+ assert_lex3("1 - 2",
1560
+ nil,
1561
+ :tINTEGER, 1, :expr_end,
1562
+ :tMINUS, "-", :expr_beg,
1563
+ :tINTEGER, 2, :expr_end)
1564
+ end
1565
+
1566
+ def test_yylex_minus_equals
1567
+ assert_lex3("-=", nil, :tOP_ASGN, "-", :expr_beg)
1568
+ end
1569
+
1570
+ def test_yylex_minus_method
1571
+ self.lex_state = :expr_fname
1572
+
1573
+ assert_lex3("-", nil, :tMINUS, "-", :expr_arg)
1574
+ end
1575
+
1576
+ def test_yylex_minus_unary_method
1577
+ self.lex_state = :expr_fname
1578
+
1579
+ assert_lex3("-@", nil, :tUMINUS, "-@", :expr_arg)
1580
+ end
1581
+
1582
+ def test_yylex_minus_unary_number
1583
+ assert_lex3("-42",
1584
+ nil,
1585
+ :tUMINUS_NUM, "-", :expr_beg,
1586
+ :tINTEGER, 42, :expr_end)
1587
+ end
1588
+
1589
+ def test_yylex_nth_ref
1590
+ assert_lex3("[$1, $2, $3, $4, $5, $6, $7, $8, $9]",
1591
+ nil,
1592
+ :tLBRACK, "[", :expr_beg,
1593
+ :tNTH_REF, 1, :expr_end, :tCOMMA, ",", :expr_beg,
1594
+ :tNTH_REF, 2, :expr_end, :tCOMMA, ",", :expr_beg,
1595
+ :tNTH_REF, 3, :expr_end, :tCOMMA, ",", :expr_beg,
1596
+ :tNTH_REF, 4, :expr_end, :tCOMMA, ",", :expr_beg,
1597
+ :tNTH_REF, 5, :expr_end, :tCOMMA, ",", :expr_beg,
1598
+ :tNTH_REF, 6, :expr_end, :tCOMMA, ",", :expr_beg,
1599
+ :tNTH_REF, 7, :expr_end, :tCOMMA, ",", :expr_beg,
1600
+ :tNTH_REF, 8, :expr_end, :tCOMMA, ",", :expr_beg,
1601
+ :tNTH_REF, 9, :expr_end,
1602
+ :tRBRACK, "]", :expr_endarg)
1603
+ end
1604
+
1605
+ def test_yylex_open_bracket
1606
+ assert_lex3("(", nil, :tLPAREN, "(", :expr_beg)
1607
+ end
1608
+
1609
+ def test_yylex_open_bracket_cmdarg
1610
+ self.lex_state = :expr_cmdarg
1611
+
1612
+ assert_lex3(" (", nil, :tLPAREN_ARG, "(", :expr_beg)
1613
+ end
1614
+
1615
+ def test_yylex_open_bracket_exprarg__18
1616
+ setup_lexer_class Ruby18Parser
1617
+ self.lex_state = :expr_arg
1618
+
1619
+ assert_lex3(" (", nil, :tLPAREN2, "(", :expr_beg)
1620
+ end
1621
+
1622
+ def test_yylex_open_bracket_exprarg__19
1623
+ setup_lexer_class Ruby19Parser
1624
+ self.lex_state = :expr_arg
1625
+
1626
+ assert_lex3(" (", nil, :tLPAREN_ARG, "(", :expr_beg)
1627
+ end
1628
+
1629
+ def test_yylex_open_curly_bracket
1630
+ assert_lex3("{", nil, :tLBRACE, "{", :expr_beg)
1631
+ end
1632
+
1633
+ def test_yylex_open_curly_bracket_arg
1634
+ self.lex_state = :expr_arg
1635
+
1636
+ assert_lex3("m { 3 }",
1637
+ nil,
1638
+ :tIDENTIFIER, "m", :expr_cmdarg,
1639
+ :tLCURLY, "{", :expr_beg,
1640
+ :tINTEGER, 3, :expr_end,
1641
+ :tRCURLY, "}", :expr_endarg)
1642
+ end
1643
+
1644
+ def test_yylex_open_curly_bracket_block
1645
+ self.lex_state = :expr_endarg # seen m(3)
1646
+
1647
+ assert_lex3("{ 4 }",
1648
+ nil,
1649
+ :tLBRACE_ARG, "{", :expr_beg,
1650
+ :tINTEGER, 4, :expr_end,
1651
+ :tRCURLY, "}", :expr_endarg)
1652
+ end
1653
+
1654
+ def test_yylex_open_square_bracket_arg
1655
+ self.lex_state = :expr_arg
1656
+
1657
+ assert_lex3("m [ 3 ]",
1658
+ nil,
1659
+ :tIDENTIFIER, "m", :expr_cmdarg,
1660
+ :tLBRACK, "[", :expr_beg,
1661
+ :tINTEGER, 3, :expr_end,
1662
+ :tRBRACK, "]", :expr_endarg)
1663
+ end
1664
+
1665
+ def test_yylex_open_square_bracket_ary
1666
+ assert_lex3("[1, 2, 3]",
1667
+ nil,
1668
+ :tLBRACK, "[", :expr_beg,
1669
+ :tINTEGER, 1, :expr_end, :tCOMMA, ",", :expr_beg,
1670
+ :tINTEGER, 2, :expr_end, :tCOMMA, ",", :expr_beg,
1671
+ :tINTEGER, 3, :expr_end,
1672
+ :tRBRACK, "]", :expr_endarg)
1673
+ end
1674
+
1675
+ def test_yylex_open_square_bracket_meth
1676
+ assert_lex3("m[3]",
1677
+ nil,
1678
+ :tIDENTIFIER, "m", :expr_cmdarg,
1679
+ :tLBRACK2, "[", :expr_beg,
1680
+ :tINTEGER, 3, :expr_end,
1681
+ :tRBRACK, "]", :expr_endarg)
1682
+ end
1683
+
1684
+ def test_yylex_or
1685
+ assert_lex3("|", nil, :tPIPE, "|", :expr_beg)
1686
+ end
1687
+
1688
+ def test_yylex_or2
1689
+ assert_lex3("||", nil, :tOROP, "||", :expr_beg)
1690
+ end
1691
+
1692
+ def test_yylex_or2_equals
1693
+ assert_lex3("||=", nil, :tOP_ASGN, "||", :expr_beg)
1694
+ end
1695
+
1696
+ def test_yylex_or_equals
1697
+ assert_lex3("|=", nil, :tOP_ASGN, "|", :expr_beg)
1698
+ end
1699
+
1700
+ def test_yylex_percent
1701
+ assert_lex3("a % 2",
1702
+ nil,
1703
+ :tIDENTIFIER, "a", :expr_cmdarg,
1704
+ :tPERCENT, "%", :expr_beg,
1705
+ :tINTEGER, 2, :expr_end)
1706
+ end
1707
+
1708
+ def test_yylex_percent_equals
1709
+ assert_lex3("a %= 2",
1710
+ nil,
1711
+ :tIDENTIFIER, "a", :expr_cmdarg,
1712
+ :tOP_ASGN, "%", :expr_beg,
1713
+ :tINTEGER, 2, :expr_end)
1714
+ end
1715
+
1716
+ def test_yylex_plus
1717
+ assert_lex3("1 + 1", # TODO lex_state?
1718
+ nil,
1719
+ :tINTEGER, 1, :expr_end,
1720
+ :tPLUS, "+", :expr_beg,
1721
+ :tINTEGER, 1, :expr_end)
1722
+ end
1723
+
1724
+ def test_yylex_plus_equals
1725
+ assert_lex3("+=", nil, :tOP_ASGN, "+", :expr_beg)
1726
+ end
1727
+
1728
+ def test_yylex_plus_method
1729
+ self.lex_state = :expr_fname
1730
+
1731
+ assert_lex3("+", nil, :tPLUS, "+", :expr_arg)
1732
+ end
1733
+
1734
+ def test_yylex_plus_unary_method
1735
+ self.lex_state = :expr_fname
1736
+
1737
+ assert_lex3("+@", nil, :tUPLUS, "+@", :expr_arg)
1738
+ end
1739
+
1740
+ def test_yylex_not_unary_method
1741
+ self.lex_state = :expr_fname
1742
+
1743
+ assert_lex3("!@", nil, :tUBANG, "!@", :expr_arg)
1744
+ end
1745
+
1746
+ def test_yylex_numbers
1747
+ assert_lex3("0b10", nil, :tINTEGER, 2, :expr_end)
1748
+ assert_lex3("0B10", nil, :tINTEGER, 2, :expr_end)
1749
+
1750
+ assert_lex3("0d10", nil, :tINTEGER, 10, :expr_end)
1751
+ assert_lex3("0D10", nil, :tINTEGER, 10, :expr_end)
1752
+
1753
+ assert_lex3("0x10", nil, :tINTEGER, 16, :expr_end)
1754
+ assert_lex3("0X10", nil, :tINTEGER, 16, :expr_end)
1755
+
1756
+ assert_lex3("0o10", nil, :tINTEGER, 8, :expr_end)
1757
+ assert_lex3("0O10", nil, :tINTEGER, 8, :expr_end)
1758
+
1759
+ assert_lex3("0o", nil, :tINTEGER, 0, :expr_end)
1760
+ assert_lex3("0O", nil, :tINTEGER, 0, :expr_end)
1761
+
1762
+ assert_lex3("0", nil, :tINTEGER, 0, :expr_end)
1763
+
1764
+ refute_lex "0x"
1765
+ refute_lex "0X"
1766
+ refute_lex "0b"
1767
+ refute_lex "0B"
1768
+ refute_lex "0d"
1769
+ refute_lex "0D"
1770
+
1771
+ refute_lex "08"
1772
+ refute_lex "09"
1773
+ refute_lex "0o8"
1774
+ refute_lex "0o9"
1775
+ refute_lex "0O8"
1776
+ refute_lex "0O9"
1777
+
1778
+ refute_lex "1_e1"
1779
+ refute_lex "1_.1"
1780
+ refute_lex "1__1"
1781
+ end
1782
+
1783
+ def test_yylex_plus_unary_number
1784
+ assert_lex3("+42", nil, :tINTEGER, 42, :expr_end)
1785
+ end
1786
+
1787
+ def test_yylex_question__18
1788
+ setup_lexer_class Ruby18Parser
1789
+
1790
+ assert_lex3("?*", nil, :tINTEGER, 42, :expr_end)
1791
+ end
1792
+
1793
+ def test_yylex_question__19
1794
+ setup_lexer_class Ruby19Parser
1795
+
1796
+ assert_lex3("?*", nil, :tSTRING, "*", :expr_end)
1797
+ end
1798
+
1799
+ def test_yylex_question_bad_eos
1800
+ refute_lex "?"
1801
+ end
1802
+
1803
+ def test_yylex_question_ws
1804
+ assert_lex3("? ", nil, :tEH, "?", :expr_value)
1805
+ assert_lex3("?\n", nil, :tEH, "?", :expr_value)
1806
+ assert_lex3("?\t", nil, :tEH, "?", :expr_value)
1807
+ assert_lex3("?\v", nil, :tEH, "?", :expr_value)
1808
+ assert_lex3("?\r", nil, :tEH, "?", :expr_value)
1809
+ assert_lex3("?\f", nil, :tEH, "?", :expr_value)
1810
+ end
1811
+
1812
+ def test_yylex_question_ws_backslashed__18
1813
+ setup_lexer_class Ruby18Parser
1814
+
1815
+ assert_lex3("?\\ ", nil, :tINTEGER, 32, :expr_end)
1816
+ assert_lex3("?\\n", nil, :tINTEGER, 10, :expr_end)
1817
+ assert_lex3("?\\t", nil, :tINTEGER, 9, :expr_end)
1818
+ assert_lex3("?\\v", nil, :tINTEGER, 11, :expr_end)
1819
+ assert_lex3("?\\r", nil, :tINTEGER, 13, :expr_end)
1820
+ assert_lex3("?\\f", nil, :tINTEGER, 12, :expr_end)
1821
+ end
1822
+
1823
+ def test_yylex_question_ws_backslashed__19
1824
+ setup_lexer_class Ruby19Parser
1825
+
1826
+ assert_lex3("?\\ ", nil, :tSTRING, " ", :expr_end)
1827
+ assert_lex3("?\\n", nil, :tSTRING, "\n", :expr_end)
1828
+ assert_lex3("?\\t", nil, :tSTRING, "\t", :expr_end)
1829
+ assert_lex3("?\\v", nil, :tSTRING, "\v", :expr_end)
1830
+ assert_lex3("?\\r", nil, :tSTRING, "\r", :expr_end)
1831
+ assert_lex3("?\\f", nil, :tSTRING, "\f", :expr_end)
1832
+ end
1833
+
1834
+ def test_yylex_rbracket
1835
+ assert_lex3("]", nil, :tRBRACK, "]", :expr_endarg)
1836
+ end
1837
+
1838
+ def test_yylex_rcurly
1839
+ assert_lex3("}", nil, :tRCURLY, "}", :expr_endarg)
1840
+ end
1841
+
1842
+ def test_yylex_regexp
1843
+ assert_lex3("/regexp/",
1844
+ nil,
1845
+ :tREGEXP_BEG, "/", :expr_beg,
1846
+ :tSTRING_CONTENT, "regexp", :expr_beg,
1847
+ :tREGEXP_END, "", :expr_end)
1848
+ end
1849
+
1850
+ def test_yylex_regexp_ambiguous
1851
+ assert_lex3("method /regexp/",
1852
+ nil,
1853
+ :tIDENTIFIER, "method", :expr_cmdarg,
1854
+ :tREGEXP_BEG, "/", :expr_cmdarg,
1855
+ :tSTRING_CONTENT, "regexp", :expr_cmdarg,
1856
+ :tREGEXP_END, "", :expr_end)
1857
+ end
1858
+
1859
+ def test_yylex_regexp_bad
1860
+ refute_lex("/.*/xyz",
1861
+ :tREGEXP_BEG, "/",
1862
+ :tSTRING_CONTENT, ".*")
1863
+ end
1864
+
1865
+ def test_yylex_regexp_escape_C
1866
+ assert_lex3("/regex\\C-x/",
1867
+ nil,
1868
+ :tREGEXP_BEG, "/", :expr_beg,
1869
+ :tSTRING_CONTENT, "regex\\C-x", :expr_beg,
1870
+ :tREGEXP_END, "", :expr_end)
1871
+ end
1872
+
1873
+ def test_yylex_regexp_escape_C_M
1874
+ assert_lex3("/regex\\C-\\M-x/",
1875
+ nil,
1876
+ :tREGEXP_BEG, "/", :expr_beg,
1877
+ :tSTRING_CONTENT, "regex\\C-\\M-x", :expr_beg,
1878
+ :tREGEXP_END, "", :expr_end)
1879
+ end
1880
+
1881
+ def test_yylex_regexp_escape_C_M_craaaazy
1882
+ assert_lex3("/regex\\C-\\\n\\M-x/",
1883
+ nil,
1884
+ :tREGEXP_BEG, "/", :expr_beg,
1885
+ :tSTRING_CONTENT, "regex\\C-\\M-x", :expr_beg,
1886
+ :tREGEXP_END, "", :expr_end)
1887
+ end
1888
+
1889
+ def test_yylex_regexp_escape_C_bad_dash
1890
+ refute_lex '/regex\\Cx/', :tREGEXP_BEG, "/"
1891
+ end
1892
+
1893
+ def test_yylex_regexp_escape_C_bad_dash_eos
1894
+ refute_lex '/regex\\C-/', :tREGEXP_BEG, "/"
1895
+ end
1896
+
1897
+ def test_yylex_regexp_escape_C_bad_dash_eos2
1898
+ refute_lex '/regex\\C-', :tREGEXP_BEG, "/"
1899
+ end
1900
+
1901
+ def test_yylex_regexp_escape_C_bad_eos
1902
+ refute_lex '/regex\\C/', :tREGEXP_BEG, "/"
1903
+ end
1904
+
1905
+ def test_yylex_regexp_escape_C_bad_eos2
1906
+ refute_lex '/regex\\c', :tREGEXP_BEG, "/"
1907
+ end
1908
+
1909
+ def test_yylex_regexp_escape_M
1910
+ assert_lex3("/regex\\M-x/",
1911
+ nil,
1912
+ :tREGEXP_BEG, "/", :expr_beg,
1913
+ :tSTRING_CONTENT, "regex\\M-x", :expr_beg,
1914
+ :tREGEXP_END, "", :expr_end)
1915
+ end
1916
+
1917
+ def test_yylex_regexp_escape_M_C
1918
+ assert_lex3("/regex\\M-\\C-x/",
1919
+ nil,
1920
+ :tREGEXP_BEG, "/", :expr_beg,
1921
+ :tSTRING_CONTENT, "regex\\M-\\C-x", :expr_beg,
1922
+ :tREGEXP_END, "", :expr_end)
1923
+ end
1924
+
1925
+ def test_yylex_regexp_escape_M_bad_dash
1926
+ refute_lex '/regex\\Mx/', :tREGEXP_BEG, "/"
1927
+ end
1928
+
1929
+ def test_yylex_regexp_escape_M_bad_dash_eos
1930
+ refute_lex '/regex\\M-/', :tREGEXP_BEG, "/"
1931
+ end
1932
+
1933
+ def test_yylex_regexp_escape_M_bad_dash_eos2
1934
+ refute_lex '/regex\\M-', :tREGEXP_BEG, "/"
1935
+ end
1936
+
1937
+ def test_yylex_regexp_escape_M_bad_eos
1938
+ refute_lex '/regex\\M/', :tREGEXP_BEG, "/"
1939
+ end
1940
+
1941
+ def test_yylex_regexp_escape_backslash_slash
1942
+ assert_lex3("/\\//",
1943
+ nil,
1944
+ :tREGEXP_BEG, "/", :expr_beg,
1945
+ :tSTRING_CONTENT, "\\/", :expr_beg,
1946
+ :tREGEXP_END, "", :expr_end)
1947
+ end
1948
+
1949
+ def test_yylex_regexp_escape_backslash_terminator
1950
+ assert_lex3("%r%blah\\%blah%",
1951
+ nil,
1952
+ :tREGEXP_BEG, "%r\000", :expr_beg,
1953
+ :tSTRING_CONTENT, "blah\\%blah", :expr_beg,
1954
+ :tREGEXP_END, "", :expr_end)
1955
+ end
1956
+
1957
+ def test_yylex_regexp_escape_backslash_terminator_meta1
1958
+ assert_lex3("%r{blah\\}blah}",
1959
+ nil,
1960
+ :tREGEXP_BEG, "%r{", :expr_beg, # FIX ?!?
1961
+ :tSTRING_CONTENT, "blah\\}blah", :expr_beg,
1962
+ :tREGEXP_END, "", :expr_end)
1963
+ end
1964
+
1965
+ def test_yylex_regexp_escape_backslash_terminator_meta2
1966
+ assert_lex3("%r/blah\\/blah/",
1967
+ nil,
1968
+ :tREGEXP_BEG, "%r\000", :expr_beg,
1969
+ :tSTRING_CONTENT, "blah\\/blah", :expr_beg,
1970
+ :tREGEXP_END, "", :expr_end)
1971
+ end
1972
+
1973
+ def test_yylex_regexp_escape_backslash_terminator_meta3
1974
+ assert_lex3("%r/blah\\%blah/",
1975
+ nil,
1976
+ :tREGEXP_BEG, "%r\000", :expr_beg,
1977
+ :tSTRING_CONTENT, "blah\\%blah", :expr_beg,
1978
+ :tREGEXP_END, "", :expr_end)
1979
+ end
1980
+
1981
+ def test_yylex_regexp_escape_bad_eos
1982
+ refute_lex '/regex\\', :tREGEXP_BEG, "/"
1983
+ end
1984
+
1985
+ def test_yylex_regexp_escape_bs
1986
+ assert_lex3("/regex\\\\regex/",
1987
+ nil,
1988
+ :tREGEXP_BEG, "/", :expr_beg,
1989
+ :tSTRING_CONTENT, "regex\\\\regex", :expr_beg,
1990
+ :tREGEXP_END, "", :expr_end)
1991
+ end
1992
+
1993
+ def test_yylex_regexp_escape_c
1994
+ assert_lex3("/regex\\cxxx/",
1995
+ nil,
1996
+ :tREGEXP_BEG, "/", :expr_beg,
1997
+ :tSTRING_CONTENT, "regex\\cxxx", :expr_beg,
1998
+ :tREGEXP_END, "", :expr_end)
1999
+ end
2000
+
2001
+ def test_yylex_regexp_escape_c_backslash
2002
+ assert_lex3("/regex\\c\\n/",
2003
+ nil,
2004
+ :tREGEXP_BEG, "/", :expr_beg,
2005
+ :tSTRING_CONTENT, "regex\\c\\n", :expr_beg,
2006
+ :tREGEXP_END, "", :expr_end)
2007
+ end
2008
+
2009
+ def test_yylex_regexp_escape_chars
2010
+ assert_lex3("/re\\tge\\nxp/",
2011
+ nil,
2012
+ :tREGEXP_BEG, "/", :expr_beg,
2013
+ :tSTRING_CONTENT, "re\\tge\\nxp", :expr_beg,
2014
+ :tREGEXP_END, "", :expr_end)
2015
+ end
2016
+
2017
+ def test_yylex_regexp_escape_double_backslash
2018
+ regexp = '/[\\/\\\\]$/'
2019
+ assert_lex3(regexp.dup,
2020
+ nil,
2021
+ :tREGEXP_BEG, "/", :expr_beg,
2022
+ :tSTRING_CONTENT, "[\\/\\\\]$", :expr_beg,
2023
+ :tREGEXP_END, "", :expr_end)
2024
+ end
2025
+
2026
+ def test_yylex_regexp_escape_hex
2027
+ assert_lex3("/regex\\x61xp/",
2028
+ nil,
2029
+ :tREGEXP_BEG, "/", :expr_beg,
2030
+ :tSTRING_CONTENT, "regex\\x61xp", :expr_beg,
2031
+ :tREGEXP_END, "", :expr_end)
2032
+ end
2033
+
2034
+ def test_yylex_regexp_escape_hex_bad
2035
+ refute_lex '/regex\\xzxp/', :tREGEXP_BEG, "/"
2036
+ end
2037
+
2038
+ def test_yylex_regexp_escape_hex_one
2039
+ assert_lex3("/^[\\xd\\xa]{2}/on",
2040
+ nil,
2041
+ :tREGEXP_BEG, "/", :expr_beg,
2042
+ :tSTRING_CONTENT, "^[\\xd\\xa]{2}", :expr_beg,
2043
+ :tREGEXP_END, "on", :expr_end)
2044
+ end
2045
+
2046
+ def test_yylex_regexp_escape_oct1
2047
+ assert_lex3("/regex\\0xp/",
2048
+ nil,
2049
+ :tREGEXP_BEG, "/", :expr_beg,
2050
+ :tSTRING_CONTENT, "regex\\0xp", :expr_beg,
2051
+ :tREGEXP_END, "", :expr_end)
2052
+ end
2053
+
2054
+ def test_yylex_regexp_escape_oct2
2055
+ assert_lex3("/regex\\07xp/",
2056
+ nil,
2057
+ :tREGEXP_BEG, "/", :expr_beg,
2058
+ :tSTRING_CONTENT, "regex\\07xp", :expr_beg,
2059
+ :tREGEXP_END, "", :expr_end)
2060
+ end
2061
+
2062
+ def test_yylex_regexp_escape_oct3
2063
+ assert_lex3("/regex\\10142/",
2064
+ nil,
2065
+ :tREGEXP_BEG, "/", :expr_beg,
2066
+ :tSTRING_CONTENT, "regex\\10142", :expr_beg,
2067
+ :tREGEXP_END, "", :expr_end)
2068
+ end
2069
+
2070
+ def test_yylex_regexp_escape_return
2071
+ assert_lex3("/regex\\\nregex/",
2072
+ nil,
2073
+ :tREGEXP_BEG, "/", :expr_beg,
2074
+ :tSTRING_CONTENT, "regexregex", :expr_beg,
2075
+ :tREGEXP_END, "", :expr_end)
2076
+ end
2077
+
2078
+ def test_yylex_regexp_nm
2079
+ assert_lex3("/.*/nm",
2080
+ nil,
2081
+ :tREGEXP_BEG, "/", :expr_beg,
2082
+ :tSTRING_CONTENT, ".*", :expr_beg,
2083
+ :tREGEXP_END, "nm", :expr_end)
2084
+ end
2085
+
2086
+ def test_yylex_rparen
2087
+ assert_lex3(")", nil, :tRPAREN, ")", :expr_endfn)
2088
+ end
2089
+
2090
+ def test_yylex_rshft
2091
+ assert_lex3("a >> 2",
2092
+ nil,
2093
+ :tIDENTIFIER, "a", :expr_cmdarg,
2094
+ :tRSHFT, ">>", :expr_beg,
2095
+ :tINTEGER, 2, :expr_end)
2096
+ end
2097
+
2098
+ def test_yylex_rshft_equals
2099
+ assert_lex3("a >>= 2",
2100
+ nil,
2101
+ :tIDENTIFIER, "a", :expr_cmdarg,
2102
+ :tOP_ASGN, ">>", :expr_beg,
2103
+ :tINTEGER, 2, :expr_end)
2104
+ end
2105
+
2106
+ def test_yylex_star
2107
+ assert_lex3("a * ",
2108
+ nil,
2109
+ :tIDENTIFIER, "a", :expr_cmdarg,
2110
+ :tSTAR2, "*", :expr_beg)
2111
+ end
2112
+
2113
+ def test_yylex_star2
2114
+ assert_lex3("a ** ",
2115
+ nil,
2116
+ :tIDENTIFIER, "a", :expr_cmdarg,
2117
+ :tPOW, "**", :expr_beg)
2118
+ end
2119
+
2120
+ def test_yylex_star2_equals
2121
+ assert_lex3("a **= ",
2122
+ nil,
2123
+ :tIDENTIFIER, "a", :expr_cmdarg,
2124
+ :tOP_ASGN, "**", :expr_beg)
2125
+ end
2126
+
2127
+ def test_yylex_star_arg
2128
+ self.lex_state = :expr_arg
2129
+
2130
+ assert_lex3(" *a",
2131
+ nil,
2132
+ :tSTAR, "*", :expr_beg,
2133
+ :tIDENTIFIER, "a", :expr_arg)
2134
+ end
2135
+
2136
+ def test_yylex_star_arg_beg
2137
+ self.lex_state = :expr_beg
2138
+
2139
+ assert_lex3("*a",
2140
+ nil,
2141
+ :tSTAR, "*", :expr_beg,
2142
+ :tIDENTIFIER, "a", :expr_arg)
2143
+ end
2144
+
2145
+ def test_yylex_star_arg_beg_fname
2146
+ self.lex_state = :expr_fname
2147
+
2148
+ assert_lex3("*a",
2149
+ nil,
2150
+ :tSTAR2, "*", :expr_arg,
2151
+ :tIDENTIFIER, "a", :expr_arg)
2152
+ end
2153
+
2154
+ def test_yylex_star_arg_beg_fname2
2155
+ self.lex_state = :expr_fname
2156
+
2157
+ assert_lex3("*a",
2158
+ nil,
2159
+ :tSTAR2, "*", :expr_arg,
2160
+ :tIDENTIFIER, "a", :expr_arg)
2161
+ end
2162
+
2163
+ def test_yylex_star_equals
2164
+ assert_lex3("a *= ",
2165
+ nil,
2166
+ :tIDENTIFIER, "a", :expr_cmdarg,
2167
+ :tOP_ASGN, "*", :expr_beg)
2168
+ end
2169
+
2170
+ def test_yylex_string_bad_eos
2171
+ refute_lex('%', :tSTRING_BEG, '%')
2172
+ end
2173
+
2174
+ def test_yylex_string_bad_eos_quote
2175
+ refute_lex('%{nest', :tSTRING_BEG, '%}')
2176
+ end
2177
+
2178
+ def test_yylex_string_double
2179
+ assert_lex3("\"string\"", nil, :tSTRING, "string", :expr_end)
2180
+ end
2181
+
2182
+ def test_yylex_string_double_escape_C
2183
+ assert_lex3("\"\\C-a\"", nil, :tSTRING, "\001", :expr_end)
2184
+ end
2185
+
2186
+ def test_yylex_string_double_escape_C_backslash
2187
+ assert_lex3("\"\\C-\\\\\"",
2188
+ nil,
2189
+ :tSTRING_BEG, "\"", :expr_beg,
2190
+ :tSTRING_CONTENT, "\034", :expr_beg,
2191
+ :tSTRING_END, "\"", :expr_end)
2192
+ end
2193
+
2194
+ def test_yylex_string_double_escape_C_escape
2195
+ assert_lex3("\"\\C-\\M-a\"",
2196
+ nil,
2197
+ :tSTRING_BEG, "\"", :expr_beg,
2198
+ :tSTRING_CONTENT, "\201", :expr_beg,
2199
+ :tSTRING_END, "\"", :expr_end)
2200
+ end
2201
+
2202
+ def test_yylex_string_double_escape_C_question
2203
+ assert_lex3("\"\\C-?\"", nil, :tSTRING, "\177", :expr_end)
2204
+ end
2205
+
2206
+ def test_yylex_string_utf8_simple
2207
+ chr = [0x3024].pack("U")
2208
+
2209
+ assert_lex3('"\u{3024}"',
2210
+ s(:str, chr),
2211
+ :tSTRING, chr, :expr_end)
2212
+ end
2213
+
2214
+ def test_yylex_string_utf8_complex
2215
+ chr = [0x3024].pack("U")
2216
+
2217
+ assert_lex3('"#@a\u{3024}"',
2218
+ s(:dstr, "", s(:evstr, s(:ivar, :@a)), s(:str, chr)),
2219
+ :tSTRING_BEG, '"', :expr_beg,
2220
+ :tSTRING_DVAR, nil, :expr_beg,
2221
+ :tSTRING_CONTENT, "@a"+chr, :expr_beg,
2222
+ :tSTRING_END, '"', :expr_end)
2223
+ end
2224
+
2225
+ def test_yylex_string_double_escape_M
2226
+ chr = "\341"
2227
+ chr.force_encoding("UTF-8") if RubyLexer::RUBY19
2228
+
2229
+ assert_lex3("\"\\M-a\"", nil, :tSTRING, chr, :expr_end)
2230
+ end
2231
+
2232
+ def test_why_does_ruby_hate_me?
2233
+ assert_lex3("\"Nl%\\000\\000A\\000\\999\"", # you should be ashamed
2234
+ nil,
2235
+ :tSTRING, ["Nl%","\x00","\x00","A","\x00","999"].join, :expr_end)
2236
+ end
2237
+
2238
+ def test_yylex_string_double_escape_M_backslash
2239
+ assert_lex3("\"\\M-\\\\\"",
2240
+ nil,
2241
+ :tSTRING_BEG, "\"", :expr_beg,
2242
+ :tSTRING_CONTENT, "\334", :expr_beg,
2243
+ :tSTRING_END, "\"", :expr_end)
2244
+ end
2245
+
2246
+ def test_yylex_string_double_escape_M_escape
2247
+ assert_lex3("\"\\M-\\C-a\"",
2248
+ nil,
2249
+ :tSTRING_BEG, "\"", :expr_beg,
2250
+ :tSTRING_CONTENT, "\201", :expr_beg,
2251
+ :tSTRING_END, "\"", :expr_end)
2252
+ end
2253
+
2254
+ def test_yylex_string_double_escape_bs1
2255
+ assert_lex3("\"a\\a\\a\"", nil, :tSTRING, "a\a\a", :expr_end)
2256
+ end
2257
+
2258
+ def test_yylex_string_double_escape_bs2
2259
+ assert_lex3("\"a\\\\a\"", nil, :tSTRING, "a\\a", :expr_end)
2260
+ end
2261
+
2262
+ def test_yylex_string_double_escape_c
2263
+ assert_lex3("\"\\ca\"", nil, :tSTRING, "\001", :expr_end)
2264
+ end
2265
+
2266
+ def test_yylex_string_double_escape_c_backslash
2267
+ assert_lex3("\"\\c\\\"",
2268
+ nil,
2269
+ :tSTRING_BEG, "\"", :expr_beg,
2270
+ :tSTRING_CONTENT, "\034", :expr_beg,
2271
+ :tSTRING_END, "\"", :expr_end)
2272
+ end
2273
+
2274
+ def test_yylex_string_double_escape_c_escape
2275
+ assert_lex3("\"\\c\\M-a\"",
2276
+ nil,
2277
+ :tSTRING_BEG, "\"", :expr_beg,
2278
+ :tSTRING_CONTENT, "\201", :expr_beg,
2279
+ :tSTRING_END, "\"", :expr_end)
2280
+ end
2281
+
2282
+ def test_yylex_string_double_escape_c_question
2283
+ assert_lex3("\"\\c?\"", nil, :tSTRING, "\177", :expr_end)
2284
+ end
2285
+
2286
+ def test_yylex_string_double_escape_chars
2287
+ assert_lex3("\"s\\tri\\ng\"", nil, :tSTRING, "s\tri\ng", :expr_end)
2288
+ end
2289
+
2290
+ def test_yylex_string_double_escape_hex
2291
+ assert_lex3("\"n = \\x61\\x62\\x63\"", nil, :tSTRING, "n = abc", :expr_end)
2292
+ end
2293
+
2294
+ def test_yylex_string_double_escape_octal
2295
+ assert_lex3("\"n = \\101\\102\\103\"", nil, :tSTRING, "n = ABC", :expr_end)
2296
+ end
2297
+
2298
+ def test_yylex_string_double_escape_octal_fucked
2299
+ assert_lex3("\"n = \\444\"", nil, :tSTRING, "n = $", :expr_end)
2300
+ end
2301
+
2302
+ def test_yylex_string_double_interp
2303
+ assert_lex3("\"blah #x a \#@a b \#$b c \#{3} # \"",
2304
+ nil,
2305
+ :tSTRING_BEG, "\"", :expr_beg,
2306
+ :tSTRING_CONTENT, "blah #x a ", :expr_beg,
2307
+ :tSTRING_DVAR, nil, :expr_beg,
2308
+ :tSTRING_CONTENT, "@a b ", :expr_beg,
2309
+ :tSTRING_DVAR, nil, :expr_beg,
2310
+ :tSTRING_CONTENT, "$b c ", :expr_beg,
2311
+ :tSTRING_DBEG, nil, :expr_beg,
2312
+ :tSTRING_CONTENT, "3} # ", :expr_beg,
2313
+ :tSTRING_END, "\"", :expr_end)
2314
+ end
2315
+
2316
+ def test_yylex_string_double_pound_dollar_bad
2317
+ skip if Ruby18Parser === lexer.parser
2318
+
2319
+ assert_lex3('"#$%"', nil,
2320
+
2321
+ :tSTRING_BEG, "\"", :expr_beg,
2322
+ :tSTRING_CONTENT, '#$%', :expr_beg,
2323
+ :tSTRING_END, "\"", :expr_end)
2324
+ end
2325
+
2326
+ def test_yylex_string_double_nested_curlies
2327
+ assert_lex3("%{nest{one{two}one}nest}",
2328
+ nil,
2329
+ :tSTRING_BEG, "%}", :expr_beg,
2330
+ :tSTRING_CONTENT, "nest{one{two}one}nest", :expr_beg,
2331
+ :tSTRING_END, "}", :expr_end)
2332
+ end
2333
+
2334
+ def test_yylex_string_double_no_interp
2335
+ assert_lex3("\"# blah\"", nil, :tSTRING, "# blah", :expr_end)
2336
+ assert_lex3("\"blah # blah\"", nil, :tSTRING, "blah # blah", :expr_end)
2337
+ end
2338
+
2339
+ def test_yylex_string_escape_x_single
2340
+ assert_lex3("\"\\x0\"", nil, :tSTRING, "\000", :expr_end)
2341
+ end
2342
+
2343
+ def test_yylex_string_pct_i
2344
+ assert_lex3("%i[s1 s2\ns3]",
2345
+ nil,
2346
+ :tQSYMBOLS_BEG, "%i[", :expr_beg,
2347
+ :tSTRING_CONTENT, "s1", :expr_beg,
2348
+ :tSPACE, nil, :expr_beg,
2349
+ :tSTRING_CONTENT, "s2", :expr_beg,
2350
+ :tSPACE, nil, :expr_beg,
2351
+ :tSTRING_CONTENT, "s3", :expr_beg,
2352
+ :tSPACE, nil, :expr_beg,
2353
+ :tSTRING_END, nil, :expr_end)
2354
+ end
2355
+
2356
+ def test_yylex_string_pct_I
2357
+ assert_lex3("%I[s1 s2\ns3]",
2358
+ nil,
2359
+ :tSYMBOLS_BEG, "%I[", :expr_beg,
2360
+ :tSTRING_CONTENT, "s1", :expr_beg,
2361
+ :tSPACE, nil, :expr_beg,
2362
+ :tSTRING_CONTENT, "s2", :expr_beg,
2363
+ :tSPACE, nil, :expr_beg,
2364
+ :tSTRING_CONTENT, "s3", :expr_beg,
2365
+ :tSPACE, nil, :expr_beg,
2366
+ :tSTRING_END, nil, :expr_end)
2367
+ end
2368
+
2369
+ def test_yylex_string_pct_i_extra_space
2370
+ assert_lex3("%i[ s1 s2\ns3 ]",
2371
+ nil,
2372
+ :tQSYMBOLS_BEG, "%i[", :expr_beg,
2373
+ :tSTRING_CONTENT, "s1", :expr_beg,
2374
+ :tSPACE, nil, :expr_beg,
2375
+ :tSTRING_CONTENT, "s2", :expr_beg,
2376
+ :tSPACE, nil, :expr_beg,
2377
+ :tSTRING_CONTENT, "s3", :expr_beg,
2378
+ :tSPACE, nil, :expr_beg,
2379
+ :tSTRING_END, nil, :expr_end)
2380
+ end
2381
+
2382
+ def test_yylex_string_pct_I_extra_space
2383
+ assert_lex3("%I[ s1 s2\ns3 ]",
2384
+ nil,
2385
+ :tSYMBOLS_BEG, "%I[", :expr_beg,
2386
+ :tSTRING_CONTENT, "s1", :expr_beg,
2387
+ :tSPACE, nil, :expr_beg,
2388
+ :tSTRING_CONTENT, "s2", :expr_beg,
2389
+ :tSPACE, nil, :expr_beg,
2390
+ :tSTRING_CONTENT, "s3", :expr_beg,
2391
+ :tSPACE, nil, :expr_beg,
2392
+ :tSTRING_END, nil, :expr_end)
2393
+ end
2394
+
2395
+ def test_yylex_string_pct_q
2396
+ assert_lex3("%q[s1 s2]",
2397
+ nil,
2398
+ :tSTRING_BEG, "%q[", :expr_beg,
2399
+ :tSTRING_CONTENT, "s1 s2", :expr_beg,
2400
+ :tSTRING_END, "]", :expr_end)
2401
+ end
2402
+
2403
+ def test_yylex_string_pct_Q
2404
+ assert_lex3("%Q[s1 s2]",
2405
+ nil,
2406
+ :tSTRING_BEG, "%Q[", :expr_beg,
2407
+ :tSTRING_CONTENT, "s1 s2", :expr_beg,
2408
+ :tSTRING_END, "]", :expr_end)
2409
+ end
2410
+
2411
+ def test_yylex_string_pct_W
2412
+ assert_lex3("%W[s1 s2\ns3]", # TODO: add interpolation to these
2413
+ nil,
2414
+ :tWORDS_BEG, "%W[", :expr_beg,
2415
+ :tSTRING_CONTENT, "s1", :expr_beg,
2416
+ :tSPACE, nil, :expr_beg,
2417
+ :tSTRING_CONTENT, "s2", :expr_beg,
2418
+ :tSPACE, nil, :expr_beg,
2419
+ :tSTRING_CONTENT, "s3", :expr_beg,
2420
+ :tSPACE, nil, :expr_beg,
2421
+ :tSTRING_END, nil, :expr_end)
2422
+ end
2423
+
2424
+ def test_yylex_string_pct_W_bs_nl
2425
+ assert_lex3("%W[s1 \\\ns2]", # TODO: add interpolation to these
2426
+ nil,
2427
+ :tWORDS_BEG, "%W[", :expr_beg,
2428
+ :tSTRING_CONTENT, "s1", :expr_beg,
2429
+ :tSPACE, nil, :expr_beg,
2430
+ :tSTRING_CONTENT, "\ns2", :expr_beg,
2431
+ :tSPACE, nil, :expr_beg,
2432
+ :tSTRING_END, nil, :expr_end)
2433
+ end
2434
+
2435
+ def test_yylex_string_pct_angle
2436
+ assert_lex3("%<blah>",
2437
+ nil,
2438
+ :tSTRING_BEG, "%>", :expr_beg,
2439
+ :tSTRING_CONTENT, "blah", :expr_beg,
2440
+ :tSTRING_END, ">", :expr_end)
2441
+ end
2442
+
2443
+ def test_yylex_string_pct_other
2444
+ assert_lex3("%%blah%",
2445
+ nil,
2446
+ :tSTRING_BEG, "%%", :expr_beg,
2447
+ :tSTRING_CONTENT, "blah", :expr_beg,
2448
+ :tSTRING_END, "%", :expr_end)
2449
+ end
2450
+
2451
+ def test_yylex_string_pct_w
2452
+ refute_lex("%w[s1 s2 ",
2453
+ :tQWORDS_BEG, "%w[",
2454
+ :tSTRING_CONTENT, "s1",
2455
+ :tSPACE, nil,
2456
+ :tSTRING_CONTENT, "s2",
2457
+ :tSPACE, nil)
2458
+ end
2459
+
2460
+ def test_yylex_string_pct_w_bs_nl
2461
+ assert_lex3("%w[s1 \\\ns2]",
2462
+ nil,
2463
+ :tQWORDS_BEG, "%w[", :expr_beg,
2464
+ :tSTRING_CONTENT, "s1", :expr_beg,
2465
+ :tSPACE, nil, :expr_beg,
2466
+ :tSTRING_CONTENT, "\ns2", :expr_beg,
2467
+ :tSPACE, nil, :expr_beg,
2468
+ :tSTRING_END, nil, :expr_end)
2469
+ end
2470
+
2471
+ def test_yylex_string_pct_w_bs_sp
2472
+ assert_lex3("%w[s\\ 1 s\\ 2]",
2473
+ nil,
2474
+ :tQWORDS_BEG, "%w[", :expr_beg,
2475
+ :tSTRING_CONTENT, "s 1", :expr_beg,
2476
+ :tSPACE, nil, :expr_beg,
2477
+ :tSTRING_CONTENT, "s 2", :expr_beg,
2478
+ :tSPACE, nil, :expr_beg,
2479
+ :tSTRING_END, nil, :expr_end)
2480
+ end
2481
+
2482
+ def test_yylex_string_single
2483
+ assert_lex3("'string'", nil, :tSTRING, "string", :expr_end)
2484
+ end
2485
+
2486
+ def test_yylex_string_single_escape_chars
2487
+ assert_lex3("'s\\tri\\ng'", nil, :tSTRING, "s\\tri\\ng", :expr_end)
2488
+ end
2489
+
2490
+ def test_yylex_string_single_nl
2491
+ assert_lex3("'blah\\\nblah'", nil, :tSTRING, "blah\\\nblah", :expr_end)
2492
+ end
2493
+
2494
+ def test_yylex_symbol
2495
+ assert_lex3(":symbol", nil, :tSYMBOL, "symbol", :expr_end)
2496
+ end
2497
+
2498
+ def test_yylex_symbol_zero_byte__18
2499
+ setup_lexer_class Ruby18Parser
2500
+
2501
+ refute_lex(":\"symbol\0\"", :tSYMBEG, ":")
2502
+ end
2503
+
2504
+ def test_yylex_symbol_zero_byte
2505
+ assert_lex(":\"symbol\0\"", nil,
2506
+ :tSYMBOL, "symbol\0", :expr_end)
2507
+ end
2508
+
2509
+ def test_yylex_symbol_double
2510
+ assert_lex3(":\"symbol\"",
2511
+ nil,
2512
+ :tSYMBOL, "symbol", :expr_end)
2513
+ end
2514
+
2515
+ def test_yylex_symbol_double_interp
2516
+ assert_lex3(':"symbol#{1+1}"',
2517
+ nil,
2518
+ :tSYMBEG, ":", :expr_fname,
2519
+ :tSTRING_CONTENT, "symbol", :expr_fname,
2520
+ :tSTRING_DBEG, nil, :expr_fname,
2521
+ :tSTRING_CONTENT, "1+1}", :expr_fname, # HUH? this is BS
2522
+ :tSTRING_END, "\"", :expr_end)
2523
+ end
2524
+
2525
+ def test_yylex_symbol_single
2526
+ assert_lex3(":'symbol'",
2527
+ nil,
2528
+ :tSYMBOL, "symbol", :expr_end)
2529
+ end
2530
+
2531
+ def test_yylex_symbol_single_noninterp
2532
+ assert_lex3(':\'symbol#{1+1}\'',
2533
+ nil,
2534
+ :tSYMBOL, 'symbol#{1+1}', :expr_end)
2535
+ end
2536
+
2537
+ def test_yylex_ternary1
2538
+ assert_lex3("a ? b : c",
2539
+ nil,
2540
+ :tIDENTIFIER, "a", :expr_cmdarg,
2541
+ :tEH, "?", :expr_value,
2542
+ :tIDENTIFIER, "b", :expr_arg,
2543
+ :tCOLON, ":", :expr_beg,
2544
+ :tIDENTIFIER, "c", :expr_arg)
2545
+
2546
+ assert_lex3("a ?bb : c", # GAH! MATZ!!!
2547
+ nil,
2548
+ :tIDENTIFIER, "a", :expr_cmdarg,
2549
+ :tEH, "?", :expr_beg,
2550
+ :tIDENTIFIER, "bb", :expr_arg,
2551
+ :tCOLON, ":", :expr_beg,
2552
+ :tIDENTIFIER, "c", :expr_arg)
2553
+
2554
+ assert_lex3("42 ?",
2555
+ nil,
2556
+ :tINTEGER, 42, :expr_end,
2557
+ :tEH, "?", :expr_value)
2558
+ end
2559
+
2560
+ def test_yylex_tilde
2561
+ assert_lex3("~", nil, :tTILDE, "~", :expr_beg)
2562
+ end
2563
+
2564
+ def test_yylex_tilde_unary
2565
+ self.lex_state = :expr_fname
2566
+
2567
+ assert_lex3("~@", nil, :tTILDE, "~", :expr_arg)
2568
+ end
2569
+
2570
+ def test_yylex_uminus
2571
+ assert_lex3("-blah",
2572
+ nil,
2573
+ :tUMINUS, "-", :expr_beg,
2574
+ :tIDENTIFIER, "blah", :expr_arg)
2575
+ end
2576
+
2577
+ def test_yylex_underscore
2578
+ assert_lex3("_var", nil, :tIDENTIFIER, "_var", :expr_cmdarg)
2579
+ end
2580
+
2581
+ def test_yylex_underscore_end
2582
+ assert_lex3("__END__\n",
2583
+ nil,
2584
+ RubyLexer::EOF, RubyLexer::EOF, nil)
2585
+ end
2586
+
2587
+ def test_yylex_uplus
2588
+ assert_lex3("+blah",
2589
+ nil,
2590
+ :tUPLUS, "+", :expr_beg,
2591
+ :tIDENTIFIER, "blah", :expr_arg)
2592
+ end
2593
+
2594
+ def test_zbug_float_in_decl
2595
+ assert_lex3("def initialize(u = 0.0, s = 0.0",
2596
+ nil,
2597
+ :kDEF, "def", :expr_fname,
2598
+ :tIDENTIFIER, "initialize", :expr_endfn,
2599
+ :tLPAREN2, "(", :expr_beg,
2600
+ :tIDENTIFIER, "u", :expr_arg,
2601
+ :tEQL, "=", :expr_beg,
2602
+ :tFLOAT, 0.0, :expr_end,
2603
+ :tCOMMA, ",", :expr_beg,
2604
+ :tIDENTIFIER, "s", :expr_arg,
2605
+ :tEQL, "=", :expr_beg,
2606
+ :tFLOAT, 0.0, :expr_end)
2607
+ end
2608
+
2609
+ def test_zbug_id_equals
2610
+ assert_lex3("a = 0.0",
2611
+ nil,
2612
+ :tIDENTIFIER, "a", :expr_cmdarg,
2613
+ :tEQL, "=", :expr_beg,
2614
+ :tFLOAT, 0.0, :expr_end)
2615
+ end
2616
+
2617
+ def test_zbug_no_spaces_in_decl
2618
+ assert_lex3("def initialize(u=0.0,s=0.0",
2619
+ nil,
2620
+ :kDEF, "def", :expr_fname,
2621
+ :tIDENTIFIER, "initialize", :expr_endfn,
2622
+ :tLPAREN2, "(", :expr_beg,
2623
+ :tIDENTIFIER, "u", :expr_arg,
2624
+ :tEQL, "=", :expr_beg,
2625
+ :tFLOAT, 0.0, :expr_end,
2626
+ :tCOMMA, ",", :expr_beg,
2627
+ :tIDENTIFIER, "s", :expr_arg,
2628
+ :tEQL, "=", :expr_beg,
2629
+ :tFLOAT, 0.0, :expr_end)
2630
+ end
2631
+
2632
+ def test_pct_w_backslashes
2633
+ ["\t", "\n", "\r", "\v", "\f"].each do |char|
2634
+ next if !RubyLexer::RUBY19 and char == "\v"
2635
+
2636
+ assert_lex("%w[foo#{char}bar]",
2637
+ s(:array, s(:str, "foo"), s(:str, "bar")),
2638
+
2639
+ :tQWORDS_BEG, "%w[", :expr_beg, 0, 0,
2640
+ :tSTRING_CONTENT, "foo", :expr_beg, 0, 0,
2641
+ :tSPACE, nil, :expr_beg, 0, 0,
2642
+ :tSTRING_CONTENT, "bar", :expr_beg, 0, 0,
2643
+ :tSPACE, nil, :expr_beg, 0, 0,
2644
+ :tSTRING_END, nil, :expr_end, 0, 0)
2645
+ end
2646
+ end
2647
+
2648
+ def test_yylex_sym_quoted
2649
+ assert_lex(":'a'",
2650
+ s(:lit, :a),
2651
+
2652
+ :tSYMBOL, "a", :expr_end, 0, 0)
2653
+ end
2654
+
2655
+ def test_yylex_hash_colon
2656
+ assert_lex("{a:1}",
2657
+ s(:hash, s(:lit, :a), s(:lit, 1)),
2658
+
2659
+ :tLBRACE, "{", :expr_beg, 0, 1,
2660
+ :tLABEL, "a", :expr_labelarg, 0, 1,
2661
+ :tINTEGER, 1, :expr_end, 0, 1,
2662
+ :tRCURLY, "}", :expr_endarg, 0, 0)
2663
+ end
2664
+
2665
+ def test_yylex_hash_colon_quoted_22
2666
+ setup_lexer_class Ruby22Parser
2667
+
2668
+ assert_lex("{'a':1}",
2669
+ s(:hash, s(:lit, :a), s(:lit, 1)),
2670
+
2671
+ :tLBRACE, "{", :expr_beg, 0, 1,
2672
+ :tLABEL, "a", :expr_labelarg, 0, 1,
2673
+ :tINTEGER, 1, :expr_end, 0, 1,
2674
+ :tRCURLY, "}", :expr_endarg, 0, 0)
2675
+ end
2676
+
2677
+ def test_yylex_hash_colon_quoted_symbol_22
2678
+ setup_lexer_class Ruby22Parser
2679
+
2680
+ assert_lex("{'abc': :b}",
2681
+ s(:hash, s(:lit, :abc), s(:lit, :b)),
2682
+
2683
+ :tLBRACE, "{", :expr_beg, 0, 1,
2684
+ :tLABEL, "abc", :expr_labelarg, 0, 1,
2685
+ :tSYMBOL, "b", :expr_end, 0, 1,
2686
+ :tRCURLY, "}", :expr_endarg, 0, 0)
2687
+ end
2688
+
2689
+ def test_yylex_hash_colon_double_quoted_symbol_22
2690
+ setup_lexer_class Ruby22Parser
2691
+
2692
+ assert_lex('{"abc": :b}',
2693
+ s(:hash, s(:lit, :abc), s(:lit, :b)),
2694
+
2695
+ :tLBRACE, "{", :expr_beg, 0, 1,
2696
+ :tLABEL, "abc", :expr_labelarg, 0, 1,
2697
+ :tSYMBOL, "b", :expr_end, 0, 1,
2698
+ :tRCURLY, "}", :expr_endarg, 0, 0)
2699
+ end
2700
+
2701
+ def test_ruby21_new_numbers
2702
+ skip "Don't have imaginary and rational literal lexing yet"
2703
+
2704
+ setup_lexer_class Ruby21Parser
2705
+
2706
+ assert_lex3("10r", nil, :tRATIONAL, "10r", :expr_end)
2707
+ assert_lex3("1.5r", nil, :tRATIONAL, "1.5r", :expr_end)
2708
+
2709
+ assert_lex3("1i", nil, :tIMAGINARY, "1i", :expr_end)
2710
+ assert_lex3("1+2i", nil, :tIMAGINARY, "1+2i", :expr_end)
2711
+ assert_lex3("1.2+3.4i", nil, :tIMAGINARY, "1.2+3.4i", :expr_end)
2712
+ assert_lex3("4r+3i", nil, :tIMAGINARY, "4r+3i", :expr_end)
2713
+ assert_lex3("4r+3ri", nil, :tIMAGINARY, "4r+3i", :expr_end)
2714
+
2715
+ assert_lex3("4i+3r", nil, :tIMAGINARY, "4r+3i", :expr_end) # HACK
2716
+ assert_lex3("1i+2ri", nil, :tIMAGINARY, "4r+3i", :expr_end) # HACK
2717
+
2718
+ assert_lex3("1+2ri", nil, :tIMAGINARY, "1+3ri", :expr_end)
2719
+ refute_lex("1+2ir", :tINTEGER, 1)
2720
+
2721
+ flunk
2722
+ end
2723
+ end