simple-templater 0.0.1.3 → 0.0.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1156) hide show
  1. data/Gemfile +12 -0
  2. data/README.textile +2 -2
  3. data/Rakefile +8 -3
  4. data/deps.rip +0 -1
  5. data/deps.rip.rbe +0 -1
  6. data/gems/cache/abstract-1.0.0.gem +0 -0
  7. data/gems/cache/erubis-2.6.5.gem +0 -0
  8. data/gems/cache/haml-2.2.16.gem +0 -0
  9. data/gems/cache/rspec-1.2.9.gem +0 -0
  10. data/gems/environment.rb +107 -0
  11. data/{vendor/abstract → gems/gems/abstract-1.0.0}/ChangeLog +0 -0
  12. data/{vendor/abstract → gems/gems/abstract-1.0.0}/README.txt +0 -0
  13. data/{vendor/abstract → gems/gems/abstract-1.0.0}/abstract.gemspec +0 -0
  14. data/{vendor/abstract → gems/gems/abstract-1.0.0}/lib/abstract.rb +0 -0
  15. data/{vendor/abstract → gems/gems/abstract-1.0.0}/setup.rb +0 -0
  16. data/{vendor/abstract → gems/gems/abstract-1.0.0}/test/test.rb +0 -0
  17. data/gems/gems/erubis-2.6.5/CHANGES.txt +744 -0
  18. data/gems/gems/erubis-2.6.5/MIT-LICENSE +20 -0
  19. data/gems/gems/erubis-2.6.5/README.txt +102 -0
  20. data/{vendor/erubis → gems/gems/erubis-2.6.5}/benchmark/Makefile +0 -0
  21. data/gems/gems/erubis-2.6.5/benchmark/bench.rb +313 -0
  22. data/{vendor/erubis → gems/gems/erubis-2.6.5}/benchmark/bench_context.yaml +0 -0
  23. data/{vendor/erubis → gems/gems/erubis-2.6.5}/benchmark/templates/_footer.html +0 -0
  24. data/{vendor/erubis → gems/gems/erubis-2.6.5}/benchmark/templates/_header.html +0 -0
  25. data/{vendor/erubis → gems/gems/erubis-2.6.5}/benchmark/templates/bench_erb.rhtml +0 -0
  26. data/{vendor/erubis → gems/gems/erubis-2.6.5}/benchmark/templates/bench_erubis.rhtml +0 -0
  27. data/{vendor/erubis → gems/gems/erubis-2.6.5}/benchmark/templates/bench_eruby.rhtml +0 -0
  28. data/gems/gems/erubis-2.6.5/bin/erubis +10 -0
  29. data/gems/gems/erubis-2.6.5/contrib/erubis +3330 -0
  30. data/{vendor/erubis → gems/gems/erubis-2.6.5}/contrib/erubis-run.rb +0 -0
  31. data/gems/gems/erubis-2.6.5/contrib/inline-require +179 -0
  32. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc/docstyle.css +0 -0
  33. data/gems/gems/erubis-2.6.5/doc/users-guide.html +3285 -0
  34. data/gems/gems/erubis-2.6.5/doc-api/classes/ActionView/TemplateHandlers/ErubisHandler.html +209 -0
  35. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/ActionView.html +0 -0
  36. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/ERB.html +0 -0
  37. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/ArrayBufferEnhancer.html +175 -0
  38. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/ArrayBufferEruby.html +0 -0
  39. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/ArrayEnhancer.html +174 -0
  40. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/ArrayEruby.html +0 -0
  41. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Basic/Converter.html +327 -0
  42. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/Basic/Engine.html +0 -0
  43. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/Basic.html +0 -0
  44. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/BiPatternEnhancer.html +215 -0
  45. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/BiPatternEruby.html +0 -0
  46. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/CGenerator.html +386 -0
  47. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/CommandOptionError.html +0 -0
  48. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Context.html +344 -0
  49. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Converter.html +283 -0
  50. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/DeleteIndentEnhancer.html +150 -0
  51. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/DeleteIndentEruby.html +0 -0
  52. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/Ec.html +0 -0
  53. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/Ejava.html +0 -0
  54. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/Ejavascript.html +0 -0
  55. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Engine.html +305 -0
  56. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/Eperl.html +0 -0
  57. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/Ephp.html +0 -0
  58. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/ErboutEnhancer.html +175 -0
  59. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/ErboutEruby.html +0 -0
  60. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/ErubisError.html +0 -0
  61. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/Eruby.html +0 -0
  62. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/EscapeEnhancer.html +165 -0
  63. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/EscapedEc.html +0 -0
  64. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/EscapedEjava.html +0 -0
  65. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/EscapedEjavascript.html +0 -0
  66. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/EscapedEperl.html +0 -0
  67. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/EscapedEphp.html +0 -0
  68. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/EscapedEruby.html +0 -0
  69. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/EscapedEscheme.html +0 -0
  70. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/Escheme.html +0 -0
  71. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Evaluator.html +212 -0
  72. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/FastEruby.html +0 -0
  73. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Generator.html +416 -0
  74. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/HeaderFooterEnhancer.html +267 -0
  75. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/HeaderFooterEruby.html +0 -0
  76. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Helpers/RailsFormHelper.html +787 -0
  77. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Helpers/RailsHelper/TemplateConverter.html +213 -0
  78. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Helpers/RailsHelper.html +349 -0
  79. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/Helpers.html +0 -0
  80. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/InterpolationEnhancer.html +306 -0
  81. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/InterpolationEruby.html +0 -0
  82. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/JavaGenerator.html +359 -0
  83. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/JavascriptGenerator.html +386 -0
  84. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Main.html +341 -0
  85. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/NoCodeEnhancer.html +249 -0
  86. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/NoCodeEruby.html +0 -0
  87. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/NoTextEnhancer.html +159 -0
  88. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/NoTextEruby.html +0 -0
  89. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/NotSupportedError.html +0 -0
  90. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/OptimizedEruby.html +163 -0
  91. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/OptimizedGenerator.html +439 -0
  92. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/OptimizedXmlEruby.html +163 -0
  93. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PI/Converter.html +266 -0
  94. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PI/Ec.html +166 -0
  95. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PI/Ejava.html +166 -0
  96. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PI/Ejavascript.html +166 -0
  97. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/PI/Engine.html +0 -0
  98. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PI/Eperl.html +166 -0
  99. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PI/Ephp.html +166 -0
  100. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PI/Eruby.html +155 -0
  101. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PI/Escheme.html +166 -0
  102. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PI/TinyEruby.html +293 -0
  103. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/PI.html +0 -0
  104. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PercentLineEnhancer.html +179 -0
  105. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/PercentLineEruby.html +0 -0
  106. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PerlGenerator.html +344 -0
  107. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PhpGenerator.html +350 -0
  108. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PreprocessingEruby.html +183 -0
  109. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PreprocessingHelper.html +212 -0
  110. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PrintEnabledEnhancer.html +212 -0
  111. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/PrintEnabledEruby.html +0 -0
  112. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PrintOutEnhancer.html +244 -0
  113. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/PrintOutEruby.html +0 -0
  114. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/PrintOutSimplifiedEruby.html +0 -0
  115. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/RubyEvaluator.html +227 -0
  116. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/RubyGenerator.html +327 -0
  117. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/SchemeGenerator.html +382 -0
  118. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/SimplifiedEruby.html +0 -0
  119. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/SimplifyEnhancer.html +191 -0
  120. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/StdoutEnhancer.html +173 -0
  121. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/StdoutEruby.html +0 -0
  122. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/StdoutSimplifiedEruby.html +0 -0
  123. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/StringBufferEnhancer.html +174 -0
  124. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/StringBufferEruby.html +0 -0
  125. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/StringIOEruby.html +0 -0
  126. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/TinyEruby.html +298 -0
  127. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/classes/Erubis/XmlEruby.html +0 -0
  128. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/XmlHelper.html +255 -0
  129. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis.html +353 -0
  130. data/gems/gems/erubis-2.6.5/doc-api/created.rid +1 -0
  131. data/gems/gems/erubis-2.6.5/doc-api/files/README_txt.html +247 -0
  132. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/context_rb.html +107 -0
  133. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/converter_rb.html +114 -0
  134. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/engine/ec_rb.html +115 -0
  135. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/engine/ejava_rb.html +115 -0
  136. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/engine/ejavascript_rb.html +115 -0
  137. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/engine/enhanced_rb.html +115 -0
  138. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/engine/eperl_rb.html +115 -0
  139. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/engine/ephp_rb.html +115 -0
  140. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/engine/eruby_rb.html +115 -0
  141. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/engine/escheme_rb.html +115 -0
  142. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/engine/optimized_rb.html +114 -0
  143. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/engine_rb.html +117 -0
  144. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/enhancer_rb.html +107 -0
  145. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/error_rb.html +107 -0
  146. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/evaluator_rb.html +115 -0
  147. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/generator_rb.html +114 -0
  148. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/helper_rb.html +107 -0
  149. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/helpers/rails_form_helper_rb.html +107 -0
  150. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/helpers/rails_helper_rb.html +116 -0
  151. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/local-setting_rb.html +107 -0
  152. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/main_rb.html +127 -0
  153. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/preprocessing_rb.html +114 -0
  154. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/tiny_rb.html +107 -0
  155. data/gems/gems/erubis-2.6.5/doc-api/files/erubis_rb.html +118 -0
  156. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/fr_class_index.html +0 -0
  157. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/fr_file_index.html +0 -0
  158. data/gems/gems/erubis-2.6.5/doc-api/fr_method_index.html +251 -0
  159. data/{vendor/erubis → gems/gems/erubis-2.6.5}/doc-api/index.html +0 -0
  160. data/{vendor/abstract/doc → gems/gems/erubis-2.6.5/doc-api}/rdoc-style.css +0 -0
  161. data/{vendor/erubis → gems/gems/erubis-2.6.5}/examples/basic/Makefile +0 -0
  162. data/{vendor/erubis → gems/gems/erubis-2.6.5}/examples/basic/example.ec +0 -0
  163. data/{vendor/erubis → gems/gems/erubis-2.6.5}/examples/basic/example.ejava +0 -0
  164. data/{vendor/erubis → gems/gems/erubis-2.6.5}/examples/basic/example.ejs +0 -0
  165. data/{vendor/erubis → gems/gems/erubis-2.6.5}/examples/basic/example.eperl +0 -0
  166. data/{vendor/erubis → gems/gems/erubis-2.6.5}/examples/basic/example.ephp +0 -0
  167. data/{vendor/erubis → gems/gems/erubis-2.6.5}/examples/basic/example.eruby +0 -0
  168. data/{vendor/erubis → gems/gems/erubis-2.6.5}/examples/basic/example.escheme +0 -0
  169. data/{vendor/erubis → gems/gems/erubis-2.6.5}/examples/pi/Makefile +0 -0
  170. data/{vendor/erubis → gems/gems/erubis-2.6.5}/examples/pi/example.ec +0 -0
  171. data/{vendor/erubis → gems/gems/erubis-2.6.5}/examples/pi/example.ejava +0 -0
  172. data/{vendor/erubis → gems/gems/erubis-2.6.5}/examples/pi/example.ejs +0 -0
  173. data/{vendor/erubis → gems/gems/erubis-2.6.5}/examples/pi/example.eperl +0 -0
  174. data/{vendor/erubis → gems/gems/erubis-2.6.5}/examples/pi/example.ephp +0 -0
  175. data/{vendor/erubis → gems/gems/erubis-2.6.5}/examples/pi/example.eruby +0 -0
  176. data/{vendor/erubis → gems/gems/erubis-2.6.5}/examples/pi/example.escheme +0 -0
  177. data/gems/gems/erubis-2.6.5/lib/erubis/context.rb +83 -0
  178. data/gems/gems/erubis-2.6.5/lib/erubis/converter.rb +357 -0
  179. data/gems/gems/erubis-2.6.5/lib/erubis/engine/ec.rb +117 -0
  180. data/gems/gems/erubis-2.6.5/lib/erubis/engine/ejava.rb +110 -0
  181. data/gems/gems/erubis-2.6.5/lib/erubis/engine/ejavascript.rb +119 -0
  182. data/gems/gems/erubis-2.6.5/lib/erubis/engine/enhanced.rb +121 -0
  183. data/gems/gems/erubis-2.6.5/lib/erubis/engine/eperl.rb +95 -0
  184. data/gems/gems/erubis-2.6.5/lib/erubis/engine/ephp.rb +99 -0
  185. data/gems/gems/erubis-2.6.5/lib/erubis/engine/eruby.rb +124 -0
  186. data/gems/gems/erubis-2.6.5/lib/erubis/engine/escheme.rb +114 -0
  187. data/gems/gems/erubis-2.6.5/lib/erubis/engine/optimized.rb +127 -0
  188. data/gems/gems/erubis-2.6.5/lib/erubis/engine.rb +120 -0
  189. data/gems/gems/erubis-2.6.5/lib/erubis/enhancer.rb +680 -0
  190. data/gems/gems/erubis-2.6.5/lib/erubis/error.rb +23 -0
  191. data/gems/gems/erubis-2.6.5/lib/erubis/evaluator.rb +88 -0
  192. data/gems/gems/erubis-2.6.5/lib/erubis/generator.rb +85 -0
  193. data/gems/gems/erubis-2.6.5/lib/erubis/helper.rb +47 -0
  194. data/gems/gems/erubis-2.6.5/lib/erubis/helpers/rails_form_helper.rb +197 -0
  195. data/gems/gems/erubis-2.6.5/lib/erubis/helpers/rails_helper.rb +353 -0
  196. data/gems/gems/erubis-2.6.5/lib/erubis/local-setting.rb +9 -0
  197. data/gems/gems/erubis-2.6.5/lib/erubis/main.rb +489 -0
  198. data/gems/gems/erubis-2.6.5/lib/erubis/preprocessing.rb +58 -0
  199. data/gems/gems/erubis-2.6.5/lib/erubis/tiny.rb +144 -0
  200. data/gems/gems/erubis-2.6.5/lib/erubis.rb +72 -0
  201. data/{vendor/erubis → gems/gems/erubis-2.6.5}/setup.rb +0 -0
  202. data/gems/gems/erubis-2.6.5/test/assert-text-equal.rb +44 -0
  203. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/Example.ejava +0 -0
  204. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/array_example.result +0 -0
  205. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/arraybuffer_example.result +0 -0
  206. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/bipattern-example.rhtml +0 -0
  207. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/bipattern_example.result +0 -0
  208. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/context.rb +0 -0
  209. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/context.yaml +0 -0
  210. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/def_method.rb +0 -0
  211. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/def_method.result +0 -0
  212. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/escape_example.result +0 -0
  213. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example.ec +0 -0
  214. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example.ejs +0 -0
  215. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example.eperl +0 -0
  216. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example.ephp +0 -0
  217. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example.eruby +0 -0
  218. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example.escheme +0 -0
  219. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example1.eruby +0 -0
  220. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example1.rb +0 -0
  221. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example1.result +0 -0
  222. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example10.rb +0 -0
  223. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example10.result +0 -0
  224. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example10.xhtml +0 -0
  225. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example10_x.result +0 -0
  226. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example11.php +0 -0
  227. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example11.result +0 -0
  228. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example11.rhtml +0 -0
  229. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example11_C.result +0 -0
  230. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example11_N.result +0 -0
  231. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example11_U.result +0 -0
  232. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example11_php.result +0 -0
  233. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example1_x.result +0 -0
  234. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example2.eruby +0 -0
  235. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example2.rb +0 -0
  236. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example2.result +0 -0
  237. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example2_trim.result +0 -0
  238. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example2_x.result +0 -0
  239. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example3.eruby +0 -0
  240. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example3.rb +0 -0
  241. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example31.result +0 -0
  242. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example32.result +0 -0
  243. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example3_e.result +0 -0
  244. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example4.eruby +0 -0
  245. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example4.rb +0 -0
  246. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example4.result +0 -0
  247. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example4_x.result +0 -0
  248. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example5.eruby +0 -0
  249. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example5.rb +0 -0
  250. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example5.result +0 -0
  251. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example6.rb +0 -0
  252. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example6.result +0 -0
  253. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example7.eruby +0 -0
  254. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example71.result +0 -0
  255. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example72.result +0 -0
  256. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example8.eruby +0 -0
  257. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example8_ruby.result +0 -0
  258. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example8_yaml.result +0 -0
  259. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example9.eruby +0 -0
  260. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example9.rb +0 -0
  261. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example9.result +0 -0
  262. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example91.result +0 -0
  263. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example92.result +0 -0
  264. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example_c.result +0 -0
  265. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example_java.result +0 -0
  266. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example_js.result +0 -0
  267. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example_perl.result +0 -0
  268. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example_php.result +0 -0
  269. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example_scheme.result +0 -0
  270. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/example_scheme_display.result +0 -0
  271. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/fasteruby.rb +0 -0
  272. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/fasteruby.result +0 -0
  273. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/fasteruby.rhtml +0 -0
  274. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/headerfooter-example.eruby +0 -0
  275. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/headerfooter-example2.rb +0 -0
  276. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/headerfooter-example2.rhtml +0 -0
  277. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/headerfooter_example.result +0 -0
  278. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/headerfooter_example2.result +0 -0
  279. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/interpolation_example.result +0 -0
  280. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/main_program1.rb +0 -0
  281. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/main_program1.result +0 -0
  282. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/main_program2.rb +0 -0
  283. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/main_program2.result +0 -0
  284. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/nocode-example.eruby +0 -0
  285. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/nocode-php.result +0 -0
  286. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/nocode_example.result +0 -0
  287. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/normal-eruby-test.eruby +0 -0
  288. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/normal_eruby_test.result +0 -0
  289. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/notext-example.eruby +0 -0
  290. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/notext-example.php +0 -0
  291. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/notext-php.result +0 -0
  292. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/notext_example.result +0 -0
  293. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/percentline-example.rhtml +0 -0
  294. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/percentline_example.result +0 -0
  295. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/printenable_example.result +0 -0
  296. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/printenabled-example.eruby +0 -0
  297. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/printenabled-example.rb +0 -0
  298. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/printstatement_example.result +0 -0
  299. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/simplify_example.result +0 -0
  300. data/gems/gems/erubis-2.6.5/test/data/users-guide/stderr.log +3 -0
  301. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/stdout_exmple.result +0 -0
  302. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/stringbuffer_example.result +0 -0
  303. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/tail_260.result +0 -0
  304. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/tailnewline.rhtml +0 -0
  305. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/template1.rhtml +0 -0
  306. data/{vendor/erubis → gems/gems/erubis-2.6.5}/test/data/users-guide/template2.rhtml +0 -0
  307. data/gems/gems/erubis-2.6.5/test/test-engines.rb +369 -0
  308. data/gems/gems/erubis-2.6.5/test/test-enhancers.rb +570 -0
  309. data/gems/gems/erubis-2.6.5/test/test-erubis.rb +883 -0
  310. data/gems/gems/erubis-2.6.5/test/test-main.rb +721 -0
  311. data/gems/gems/erubis-2.6.5/test/test-users-guide.rb +57 -0
  312. data/gems/gems/erubis-2.6.5/test/test.rb +29 -0
  313. data/gems/gems/erubis-2.6.5/test/testutil.rb +96 -0
  314. data/gems/gems/haml-2.2.16/CONTRIBUTING +4 -0
  315. data/gems/gems/haml-2.2.16/MIT-LICENSE +20 -0
  316. data/gems/gems/haml-2.2.16/README.md +357 -0
  317. data/gems/gems/haml-2.2.16/REVISION +1 -0
  318. data/gems/gems/haml-2.2.16/Rakefile +392 -0
  319. data/gems/gems/haml-2.2.16/VERSION +1 -0
  320. data/gems/gems/haml-2.2.16/VERSION_NAME +1 -0
  321. data/gems/gems/haml-2.2.16/bin/css2sass +7 -0
  322. data/gems/gems/haml-2.2.16/bin/haml +9 -0
  323. data/gems/gems/haml-2.2.16/bin/html2haml +7 -0
  324. data/gems/gems/haml-2.2.16/bin/sass +8 -0
  325. data/gems/gems/haml-2.2.16/extra/haml-mode.el +662 -0
  326. data/gems/gems/haml-2.2.16/extra/sass-mode.el +206 -0
  327. data/gems/gems/haml-2.2.16/extra/update_watch.rb +13 -0
  328. data/gems/gems/haml-2.2.16/init.rb +16 -0
  329. data/gems/gems/haml-2.2.16/lib/haml/buffer.rb +302 -0
  330. data/gems/gems/haml-2.2.16/lib/haml/engine.rb +299 -0
  331. data/gems/gems/haml-2.2.16/lib/haml/error.rb +22 -0
  332. data/gems/gems/haml-2.2.16/lib/haml/exec.rb +459 -0
  333. data/gems/gems/haml-2.2.16/lib/haml/filters.rb +341 -0
  334. data/gems/gems/haml-2.2.16/lib/haml/helpers/action_view_extensions.rb +55 -0
  335. data/gems/gems/haml-2.2.16/lib/haml/helpers/action_view_mods.rb +177 -0
  336. data/gems/gems/haml-2.2.16/lib/haml/helpers/xss_mods.rb +95 -0
  337. data/gems/gems/haml-2.2.16/lib/haml/helpers.rb +563 -0
  338. data/gems/gems/haml-2.2.16/lib/haml/html.rb +259 -0
  339. data/gems/gems/haml-2.2.16/lib/haml/precompiler.rb +1043 -0
  340. data/gems/gems/haml-2.2.16/lib/haml/shared.rb +78 -0
  341. data/gems/gems/haml-2.2.16/lib/haml/template/patch.rb +58 -0
  342. data/gems/gems/haml-2.2.16/lib/haml/template/plugin.rb +75 -0
  343. data/gems/gems/haml-2.2.16/lib/haml/template.rb +85 -0
  344. data/gems/gems/haml-2.2.16/lib/haml/util.rb +289 -0
  345. data/gems/gems/haml-2.2.16/lib/haml/version.rb +64 -0
  346. data/gems/gems/haml-2.2.16/lib/haml.rb +40 -0
  347. data/gems/gems/haml-2.2.16/lib/sass/css.rb +404 -0
  348. data/gems/gems/haml-2.2.16/lib/sass/engine.rb +475 -0
  349. data/gems/gems/haml-2.2.16/lib/sass/environment.rb +79 -0
  350. data/gems/gems/haml-2.2.16/lib/sass/error.rb +57 -0
  351. data/gems/gems/haml-2.2.16/lib/sass/files.rb +140 -0
  352. data/gems/gems/haml-2.2.16/lib/sass/plugin/merb.rb +49 -0
  353. data/gems/gems/haml-2.2.16/lib/sass/plugin/rack.rb +65 -0
  354. data/gems/gems/haml-2.2.16/lib/sass/plugin/rails.rb +24 -0
  355. data/gems/gems/haml-2.2.16/lib/sass/plugin.rb +225 -0
  356. data/gems/gems/haml-2.2.16/lib/sass/repl.rb +58 -0
  357. data/gems/gems/haml-2.2.16/lib/sass/script/bool.rb +17 -0
  358. data/gems/gems/haml-2.2.16/lib/sass/script/color.rb +220 -0
  359. data/gems/gems/haml-2.2.16/lib/sass/script/funcall.rb +50 -0
  360. data/gems/gems/haml-2.2.16/lib/sass/script/functions.rb +252 -0
  361. data/gems/gems/haml-2.2.16/lib/sass/script/lexer.rb +191 -0
  362. data/gems/gems/haml-2.2.16/lib/sass/script/literal.rb +177 -0
  363. data/gems/gems/haml-2.2.16/lib/sass/script/node.rb +14 -0
  364. data/gems/gems/haml-2.2.16/lib/sass/script/number.rb +381 -0
  365. data/gems/gems/haml-2.2.16/lib/sass/script/operation.rb +45 -0
  366. data/gems/gems/haml-2.2.16/lib/sass/script/parser.rb +222 -0
  367. data/gems/gems/haml-2.2.16/lib/sass/script/string.rb +12 -0
  368. data/gems/gems/haml-2.2.16/lib/sass/script/unary_operation.rb +34 -0
  369. data/gems/gems/haml-2.2.16/lib/sass/script/variable.rb +31 -0
  370. data/gems/gems/haml-2.2.16/lib/sass/script.rb +59 -0
  371. data/gems/gems/haml-2.2.16/lib/sass/tree/comment_node.rb +84 -0
  372. data/gems/gems/haml-2.2.16/lib/sass/tree/debug_node.rb +30 -0
  373. data/gems/gems/haml-2.2.16/lib/sass/tree/directive_node.rb +68 -0
  374. data/gems/gems/haml-2.2.16/lib/sass/tree/for_node.rb +48 -0
  375. data/gems/gems/haml-2.2.16/lib/sass/tree/if_node.rb +54 -0
  376. data/gems/gems/haml-2.2.16/lib/sass/tree/import_node.rb +65 -0
  377. data/gems/gems/haml-2.2.16/lib/sass/tree/mixin_def_node.rb +29 -0
  378. data/gems/gems/haml-2.2.16/lib/sass/tree/mixin_node.rb +48 -0
  379. data/gems/gems/haml-2.2.16/lib/sass/tree/node.rb +251 -0
  380. data/gems/gems/haml-2.2.16/lib/sass/tree/prop_node.rb +121 -0
  381. data/gems/gems/haml-2.2.16/lib/sass/tree/rule_node.rb +223 -0
  382. data/gems/gems/haml-2.2.16/lib/sass/tree/variable_node.rb +34 -0
  383. data/gems/gems/haml-2.2.16/lib/sass/tree/while_node.rb +31 -0
  384. data/gems/gems/haml-2.2.16/lib/sass.rb +24 -0
  385. data/gems/gems/haml-2.2.16/rails/init.rb +1 -0
  386. data/gems/gems/haml-2.2.16/test/benchmark.rb +99 -0
  387. data/gems/gems/haml-2.2.16/test/haml/engine_test.rb +1247 -0
  388. data/gems/gems/haml-2.2.16/test/haml/helper_test.rb +282 -0
  389. data/gems/gems/haml-2.2.16/test/haml/html2haml_test.rb +139 -0
  390. data/gems/gems/haml-2.2.16/test/haml/markaby/standard.mab +52 -0
  391. data/gems/gems/haml-2.2.16/test/haml/mocks/article.rb +6 -0
  392. data/gems/gems/haml-2.2.16/test/haml/results/content_for_layout.xhtml +12 -0
  393. data/gems/gems/haml-2.2.16/test/haml/results/eval_suppressed.xhtml +9 -0
  394. data/gems/gems/haml-2.2.16/test/haml/results/filters.xhtml +62 -0
  395. data/gems/gems/haml-2.2.16/test/haml/results/helpers.xhtml +93 -0
  396. data/gems/gems/haml-2.2.16/test/haml/results/helpful.xhtml +10 -0
  397. data/gems/gems/haml-2.2.16/test/haml/results/just_stuff.xhtml +68 -0
  398. data/gems/gems/haml-2.2.16/test/haml/results/list.xhtml +12 -0
  399. data/gems/gems/haml-2.2.16/test/haml/results/nuke_inner_whitespace.xhtml +40 -0
  400. data/gems/gems/haml-2.2.16/test/haml/results/nuke_outer_whitespace.xhtml +148 -0
  401. data/gems/gems/haml-2.2.16/test/haml/results/original_engine.xhtml +20 -0
  402. data/gems/gems/haml-2.2.16/test/haml/results/partial_layout.xhtml +5 -0
  403. data/gems/gems/haml-2.2.16/test/haml/results/partials.xhtml +21 -0
  404. data/gems/gems/haml-2.2.16/test/haml/results/render_layout.xhtml +3 -0
  405. data/gems/gems/haml-2.2.16/test/haml/results/silent_script.xhtml +74 -0
  406. data/gems/gems/haml-2.2.16/test/haml/results/standard.xhtml +162 -0
  407. data/gems/gems/haml-2.2.16/test/haml/results/tag_parsing.xhtml +23 -0
  408. data/gems/gems/haml-2.2.16/test/haml/results/very_basic.xhtml +5 -0
  409. data/gems/gems/haml-2.2.16/test/haml/results/whitespace_handling.xhtml +89 -0
  410. data/gems/gems/haml-2.2.16/test/haml/rhtml/_av_partial_1.rhtml +12 -0
  411. data/gems/gems/haml-2.2.16/test/haml/rhtml/_av_partial_2.rhtml +8 -0
  412. data/gems/gems/haml-2.2.16/test/haml/rhtml/action_view.rhtml +62 -0
  413. data/gems/gems/haml-2.2.16/test/haml/rhtml/standard.rhtml +54 -0
  414. data/gems/gems/haml-2.2.16/test/haml/spec/README.md +97 -0
  415. data/gems/gems/haml-2.2.16/test/haml/spec/lua_haml_spec.lua +30 -0
  416. data/gems/gems/haml-2.2.16/test/haml/spec/ruby_haml_test.rb +19 -0
  417. data/gems/gems/haml-2.2.16/test/haml/spec/tests.json +488 -0
  418. data/gems/gems/haml-2.2.16/test/haml/template_test.rb +296 -0
  419. data/gems/gems/haml-2.2.16/test/haml/templates/_av_partial_1.haml +9 -0
  420. data/gems/gems/haml-2.2.16/test/haml/templates/_av_partial_1_ugly.haml +9 -0
  421. data/gems/gems/haml-2.2.16/test/haml/templates/_av_partial_2.haml +5 -0
  422. data/gems/gems/haml-2.2.16/test/haml/templates/_av_partial_2_ugly.haml +5 -0
  423. data/gems/gems/haml-2.2.16/test/haml/templates/_layout.erb +3 -0
  424. data/gems/gems/haml-2.2.16/test/haml/templates/_layout_for_partial.haml +3 -0
  425. data/gems/gems/haml-2.2.16/test/haml/templates/_partial.haml +8 -0
  426. data/gems/gems/haml-2.2.16/test/haml/templates/_text_area.haml +3 -0
  427. data/gems/gems/haml-2.2.16/test/haml/templates/action_view.haml +47 -0
  428. data/gems/gems/haml-2.2.16/test/haml/templates/action_view_ugly.haml +47 -0
  429. data/gems/gems/haml-2.2.16/test/haml/templates/breakage.haml +8 -0
  430. data/gems/gems/haml-2.2.16/test/haml/templates/content_for_layout.haml +8 -0
  431. data/gems/gems/haml-2.2.16/test/haml/templates/eval_suppressed.haml +11 -0
  432. data/gems/gems/haml-2.2.16/test/haml/templates/filters.haml +66 -0
  433. data/gems/gems/haml-2.2.16/test/haml/templates/helpers.haml +95 -0
  434. data/gems/gems/haml-2.2.16/test/haml/templates/helpful.haml +11 -0
  435. data/gems/gems/haml-2.2.16/test/haml/templates/just_stuff.haml +83 -0
  436. data/gems/gems/haml-2.2.16/test/haml/templates/list.haml +12 -0
  437. data/gems/gems/haml-2.2.16/test/haml/templates/nuke_inner_whitespace.haml +32 -0
  438. data/gems/gems/haml-2.2.16/test/haml/templates/nuke_outer_whitespace.haml +144 -0
  439. data/gems/gems/haml-2.2.16/test/haml/templates/original_engine.haml +17 -0
  440. data/gems/gems/haml-2.2.16/test/haml/templates/partial_layout.haml +3 -0
  441. data/gems/gems/haml-2.2.16/test/haml/templates/partialize.haml +1 -0
  442. data/gems/gems/haml-2.2.16/test/haml/templates/partials.haml +12 -0
  443. data/gems/gems/haml-2.2.16/test/haml/templates/render_layout.haml +2 -0
  444. data/gems/gems/haml-2.2.16/test/haml/templates/silent_script.haml +40 -0
  445. data/gems/gems/haml-2.2.16/test/haml/templates/standard.haml +42 -0
  446. data/gems/gems/haml-2.2.16/test/haml/templates/standard_ugly.haml +42 -0
  447. data/gems/gems/haml-2.2.16/test/haml/templates/tag_parsing.haml +21 -0
  448. data/gems/gems/haml-2.2.16/test/haml/templates/very_basic.haml +4 -0
  449. data/gems/gems/haml-2.2.16/test/haml/templates/whitespace_handling.haml +87 -0
  450. data/gems/gems/haml-2.2.16/test/haml/util_test.rb +107 -0
  451. data/gems/gems/haml-2.2.16/test/linked_rails.rb +21 -0
  452. data/gems/gems/haml-2.2.16/test/sass/css2sass_test.rb +251 -0
  453. data/gems/gems/haml-2.2.16/test/sass/engine_test.rb +914 -0
  454. data/gems/gems/haml-2.2.16/test/sass/functions_test.rb +173 -0
  455. data/gems/gems/haml-2.2.16/test/sass/more_results/more1.css +9 -0
  456. data/gems/gems/haml-2.2.16/test/sass/more_results/more1_with_line_comments.css +26 -0
  457. data/gems/gems/haml-2.2.16/test/sass/more_results/more_import.css +29 -0
  458. data/gems/gems/haml-2.2.16/test/sass/more_templates/_more_partial.sass +2 -0
  459. data/gems/gems/haml-2.2.16/test/sass/more_templates/more1.sass +23 -0
  460. data/gems/gems/haml-2.2.16/test/sass/more_templates/more_import.sass +11 -0
  461. data/gems/gems/haml-2.2.16/test/sass/plugin_test.rb +222 -0
  462. data/gems/gems/haml-2.2.16/test/sass/results/alt.css +4 -0
  463. data/gems/gems/haml-2.2.16/test/sass/results/basic.css +9 -0
  464. data/gems/gems/haml-2.2.16/test/sass/results/compact.css +5 -0
  465. data/gems/gems/haml-2.2.16/test/sass/results/complex.css +87 -0
  466. data/gems/gems/haml-2.2.16/test/sass/results/compressed.css +1 -0
  467. data/gems/gems/haml-2.2.16/test/sass/results/expanded.css +19 -0
  468. data/gems/gems/haml-2.2.16/test/sass/results/import.css +29 -0
  469. data/gems/gems/haml-2.2.16/test/sass/results/line_numbers.css +49 -0
  470. data/gems/gems/haml-2.2.16/test/sass/results/mixins.css +95 -0
  471. data/gems/gems/haml-2.2.16/test/sass/results/multiline.css +24 -0
  472. data/gems/gems/haml-2.2.16/test/sass/results/nested.css +22 -0
  473. data/gems/gems/haml-2.2.16/test/sass/results/parent_ref.css +13 -0
  474. data/gems/gems/haml-2.2.16/test/sass/results/script.css +16 -0
  475. data/gems/gems/haml-2.2.16/test/sass/results/subdir/nested_subdir/nested_subdir.css +1 -0
  476. data/gems/gems/haml-2.2.16/test/sass/results/subdir/subdir.css +3 -0
  477. data/gems/gems/haml-2.2.16/test/sass/results/units.css +11 -0
  478. data/gems/gems/haml-2.2.16/test/sass/script_test.rb +267 -0
  479. data/gems/gems/haml-2.2.16/test/sass/templates/_partial.sass +2 -0
  480. data/gems/gems/haml-2.2.16/test/sass/templates/alt.sass +16 -0
  481. data/gems/gems/haml-2.2.16/test/sass/templates/basic.sass +23 -0
  482. data/gems/gems/haml-2.2.16/test/sass/templates/bork.sass +2 -0
  483. data/gems/gems/haml-2.2.16/test/sass/templates/bork2.sass +2 -0
  484. data/gems/gems/haml-2.2.16/test/sass/templates/compact.sass +17 -0
  485. data/gems/gems/haml-2.2.16/test/sass/templates/complex.sass +307 -0
  486. data/gems/gems/haml-2.2.16/test/sass/templates/compressed.sass +15 -0
  487. data/gems/gems/haml-2.2.16/test/sass/templates/expanded.sass +17 -0
  488. data/gems/gems/haml-2.2.16/test/sass/templates/import.sass +11 -0
  489. data/gems/gems/haml-2.2.16/test/sass/templates/importee.sass +19 -0
  490. data/gems/gems/haml-2.2.16/test/sass/templates/line_numbers.sass +13 -0
  491. data/gems/gems/haml-2.2.16/test/sass/templates/mixins.sass +76 -0
  492. data/gems/gems/haml-2.2.16/test/sass/templates/multiline.sass +20 -0
  493. data/gems/gems/haml-2.2.16/test/sass/templates/nested.sass +25 -0
  494. data/gems/gems/haml-2.2.16/test/sass/templates/parent_ref.sass +25 -0
  495. data/gems/gems/haml-2.2.16/test/sass/templates/script.sass +101 -0
  496. data/gems/gems/haml-2.2.16/test/sass/templates/subdir/nested_subdir/_nested_partial.sass +2 -0
  497. data/gems/gems/haml-2.2.16/test/sass/templates/subdir/nested_subdir/nested_subdir.sass +3 -0
  498. data/gems/gems/haml-2.2.16/test/sass/templates/subdir/subdir.sass +6 -0
  499. data/gems/gems/haml-2.2.16/test/sass/templates/units.sass +11 -0
  500. data/gems/gems/haml-2.2.16/test/test_helper.rb +35 -0
  501. data/gems/gems/rspec-1.2.9/History.rdoc +1496 -0
  502. data/{vendor/rspec → gems/gems/rspec-1.2.9}/License.txt +0 -0
  503. data/gems/gems/rspec-1.2.9/Manifest.txt +377 -0
  504. data/{vendor/rspec → gems/gems/rspec-1.2.9}/README.rdoc +0 -0
  505. data/{vendor/rspec → gems/gems/rspec-1.2.9}/Rakefile +0 -0
  506. data/{vendor/rspec → gems/gems/rspec-1.2.9}/Ruby1.9.rdoc +0 -0
  507. data/{vendor/rspec → gems/gems/rspec-1.2.9}/TODO.txt +0 -0
  508. data/{vendor/rspec → gems/gems/rspec-1.2.9}/Upgrade.rdoc +0 -0
  509. data/{vendor/rspec → gems/gems/rspec-1.2.9}/bin/autospec +0 -0
  510. data/{vendor/rspec → gems/gems/rspec-1.2.9}/bin/spec +0 -0
  511. data/{vendor/rspec → gems/gems/rspec-1.2.9}/cucumber.yml +0 -0
  512. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/failing/README.txt +0 -0
  513. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/failing/diffing_spec.rb +0 -0
  514. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/failing/failing_implicit_docstrings_example.rb +0 -0
  515. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/failing/failure_in_after.rb +0 -0
  516. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/failing/failure_in_before.rb +0 -0
  517. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/failing/mocking_example.rb +0 -0
  518. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/failing/mocking_with_flexmock.rb +0 -0
  519. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/failing/mocking_with_mocha.rb +0 -0
  520. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/failing/mocking_with_rr.rb +0 -0
  521. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/failing/partial_mock_example.rb +0 -0
  522. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/failing/pending_example.rb +0 -0
  523. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/failing/predicate_example.rb +0 -0
  524. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/failing/raising_example.rb +0 -0
  525. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/failing/syntax_error_example.rb +0 -0
  526. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/failing/team_spec.rb +0 -0
  527. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/failing/timeout_behaviour.rb +0 -0
  528. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/passing/custom_formatter.rb +0 -0
  529. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/passing/custom_matchers.rb +0 -0
  530. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/passing/dynamic_spec.rb +0 -0
  531. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/passing/file_accessor.rb +0 -0
  532. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/passing/file_accessor_spec.rb +0 -0
  533. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/passing/filtered_formatter.rb +0 -0
  534. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/passing/filtered_formatter_example.rb +0 -0
  535. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/passing/greeter_spec.rb +0 -0
  536. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/passing/helper_method_example.rb +0 -0
  537. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/passing/implicit_docstrings_example.rb +0 -0
  538. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/passing/io_processor.rb +0 -0
  539. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/passing/io_processor_spec.rb +0 -0
  540. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/passing/mocking_example.rb +0 -0
  541. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/passing/multi_threaded_example_group_runner.rb +0 -0
  542. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/passing/nested_classes_example.rb +0 -0
  543. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/passing/options_example.rb +0 -0
  544. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/passing/options_formatter.rb +0 -0
  545. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/passing/partial_mock_example.rb +0 -0
  546. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/passing/pending_example.rb +0 -0
  547. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/passing/predicate_example.rb +0 -0
  548. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/passing/shared_example_group_example.rb +0 -0
  549. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/passing/shared_stack_examples.rb +0 -0
  550. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/passing/simple_matcher_example.rb +0 -0
  551. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/passing/stack.rb +0 -0
  552. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/passing/stack_spec.rb +0 -0
  553. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/passing/stack_spec_with_nested_example_groups.rb +0 -0
  554. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/passing/stubbing_example.rb +0 -0
  555. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/passing/yielding_example.rb +0 -0
  556. data/{vendor/rspec → gems/gems/rspec-1.2.9}/examples/ruby1.9.compatibility/access_to_constants_spec.rb +0 -0
  557. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/before_and_after_blocks/before_and_after_blocks.feature +0 -0
  558. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/command_line/line_number_option.feature +0 -0
  559. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/command_line/line_number_option_with_example_with_no_name.feature +0 -0
  560. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/example_groups/define_example_attribute.feature +0 -0
  561. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/example_groups/example_group_with_should_methods.feature +0 -0
  562. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/example_groups/implicit_docstrings.feature +0 -0
  563. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/example_groups/nested_groups.feature +0 -0
  564. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/expectations/customized_message.feature +0 -0
  565. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/expectations/expect_change.feature +0 -0
  566. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/expectations/expect_error.feature +0 -0
  567. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/extensions/custom_example_group.feature +0 -0
  568. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/formatters/custom_formatter.feature +0 -0
  569. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/interop/examples_and_tests_together.feature +0 -0
  570. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/interop/rspec_output.feature +0 -0
  571. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/interop/test_but_not_test_unit.feature +0 -0
  572. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/interop/test_case_with_should_methods.feature +0 -0
  573. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/load_paths/add_lib_to_load_path.feature +0 -0
  574. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/load_paths/add_spec_to_load_path.feature +0 -0
  575. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/matchers/define_diffable_matcher.feature +0 -0
  576. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/matchers/define_matcher.feature +0 -0
  577. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/matchers/define_matcher_outside_rspec.feature +0 -0
  578. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/matchers/define_matcher_with_fluent_interface.feature +0 -0
  579. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/matchers/define_wrapped_matcher.feature +0 -0
  580. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/mock_framework_integration/use_flexmock.feature +0 -0
  581. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/mock_framework_integration/use_mocha.feature +0 -0
  582. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/mock_framework_integration/use_rr.feature +0 -0
  583. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/mocks/mix_stubs_and_mocks.feature +0 -0
  584. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/mocks/stub_implementation.feature +0 -0
  585. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/pending/pending_examples.feature +0 -0
  586. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/runner/specify_line_number.feature +0 -0
  587. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/spec_helper/spec_helper.feature +0 -0
  588. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/step_definitions/running_rspec_steps.rb +0 -0
  589. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/subject/explicit_subject.feature +0 -0
  590. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/subject/implicit_subject.feature +0 -0
  591. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/support/env.rb +0 -0
  592. data/{vendor/rspec → gems/gems/rspec-1.2.9}/features/support/matchers/smart_match.rb +0 -0
  593. data/{vendor/rspec → gems/gems/rspec-1.2.9}/init.rb +0 -0
  594. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/autotest/discover.rb +0 -0
  595. data/gems/gems/rspec-1.2.9/lib/autotest/rspec.rb +47 -0
  596. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/adapters/mock_frameworks/flexmock.rb +0 -0
  597. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/adapters/mock_frameworks/mocha.rb +0 -0
  598. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/adapters/mock_frameworks/rr.rb +0 -0
  599. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/adapters/mock_frameworks/rspec.rb +0 -0
  600. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/autorun.rb +0 -0
  601. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/deprecation.rb +0 -0
  602. data/gems/gems/rspec-1.2.9/lib/spec/dsl/main.rb +92 -0
  603. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/dsl.rb +0 -0
  604. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/example/args_and_options.rb +0 -0
  605. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/example/before_and_after_hooks.rb +0 -0
  606. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/example/errors.rb +0 -0
  607. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/example/example_group.rb +0 -0
  608. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/example/example_group_factory.rb +0 -0
  609. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/example/example_group_hierarchy.rb +0 -0
  610. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/example/example_group_methods.rb +0 -0
  611. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/example/example_group_proxy.rb +0 -0
  612. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/example/example_matcher.rb +0 -0
  613. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/example/example_methods.rb +0 -0
  614. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/example/example_proxy.rb +0 -0
  615. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/example/module_reopening_fix.rb +0 -0
  616. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/example/pending.rb +0 -0
  617. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/example/predicate_matchers.rb +0 -0
  618. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/example/shared_example_group.rb +0 -0
  619. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/example/subject.rb +0 -0
  620. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/example.rb +0 -0
  621. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/expectations/errors.rb +0 -0
  622. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/expectations/extensions/kernel.rb +0 -0
  623. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/expectations/extensions.rb +0 -0
  624. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/expectations/fail_with.rb +0 -0
  625. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/expectations/handler.rb +0 -0
  626. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/expectations.rb +0 -0
  627. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/interop/test/unit/autorunner.rb +0 -0
  628. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/interop/test/unit/testcase.rb +0 -0
  629. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/interop/test/unit/testresult.rb +0 -0
  630. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/interop/test/unit/testsuite_adapter.rb +0 -0
  631. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/interop/test/unit/ui/console/testrunner.rb +0 -0
  632. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/interop/test.rb +0 -0
  633. data/gems/gems/rspec-1.2.9/lib/spec/matchers/be.rb +210 -0
  634. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/matchers/be_close.rb +0 -0
  635. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/matchers/be_instance_of.rb +0 -0
  636. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/matchers/be_kind_of.rb +0 -0
  637. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/matchers/change.rb +0 -0
  638. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/matchers/compatibility.rb +0 -0
  639. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/matchers/dsl.rb +0 -0
  640. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/matchers/eql.rb +0 -0
  641. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/matchers/equal.rb +0 -0
  642. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/matchers/errors.rb +0 -0
  643. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/matchers/exist.rb +0 -0
  644. data/{vendor/rspec/lib/spec → gems/gems/rspec-1.2.9/lib/spec/matchers}/extensions/instance_exec.rb +0 -0
  645. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/matchers/generated_descriptions.rb +0 -0
  646. data/gems/gems/rspec-1.2.9/lib/spec/matchers/has.rb +35 -0
  647. data/gems/gems/rspec-1.2.9/lib/spec/matchers/have.rb +151 -0
  648. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/matchers/include.rb +0 -0
  649. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/matchers/match.rb +0 -0
  650. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/matchers/match_array.rb +0 -0
  651. data/gems/gems/rspec-1.2.9/lib/spec/matchers/matcher.rb +87 -0
  652. data/gems/gems/rspec-1.2.9/lib/spec/matchers/method_missing.rb +9 -0
  653. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/matchers/operator_matcher.rb +0 -0
  654. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/matchers/pretty.rb +0 -0
  655. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/matchers/raise_error.rb +0 -0
  656. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/matchers/respond_to.rb +0 -0
  657. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/matchers/satisfy.rb +0 -0
  658. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/matchers/simple_matcher.rb +0 -0
  659. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/matchers/throw_symbol.rb +0 -0
  660. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/matchers/wrap_expectation.rb +0 -0
  661. data/gems/gems/rspec-1.2.9/lib/spec/matchers.rb +195 -0
  662. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/mocks/argument_expectation.rb +0 -0
  663. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/mocks/argument_matchers.rb +0 -0
  664. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/mocks/error_generator.rb +0 -0
  665. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/mocks/errors.rb +0 -0
  666. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/mocks/example_methods.rb +0 -0
  667. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/mocks/extensions/object.rb +0 -0
  668. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/mocks/extensions.rb +0 -0
  669. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/mocks/framework.rb +0 -0
  670. data/gems/gems/rspec-1.2.9/lib/spec/mocks/message_expectation.rb +329 -0
  671. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/mocks/methods.rb +0 -0
  672. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/mocks/mock.rb +0 -0
  673. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/mocks/order_group.rb +0 -0
  674. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/mocks/proxy.rb +0 -0
  675. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/mocks/space.rb +0 -0
  676. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/mocks.rb +0 -0
  677. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/rake/spectask.rb +0 -0
  678. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/rake/verify_rcov.rb +0 -0
  679. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/ruby.rb +0 -0
  680. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/runner/backtrace_tweaker.rb +0 -0
  681. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/runner/class_and_arguments_parser.rb +0 -0
  682. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/runner/command_line.rb +0 -0
  683. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/runner/configuration.rb +0 -0
  684. data/gems/gems/rspec-1.2.9/lib/spec/runner/differs/default.rb +93 -0
  685. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/runner/differs/load-diff-lcs.rb +0 -0
  686. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/runner/drb_command_line.rb +0 -0
  687. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/runner/example_group_runner.rb +0 -0
  688. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/runner/extensions/kernel.rb +0 -0
  689. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/runner/formatter/base_formatter.rb +0 -0
  690. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/runner/formatter/base_text_formatter.rb +0 -0
  691. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/runner/formatter/failing_example_groups_formatter.rb +0 -0
  692. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/runner/formatter/failing_examples_formatter.rb +0 -0
  693. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/runner/formatter/html_formatter.rb +0 -0
  694. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/runner/formatter/nested_text_formatter.rb +0 -0
  695. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/runner/formatter/no_op_method_missing.rb +0 -0
  696. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/runner/formatter/profile_formatter.rb +0 -0
  697. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/runner/formatter/progress_bar_formatter.rb +0 -0
  698. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/runner/formatter/silent_formatter.rb +0 -0
  699. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/runner/formatter/snippet_extractor.rb +0 -0
  700. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/runner/formatter/specdoc_formatter.rb +0 -0
  701. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/runner/formatter/text_mate_formatter.rb +0 -0
  702. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/runner/heckle_runner.rb +0 -0
  703. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/runner/heckle_runner_unsupported.rb +0 -0
  704. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/runner/line_number_query.rb +0 -0
  705. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/runner/option_parser.rb +0 -0
  706. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/runner/options.rb +0 -0
  707. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/runner/reporter.rb +0 -0
  708. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/runner.rb +0 -0
  709. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/stubs/cucumber.rb +0 -0
  710. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/test/unit.rb +0 -0
  711. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec/version.rb +0 -0
  712. data/{vendor/rspec → gems/gems/rspec-1.2.9}/lib/spec.rb +0 -0
  713. data/{vendor/rspec → gems/gems/rspec-1.2.9}/resources/helpers/cmdline.rb +0 -0
  714. data/{vendor/rspec → gems/gems/rspec-1.2.9}/resources/rake/examples.rake +0 -0
  715. data/{vendor/rspec → gems/gems/rspec-1.2.9}/resources/rake/examples_with_rcov.rake +0 -0
  716. data/{vendor/rspec → gems/gems/rspec-1.2.9}/resources/rake/failing_examples_with_html.rake +0 -0
  717. data/{vendor/rspec → gems/gems/rspec-1.2.9}/resources/rake/verify_rcov.rake +0 -0
  718. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/README.jruby +0 -0
  719. data/gems/gems/rspec-1.2.9/spec/autotest/autotest_helper.rb +8 -0
  720. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/autotest/autotest_matchers.rb +0 -0
  721. data/gems/gems/rspec-1.2.9/spec/autotest/discover_spec.rb +8 -0
  722. data/gems/gems/rspec-1.2.9/spec/autotest/failed_results_re_spec.rb +31 -0
  723. data/gems/gems/rspec-1.2.9/spec/autotest/rspec_spec.rb +111 -0
  724. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/ruby_forker.rb +0 -0
  725. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/dsl/main_spec.rb +0 -0
  726. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/example/example_group_class_definition_spec.rb +0 -0
  727. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/example/example_group_factory_spec.rb +0 -0
  728. data/gems/gems/rspec-1.2.9/spec/spec/example/example_group_methods_spec.rb +758 -0
  729. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/example/example_group_proxy_spec.rb +0 -0
  730. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/example/example_group_spec.rb +0 -0
  731. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/example/example_matcher_spec.rb +0 -0
  732. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/example/example_methods_spec.rb +0 -0
  733. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/example/example_proxy_spec.rb +0 -0
  734. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/example/helper_method_spec.rb +0 -0
  735. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/example/nested_example_group_spec.rb +0 -0
  736. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/example/pending_module_spec.rb +0 -0
  737. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/example/predicate_matcher_spec.rb +0 -0
  738. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/example/shared_example_group_spec.rb +0 -0
  739. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/example/subclassing_example_group_spec.rb +0 -0
  740. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/example/subject_spec.rb +0 -0
  741. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/expectations/differs/default_spec.rb +0 -0
  742. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/expectations/extensions/kernel_spec.rb +0 -0
  743. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/expectations/fail_with_spec.rb +0 -0
  744. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/expectations/handler_spec.rb +0 -0
  745. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/expectations/wrap_expectation_spec.rb +0 -0
  746. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/interop/test/unit/resources/spec_that_fails.rb +0 -0
  747. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/interop/test/unit/resources/spec_that_passes.rb +0 -0
  748. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/interop/test/unit/resources/spec_with_errors.rb +0 -0
  749. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +0 -0
  750. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +0 -0
  751. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +0 -0
  752. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +0 -0
  753. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb +0 -0
  754. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +0 -0
  755. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/interop/test/unit/spec_spec.rb +0 -0
  756. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/interop/test/unit/test_unit_spec_helper.rb +0 -0
  757. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/interop/test/unit/testcase_spec.rb +0 -0
  758. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +0 -0
  759. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/matchers/be_close_spec.rb +0 -0
  760. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/matchers/be_instance_of_spec.rb +0 -0
  761. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/matchers/be_kind_of_spec.rb +0 -0
  762. data/gems/gems/rspec-1.2.9/spec/spec/matchers/be_spec.rb +311 -0
  763. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/matchers/change_spec.rb +0 -0
  764. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/matchers/compatibility_spec.rb +0 -0
  765. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/matchers/description_generation_spec.rb +0 -0
  766. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/matchers/dsl_spec.rb +0 -0
  767. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/matchers/eql_spec.rb +0 -0
  768. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/matchers/equal_spec.rb +0 -0
  769. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/matchers/exist_spec.rb +0 -0
  770. data/gems/gems/rspec-1.2.9/spec/spec/matchers/has_spec.rb +81 -0
  771. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/matchers/have_spec.rb +0 -0
  772. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/matchers/include_spec.rb +0 -0
  773. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/matchers/match_array_spec.rb +0 -0
  774. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/matchers/match_spec.rb +0 -0
  775. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/matchers/matcher_methods_spec.rb +0 -0
  776. data/gems/gems/rspec-1.2.9/spec/spec/matchers/matcher_spec.rb +228 -0
  777. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/matchers/matchers_spec.rb +0 -0
  778. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/matchers/operator_matcher_spec.rb +0 -0
  779. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/matchers/raise_error_spec.rb +0 -0
  780. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/matchers/respond_to_spec.rb +0 -0
  781. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/matchers/satisfy_spec.rb +0 -0
  782. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/matchers/simple_matcher_spec.rb +0 -0
  783. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/matchers/throw_symbol_spec.rb +0 -0
  784. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/any_number_of_times_spec.rb +0 -0
  785. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/argument_expectation_spec.rb +0 -0
  786. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/argument_matchers_spec.rb +0 -0
  787. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/at_least_spec.rb +0 -0
  788. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/at_most_spec.rb +0 -0
  789. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/bug_report_10260_spec.rb +0 -0
  790. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/bug_report_10263_spec.rb +0 -0
  791. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/bug_report_11545_spec.rb +0 -0
  792. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/bug_report_15719_spec.rb +0 -0
  793. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/bug_report_496_spec.rb +0 -0
  794. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/bug_report_600_spec.rb +0 -0
  795. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/bug_report_7611_spec.rb +0 -0
  796. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/bug_report_7805_spec.rb +0 -0
  797. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/bug_report_8165_spec.rb +0 -0
  798. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/bug_report_8302_spec.rb +0 -0
  799. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/bug_report_830_spec.rb +0 -0
  800. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/double_spec.rb +0 -0
  801. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/failing_argument_matchers_spec.rb +0 -0
  802. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/hash_including_matcher_spec.rb +0 -0
  803. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/hash_not_including_matcher_spec.rb +0 -0
  804. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/mock_ordering_spec.rb +0 -0
  805. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/mock_space_spec.rb +0 -0
  806. data/gems/gems/rspec-1.2.9/spec/spec/mocks/mock_spec.rb +594 -0
  807. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/multiple_return_value_spec.rb +0 -0
  808. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/nil_expectation_warning_spec.rb +0 -0
  809. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/null_object_mock_spec.rb +0 -0
  810. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/once_counts_spec.rb +0 -0
  811. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/options_hash_spec.rb +0 -0
  812. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/partial_mock_spec.rb +0 -0
  813. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +0 -0
  814. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/passing_argument_matchers_spec.rb +0 -0
  815. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/precise_counts_spec.rb +0 -0
  816. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/record_messages_spec.rb +0 -0
  817. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/stub_chain_spec.rb +0 -0
  818. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/stub_implementation_spec.rb +0 -0
  819. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/stub_spec.rb +0 -0
  820. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/stubbed_message_expectations_spec.rb +0 -0
  821. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/twice_counts_spec.rb +0 -0
  822. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/mocks/unstub_spec.rb +0 -0
  823. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/package/bin_spec_spec.rb +0 -0
  824. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/rake/spectask_spec.rb +0 -0
  825. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/class_and_argument_parser_spec.rb +0 -0
  826. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/command_line_spec.rb +0 -0
  827. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/configuration_spec.rb +0 -0
  828. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/drb_command_line_spec.rb +0 -0
  829. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/empty_file.txt +0 -0
  830. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/example_group_runner_spec.rb +0 -0
  831. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/examples.txt +0 -0
  832. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/failed.txt +0 -0
  833. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/formatter/base_formatter_spec.rb +0 -0
  834. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/formatter/base_text_formatter_spec.rb +0 -0
  835. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +0 -0
  836. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +0 -0
  837. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +0 -0
  838. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/formatter/html_formatted-1.8.6.html +0 -0
  839. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/formatter/html_formatted-1.8.7.html +0 -0
  840. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/formatter/html_formatted-1.9.1.html +0 -0
  841. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/formatter/html_formatter_spec.rb +0 -0
  842. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/formatter/nested_text_formatter_spec.rb +0 -0
  843. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/formatter/profile_formatter_spec.rb +0 -0
  844. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +0 -0
  845. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/formatter/snippet_extractor_spec.rb +0 -0
  846. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/formatter/specdoc_formatter_spec.rb +0 -0
  847. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html +0 -0
  848. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +0 -0
  849. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +0 -0
  850. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +0 -0
  851. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/formatter/text_mate_formatter_spec.rb +0 -0
  852. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/heckle_runner_spec.rb +0 -0
  853. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/heckler_spec.rb +0 -0
  854. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/line_number_query/line_number_query_fixture.rb +0 -0
  855. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/line_number_query_spec.rb +0 -0
  856. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +0 -0
  857. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/option_parser_spec.rb +0 -0
  858. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/options_spec.rb +0 -0
  859. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/output_one_time_fixture.rb +0 -0
  860. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/output_one_time_fixture_runner.rb +0 -0
  861. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/output_one_time_spec.rb +0 -0
  862. data/gems/gems/rspec-1.2.9/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +105 -0
  863. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/reporter_spec.rb +0 -0
  864. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/resources/a_bar.rb +0 -0
  865. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/resources/a_foo.rb +0 -0
  866. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/resources/a_spec.rb +0 -0
  867. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/resources/custom_example_group_runner.rb +0 -0
  868. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/resources/utf8_encoded.rb +0 -0
  869. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/spec.opts +0 -0
  870. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/spec_drb.opts +0 -0
  871. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner/spec_spaced.opts +0 -0
  872. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec/runner_spec.rb +0 -0
  873. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec.opts +0 -0
  874. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/spec_helper.rb +0 -0
  875. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/support/macros.rb +0 -0
  876. data/{vendor/rspec → gems/gems/rspec-1.2.9}/spec/support/spec_classes.rb +0 -0
  877. data/gems/specifications/abstract-1.0.0.gemspec +29 -0
  878. data/gems/specifications/erubis-2.6.5.gemspec +34 -0
  879. data/gems/specifications/haml-2.2.16.gemspec +45 -0
  880. data/gems/specifications/rspec-1.2.9.gemspec +58 -0
  881. data/lib/simple-templater/builder.rb +7 -7
  882. data/lib/simple-templater/core_exts.rb +99 -0
  883. data/lib/simple-templater/generator.rb +5 -5
  884. data/lib/simple-templater/generator_set.rb +1 -1
  885. data/lib/simple-templater/helpers.rb +3 -4
  886. data/lib/simple-templater/hooks/hook.rb +8 -8
  887. data/lib/simple-templater/version.rb +1 -1
  888. data/lib/simple-templater.rb +2 -2
  889. data/script/autospec +3 -0
  890. data/script/css2sass +3 -0
  891. data/script/erubis +3 -0
  892. data/script/haml +3 -0
  893. data/script/html2haml +3 -0
  894. data/script/sass +3 -0
  895. data/script/spec +2 -10
  896. data/simple-templater.gemspec +0 -9
  897. data/spec/simple-templater/helpers_spec.rb +2 -2
  898. data/spec/simple-templater_spec.rb +0 -8
  899. data/stubs/project/content/%name%.gemspec.rbt +1 -1
  900. data/tasks/gem.rake +1 -1
  901. data/tasks/spec.rake +3 -3
  902. metadata +886 -803
  903. data/vendor/abstract/doc/classes/Kernel.html +0 -134
  904. data/vendor/abstract/doc/classes/Kernel.src/M000002.html +0 -24
  905. data/vendor/abstract/doc/classes/Module.html +0 -140
  906. data/vendor/abstract/doc/classes/Module.src/M000001.html +0 -20
  907. data/vendor/abstract/doc/created.rid +0 -1
  908. data/vendor/abstract/doc/files/README_txt.html +0 -173
  909. data/vendor/abstract/doc/files/lib/abstract_rb.html +0 -137
  910. data/vendor/abstract/doc/fr_class_index.html +0 -28
  911. data/vendor/abstract/doc/fr_file_index.html +0 -28
  912. data/vendor/abstract/doc/fr_method_index.html +0 -28
  913. data/vendor/abstract/doc/index.html +0 -24
  914. data/vendor/cli/CHANGELOG +0 -2
  915. data/vendor/cli/LICENSE +0 -20
  916. data/vendor/cli/README.textile +0 -0
  917. data/vendor/cli/Rakefile +0 -62
  918. data/vendor/cli/TODO.txt +0 -0
  919. data/vendor/cli/cli.gemspec +0 -42
  920. data/vendor/cli/deps.rip +0 -5
  921. data/vendor/cli/lib/cli.rb +0 -33
  922. data/vendor/cli/script/spec +0 -12
  923. data/vendor/cli/spec/cli_spec.rb +0 -56
  924. data/vendor/cli/spec/spec.opts +0 -5
  925. data/vendor/cli/spec/spec_helper.rb +0 -18
  926. data/vendor/erubis/CHANGES.txt +0 -717
  927. data/vendor/erubis/MIT-LICENSE +0 -20
  928. data/vendor/erubis/README.txt +0 -102
  929. data/vendor/erubis/benchmark/bench.rb +0 -314
  930. data/vendor/erubis/bin/erubis +0 -11
  931. data/vendor/erubis/contrib/erubis +0 -11
  932. data/vendor/erubis/contrib/inline-require +0 -153
  933. data/vendor/erubis/doc/users-guide.html +0 -3285
  934. data/vendor/erubis/doc-api/classes/ActionView/TemplateHandlers/ErubisHandler.html +0 -181
  935. data/vendor/erubis/doc-api/classes/Erubis/ArrayBufferEnhancer.html +0 -175
  936. data/vendor/erubis/doc-api/classes/Erubis/ArrayEnhancer.html +0 -174
  937. data/vendor/erubis/doc-api/classes/Erubis/Basic/Converter.html +0 -327
  938. data/vendor/erubis/doc-api/classes/Erubis/BiPatternEnhancer.html +0 -215
  939. data/vendor/erubis/doc-api/classes/Erubis/CGenerator.html +0 -386
  940. data/vendor/erubis/doc-api/classes/Erubis/Context.html +0 -344
  941. data/vendor/erubis/doc-api/classes/Erubis/Converter.html +0 -283
  942. data/vendor/erubis/doc-api/classes/Erubis/DeleteIndentEnhancer.html +0 -150
  943. data/vendor/erubis/doc-api/classes/Erubis/Engine.html +0 -305
  944. data/vendor/erubis/doc-api/classes/Erubis/ErboutEnhancer.html +0 -175
  945. data/vendor/erubis/doc-api/classes/Erubis/EscapeEnhancer.html +0 -165
  946. data/vendor/erubis/doc-api/classes/Erubis/Evaluator.html +0 -212
  947. data/vendor/erubis/doc-api/classes/Erubis/Generator.html +0 -416
  948. data/vendor/erubis/doc-api/classes/Erubis/HeaderFooterEnhancer.html +0 -267
  949. data/vendor/erubis/doc-api/classes/Erubis/Helpers/RailsFormHelper.html +0 -787
  950. data/vendor/erubis/doc-api/classes/Erubis/Helpers/RailsHelper/TemplateConverter.html +0 -164
  951. data/vendor/erubis/doc-api/classes/Erubis/Helpers/RailsHelper.html +0 -349
  952. data/vendor/erubis/doc-api/classes/Erubis/InterpolationEnhancer.html +0 -306
  953. data/vendor/erubis/doc-api/classes/Erubis/JavaGenerator.html +0 -359
  954. data/vendor/erubis/doc-api/classes/Erubis/JavascriptGenerator.html +0 -386
  955. data/vendor/erubis/doc-api/classes/Erubis/Main.html +0 -340
  956. data/vendor/erubis/doc-api/classes/Erubis/NoCodeEnhancer.html +0 -249
  957. data/vendor/erubis/doc-api/classes/Erubis/NoTextEnhancer.html +0 -159
  958. data/vendor/erubis/doc-api/classes/Erubis/OptimizedEruby.html +0 -163
  959. data/vendor/erubis/doc-api/classes/Erubis/OptimizedGenerator.html +0 -439
  960. data/vendor/erubis/doc-api/classes/Erubis/OptimizedXmlEruby.html +0 -163
  961. data/vendor/erubis/doc-api/classes/Erubis/PI/Converter.html +0 -266
  962. data/vendor/erubis/doc-api/classes/Erubis/PI/Ec.html +0 -166
  963. data/vendor/erubis/doc-api/classes/Erubis/PI/Ejava.html +0 -166
  964. data/vendor/erubis/doc-api/classes/Erubis/PI/Ejavascript.html +0 -166
  965. data/vendor/erubis/doc-api/classes/Erubis/PI/Eperl.html +0 -166
  966. data/vendor/erubis/doc-api/classes/Erubis/PI/Ephp.html +0 -166
  967. data/vendor/erubis/doc-api/classes/Erubis/PI/Eruby.html +0 -155
  968. data/vendor/erubis/doc-api/classes/Erubis/PI/Escheme.html +0 -166
  969. data/vendor/erubis/doc-api/classes/Erubis/PI/TinyEruby.html +0 -293
  970. data/vendor/erubis/doc-api/classes/Erubis/PercentLineEnhancer.html +0 -179
  971. data/vendor/erubis/doc-api/classes/Erubis/PerlGenerator.html +0 -344
  972. data/vendor/erubis/doc-api/classes/Erubis/PhpGenerator.html +0 -350
  973. data/vendor/erubis/doc-api/classes/Erubis/PreprocessingEruby.html +0 -183
  974. data/vendor/erubis/doc-api/classes/Erubis/PreprocessingHelper.html +0 -212
  975. data/vendor/erubis/doc-api/classes/Erubis/PrintEnabledEnhancer.html +0 -212
  976. data/vendor/erubis/doc-api/classes/Erubis/PrintOutEnhancer.html +0 -244
  977. data/vendor/erubis/doc-api/classes/Erubis/RubyEvaluator.html +0 -227
  978. data/vendor/erubis/doc-api/classes/Erubis/RubyGenerator.html +0 -327
  979. data/vendor/erubis/doc-api/classes/Erubis/SchemeGenerator.html +0 -382
  980. data/vendor/erubis/doc-api/classes/Erubis/SimplifyEnhancer.html +0 -191
  981. data/vendor/erubis/doc-api/classes/Erubis/StdoutEnhancer.html +0 -173
  982. data/vendor/erubis/doc-api/classes/Erubis/StringBufferEnhancer.html +0 -174
  983. data/vendor/erubis/doc-api/classes/Erubis/TinyEruby.html +0 -299
  984. data/vendor/erubis/doc-api/classes/Erubis/XmlHelper.html +0 -255
  985. data/vendor/erubis/doc-api/classes/Erubis.html +0 -353
  986. data/vendor/erubis/doc-api/created.rid +0 -1
  987. data/vendor/erubis/doc-api/files/README_txt.html +0 -247
  988. data/vendor/erubis/doc-api/files/erubis/context_rb.html +0 -107
  989. data/vendor/erubis/doc-api/files/erubis/converter_rb.html +0 -114
  990. data/vendor/erubis/doc-api/files/erubis/engine/ec_rb.html +0 -115
  991. data/vendor/erubis/doc-api/files/erubis/engine/ejava_rb.html +0 -115
  992. data/vendor/erubis/doc-api/files/erubis/engine/ejavascript_rb.html +0 -115
  993. data/vendor/erubis/doc-api/files/erubis/engine/enhanced_rb.html +0 -115
  994. data/vendor/erubis/doc-api/files/erubis/engine/eperl_rb.html +0 -115
  995. data/vendor/erubis/doc-api/files/erubis/engine/ephp_rb.html +0 -115
  996. data/vendor/erubis/doc-api/files/erubis/engine/eruby_rb.html +0 -115
  997. data/vendor/erubis/doc-api/files/erubis/engine/escheme_rb.html +0 -115
  998. data/vendor/erubis/doc-api/files/erubis/engine/optimized_rb.html +0 -114
  999. data/vendor/erubis/doc-api/files/erubis/engine_rb.html +0 -117
  1000. data/vendor/erubis/doc-api/files/erubis/enhancer_rb.html +0 -107
  1001. data/vendor/erubis/doc-api/files/erubis/error_rb.html +0 -107
  1002. data/vendor/erubis/doc-api/files/erubis/evaluator_rb.html +0 -115
  1003. data/vendor/erubis/doc-api/files/erubis/generator_rb.html +0 -114
  1004. data/vendor/erubis/doc-api/files/erubis/helper_rb.html +0 -107
  1005. data/vendor/erubis/doc-api/files/erubis/helpers/rails_form_helper_rb.html +0 -107
  1006. data/vendor/erubis/doc-api/files/erubis/helpers/rails_helper_rb.html +0 -116
  1007. data/vendor/erubis/doc-api/files/erubis/local-setting_rb.html +0 -107
  1008. data/vendor/erubis/doc-api/files/erubis/main_rb.html +0 -127
  1009. data/vendor/erubis/doc-api/files/erubis/preprocessing_rb.html +0 -114
  1010. data/vendor/erubis/doc-api/files/erubis/tiny_rb.html +0 -107
  1011. data/vendor/erubis/doc-api/files/erubis_rb.html +0 -118
  1012. data/vendor/erubis/doc-api/fr_method_index.html +0 -248
  1013. data/vendor/erubis/doc-api/rdoc-style.css +0 -208
  1014. data/vendor/erubis/erubis.gemspec +0 -66
  1015. data/vendor/erubis/lib/erubis/context.rb +0 -84
  1016. data/vendor/erubis/lib/erubis/converter.rb +0 -358
  1017. data/vendor/erubis/lib/erubis/engine/ec.rb +0 -118
  1018. data/vendor/erubis/lib/erubis/engine/ejava.rb +0 -111
  1019. data/vendor/erubis/lib/erubis/engine/ejavascript.rb +0 -120
  1020. data/vendor/erubis/lib/erubis/engine/enhanced.rb +0 -122
  1021. data/vendor/erubis/lib/erubis/engine/eperl.rb +0 -96
  1022. data/vendor/erubis/lib/erubis/engine/ephp.rb +0 -100
  1023. data/vendor/erubis/lib/erubis/engine/eruby.rb +0 -125
  1024. data/vendor/erubis/lib/erubis/engine/escheme.rb +0 -115
  1025. data/vendor/erubis/lib/erubis/engine/optimized.rb +0 -128
  1026. data/vendor/erubis/lib/erubis/engine.rb +0 -121
  1027. data/vendor/erubis/lib/erubis/enhancer.rb +0 -681
  1028. data/vendor/erubis/lib/erubis/error.rb +0 -24
  1029. data/vendor/erubis/lib/erubis/evaluator.rb +0 -89
  1030. data/vendor/erubis/lib/erubis/generator.rb +0 -86
  1031. data/vendor/erubis/lib/erubis/helper.rb +0 -48
  1032. data/vendor/erubis/lib/erubis/helpers/rails_form_helper.rb +0 -198
  1033. data/vendor/erubis/lib/erubis/helpers/rails_helper.rb +0 -325
  1034. data/vendor/erubis/lib/erubis/local-setting.rb +0 -10
  1035. data/vendor/erubis/lib/erubis/main.rb +0 -491
  1036. data/vendor/erubis/lib/erubis/preprocessing.rb +0 -59
  1037. data/vendor/erubis/lib/erubis/tiny.rb +0 -146
  1038. data/vendor/erubis/lib/erubis.rb +0 -73
  1039. data/vendor/erubis/test/assert-text-equal.rb +0 -45
  1040. data/vendor/erubis/test/assert-text-equal.rbc +0 -0
  1041. data/vendor/erubis/test/hoge.rb +0 -5
  1042. data/vendor/erubis/test/test-engines.rb +0 -370
  1043. data/vendor/erubis/test/test-engines.rbc +0 -0
  1044. data/vendor/erubis/test/test-enhancers.rb +0 -571
  1045. data/vendor/erubis/test/test-erubis.rb +0 -884
  1046. data/vendor/erubis/test/test-erubis.rbc +0 -0
  1047. data/vendor/erubis/test/test-main.rb +0 -674
  1048. data/vendor/erubis/test/test-users-guide.rb +0 -58
  1049. data/vendor/erubis/test/test-users-guide.rbc +0 -0
  1050. data/vendor/erubis/test/test.rb +0 -30
  1051. data/vendor/erubis/test/test.rbc +0 -0
  1052. data/vendor/erubis/test/testutil.rb +0 -101
  1053. data/vendor/erubis/test/testutil.rbc +0 -0
  1054. data/vendor/fakefs/CONTRIBUTORS +0 -17
  1055. data/vendor/fakefs/LICENSE +0 -20
  1056. data/vendor/fakefs/README.markdown +0 -101
  1057. data/vendor/fakefs/Rakefile +0 -47
  1058. data/vendor/fakefs/lib/fakefs/base.rb +0 -38
  1059. data/vendor/fakefs/lib/fakefs/dir.rb +0 -114
  1060. data/vendor/fakefs/lib/fakefs/fake/dir.rb +0 -45
  1061. data/vendor/fakefs/lib/fakefs/fake/file.rb +0 -79
  1062. data/vendor/fakefs/lib/fakefs/fake/symlink.rb +0 -32
  1063. data/vendor/fakefs/lib/fakefs/file.rb +0 -330
  1064. data/vendor/fakefs/lib/fakefs/file_system.rb +0 -136
  1065. data/vendor/fakefs/lib/fakefs/fileutils.rb +0 -129
  1066. data/vendor/fakefs/lib/fakefs/safe.rb +0 -11
  1067. data/vendor/fakefs/lib/fakefs/spec_helpers.rb +0 -46
  1068. data/vendor/fakefs/lib/fakefs/version.rb +0 -9
  1069. data/vendor/fakefs/lib/fakefs.rb +0 -3
  1070. data/vendor/fakefs/spec/fakefs/spec_helpers_spec.rb +0 -57
  1071. data/vendor/fakefs/spec/spec.opts +0 -1
  1072. data/vendor/fakefs/spec/spec_helper.rb +0 -3
  1073. data/vendor/fakefs/test/fake/file_test.rb +0 -88
  1074. data/vendor/fakefs/test/fake/symlink_test.rb +0 -12
  1075. data/vendor/fakefs/test/fakefs_test.rb +0 -1334
  1076. data/vendor/fakefs/test/file/stat_test.rb +0 -70
  1077. data/vendor/fakefs/test/safe_test.rb +0 -42
  1078. data/vendor/fakefs/test/verify.rb +0 -27
  1079. data/vendor/rspec/History.rdoc +0 -1510
  1080. data/vendor/rspec/Manifest.txt +0 -383
  1081. data/vendor/rspec/features/matchers/match_unless_raises.feature +0 -60
  1082. data/vendor/rspec/features/matchers/match_unless_raises_unexpected_error.feature +0 -39
  1083. data/vendor/rspec/features/mocks/block_local_expectations.feature +0 -62
  1084. data/vendor/rspec/features-pending/cli/conditional_exclusion.feature +0 -39
  1085. data/vendor/rspec/features-pending/heckle/heckle.feature +0 -56
  1086. data/vendor/rspec/geminstaller.yml +0 -28
  1087. data/vendor/rspec/lib/autotest/rspec.rb +0 -54
  1088. data/vendor/rspec/lib/spec/dsl/main.rb +0 -92
  1089. data/vendor/rspec/lib/spec/matchers/be.rb +0 -211
  1090. data/vendor/rspec/lib/spec/matchers/has.rb +0 -35
  1091. data/vendor/rspec/lib/spec/matchers/have.rb +0 -152
  1092. data/vendor/rspec/lib/spec/matchers/matcher.rb +0 -102
  1093. data/vendor/rspec/lib/spec/matchers/method_missing.rb +0 -9
  1094. data/vendor/rspec/lib/spec/matchers.rb +0 -195
  1095. data/vendor/rspec/lib/spec/mocks/message_expectation.rb +0 -343
  1096. data/vendor/rspec/lib/spec/runner/differs/default.rb +0 -93
  1097. data/vendor/rspec/spec/autotest/autotest_helper.rb +0 -8
  1098. data/vendor/rspec/spec/autotest/discover_spec.rb +0 -8
  1099. data/vendor/rspec/spec/autotest/failed_results_re_spec.rb +0 -31
  1100. data/vendor/rspec/spec/autotest/rspec_spec.rb +0 -126
  1101. data/vendor/rspec/spec/spec/example/example_group_methods_spec.rb +0 -759
  1102. data/vendor/rspec/spec/spec/matchers/be_spec.rb +0 -419
  1103. data/vendor/rspec/spec/spec/matchers/has_spec.rb +0 -190
  1104. data/vendor/rspec/spec/spec/matchers/matcher_spec.rb +0 -273
  1105. data/vendor/rspec/spec/spec/mocks/and_yield_spec.rb +0 -117
  1106. data/vendor/rspec/spec/spec/mocks/mock_spec.rb +0 -594
  1107. data/vendor/rspec/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +0 -123
  1108. data/vendor/rubyexts/CHANGELOG +0 -2
  1109. data/vendor/rubyexts/LICENSE +0 -20
  1110. data/vendor/rubyexts/README.textile +0 -0
  1111. data/vendor/rubyexts/Rakefile +0 -62
  1112. data/vendor/rubyexts/TODO.txt +0 -6
  1113. data/vendor/rubyexts/lib/rubyexts/array.rb +0 -20
  1114. data/vendor/rubyexts/lib/rubyexts/attribute.rb +0 -150
  1115. data/vendor/rubyexts/lib/rubyexts/capture_io.rb +0 -32
  1116. data/vendor/rubyexts/lib/rubyexts/class.rb +0 -177
  1117. data/vendor/rubyexts/lib/rubyexts/colored_string.rb +0 -103
  1118. data/vendor/rubyexts/lib/rubyexts/enumerable.rb +0 -30
  1119. data/vendor/rubyexts/lib/rubyexts/file.rb +0 -84
  1120. data/vendor/rubyexts/lib/rubyexts/hash.rb +0 -147
  1121. data/vendor/rubyexts/lib/rubyexts/kernel.rb +0 -91
  1122. data/vendor/rubyexts/lib/rubyexts/module.rb +0 -53
  1123. data/vendor/rubyexts/lib/rubyexts/object.rb +0 -56
  1124. data/vendor/rubyexts/lib/rubyexts/object_space.rb +0 -16
  1125. data/vendor/rubyexts/lib/rubyexts/os.rb +0 -89
  1126. data/vendor/rubyexts/lib/rubyexts/platform.rb +0 -27
  1127. data/vendor/rubyexts/lib/rubyexts/random.rb +0 -25
  1128. data/vendor/rubyexts/lib/rubyexts/string.rb +0 -92
  1129. data/vendor/rubyexts/lib/rubyexts/time.rb +0 -15
  1130. data/vendor/rubyexts/lib/rubyexts/time_dsl.rb +0 -62
  1131. data/vendor/rubyexts/lib/rubyexts/unique_array.rb +0 -16
  1132. data/vendor/rubyexts/lib/rubyexts.rb +0 -102
  1133. data/vendor/rubyexts/rubyexts.gemspec +0 -36
  1134. data/vendor/rubyexts/script/spec +0 -12
  1135. data/vendor/rubyexts/spec/rubyexts/array_spec.rb +0 -19
  1136. data/vendor/rubyexts/spec/rubyexts/attribute_spec.rb +0 -37
  1137. data/vendor/rubyexts/spec/rubyexts/class_spec.rb +0 -1
  1138. data/vendor/rubyexts/spec/rubyexts/cli_spec.rb +0 -0
  1139. data/vendor/rubyexts/spec/rubyexts/colored_string_spec.rb +0 -9
  1140. data/vendor/rubyexts/spec/rubyexts/enumerable_spec.rb +0 -52
  1141. data/vendor/rubyexts/spec/rubyexts/file_spec.rb +0 -78
  1142. data/vendor/rubyexts/spec/rubyexts/hash_spec.rb +0 -91
  1143. data/vendor/rubyexts/spec/rubyexts/kernel_spec.rb +0 -9
  1144. data/vendor/rubyexts/spec/rubyexts/module_spec.rb +0 -0
  1145. data/vendor/rubyexts/spec/rubyexts/object_space_spec.rb +0 -17
  1146. data/vendor/rubyexts/spec/rubyexts/object_spec.rb +0 -57
  1147. data/vendor/rubyexts/spec/rubyexts/os_spec.rb +0 -121
  1148. data/vendor/rubyexts/spec/rubyexts/platform_spec.rb +0 -0
  1149. data/vendor/rubyexts/spec/rubyexts/random_spec.rb +0 -31
  1150. data/vendor/rubyexts/spec/rubyexts/string_spec.rb +0 -23
  1151. data/vendor/rubyexts/spec/rubyexts/time_dsl_spec.rb +0 -88
  1152. data/vendor/rubyexts/spec/rubyexts/time_spec.rb +0 -11
  1153. data/vendor/rubyexts/spec/rubyexts/unique_array_spec.rb +0 -0
  1154. data/vendor/rubyexts/spec/rubyexts_spec.rb +0 -182
  1155. data/vendor/rubyexts/spec/spec.opts +0 -5
  1156. data/vendor/rubyexts/spec/spec_helper.rb +0 -16
@@ -0,0 +1,1247 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- coding: utf-8 -*-
3
+ require File.dirname(__FILE__) + '/../test_helper'
4
+
5
+ class EngineTest < Test::Unit::TestCase
6
+ # A map of erroneous Haml documents to the error messages they should produce.
7
+ # The error messages may be arrays;
8
+ # if so, the second element should be the line number that should be reported for the error.
9
+ # If this isn't provided, the tests will assume the line number should be the last line of the document.
10
+ EXCEPTION_MAP = {
11
+ "!!!\n a" => "Illegal nesting: nesting within a header command is illegal.",
12
+ "a\n b" => "Illegal nesting: nesting within plain text is illegal.",
13
+ "/ a\n b" => "Illegal nesting: nesting within a tag that already has content is illegal.",
14
+ "% a" => 'Invalid tag: "% a".',
15
+ "%p a\n b" => "Illegal nesting: content can't be both given on the same line as %p and nested within it.",
16
+ "%p=" => "There's no Ruby code for = to evaluate.",
17
+ "%p~" => "There's no Ruby code for ~ to evaluate.",
18
+ "~" => "There's no Ruby code for ~ to evaluate.",
19
+ "=" => "There's no Ruby code for = to evaluate.",
20
+ "%p/\n a" => "Illegal nesting: nesting within a self-closing tag is illegal.",
21
+ ":a\n b" => ['Filter "a" is not defined.', 1],
22
+ ":a= b" => 'Invalid filter name ":a= b".',
23
+ "." => "Illegal element: classes and ids must have values.",
24
+ ".#" => "Illegal element: classes and ids must have values.",
25
+ ".{} a" => "Illegal element: classes and ids must have values.",
26
+ ".() a" => "Illegal element: classes and ids must have values.",
27
+ ".= a" => "Illegal element: classes and ids must have values.",
28
+ "%p..a" => "Illegal element: classes and ids must have values.",
29
+ "%a/ b" => "Self-closing tags can't have content.",
30
+ "%p{:a => 'b',\n:c => 'd'}/ e" => ["Self-closing tags can't have content.", 2],
31
+ "%p{:a => 'b',\n:c => 'd'}=" => ["There's no Ruby code for = to evaluate.", 2],
32
+ "%p.{:a => 'b',\n:c => 'd'} e" => ["Illegal element: classes and ids must have values.", 1],
33
+ "%p{:a => 'b',\n:c => 'd',\n:e => 'f'}\n%p/ a" => ["Self-closing tags can't have content.", 4],
34
+ "%p{:a => 'b',\n:c => 'd',\n:e => 'f'}\n- raise 'foo'" => ["foo", 4],
35
+ "%p{:a => 'b',\n:c => raise('foo'),\n:e => 'f'}" => ["foo", 2],
36
+ "%p{:a => 'b',\n:c => 'd',\n:e => raise('foo')}" => ["foo", 3],
37
+ " %p foo" => "Indenting at the beginning of the document is illegal.",
38
+ " %p foo" => "Indenting at the beginning of the document is illegal.",
39
+ "- end" => "You don't need to use \"- end\" in Haml. Use indentation instead:\n- if foo?\n %strong Foo!\n- else\n Not foo.",
40
+ " \n\t\n %p foo" => ["Indenting at the beginning of the document is illegal.", 3],
41
+ "\n\n %p foo" => ["Indenting at the beginning of the document is illegal.", 3],
42
+ "%p\n foo\n foo" => ["Inconsistent indentation: 1 space was used for indentation, but the rest of the document was indented using 2 spaces.", 3],
43
+ "%p\n foo\n%p\n foo" => ["Inconsistent indentation: 1 space was used for indentation, but the rest of the document was indented using 2 spaces.", 4],
44
+ "%p\n\t\tfoo\n\tfoo" => ["Inconsistent indentation: 1 tab was used for indentation, but the rest of the document was indented using 2 tabs.", 3],
45
+ "%p\n foo\n foo" => ["Inconsistent indentation: 3 spaces were used for indentation, but the rest of the document was indented using 2 spaces.", 3],
46
+ "%p\n foo\n %p\n bar" => ["Inconsistent indentation: 3 spaces were used for indentation, but the rest of the document was indented using 2 spaces.", 4],
47
+ "%p\n :plain\n bar\n \t baz" => ['Inconsistent indentation: " \t " was used for indentation, but the rest of the document was indented using 2 spaces.', 4],
48
+ "%p\n foo\n%p\n bar" => ["The line was indented 2 levels deeper than the previous line.", 4],
49
+ "%p\n foo\n %p\n bar" => ["The line was indented 3 levels deeper than the previous line.", 4],
50
+ "%p\n \tfoo" => ["Indentation can't use both tabs and spaces.", 2],
51
+ "%p(" => "Invalid attribute list: \"(\".",
52
+ "%p(foo=\nbar)" => ["Invalid attribute list: \"(foo=\".", 1],
53
+ "%p(foo=)" => "Invalid attribute list: \"(foo=)\".",
54
+ "%p(foo 'bar')" => "Invalid attribute list: \"(foo 'bar')\".",
55
+ "%p(foo 'bar'\nbaz='bang')" => ["Invalid attribute list: \"(foo 'bar'\".", 1],
56
+ "%p(foo='bar'\nbaz 'bang'\nbip='bop')" => ["Invalid attribute list: \"(foo='bar' baz 'bang'\".", 2],
57
+ "%p{:foo => 'bar' :bar => 'baz'}" => :compile,
58
+ "%p{:foo => }" => :compile,
59
+ "%p{=> 'bar'}" => :compile,
60
+ "%p{:foo => 'bar}" => :compile,
61
+ "%p{'foo => 'bar'}" => :compile,
62
+ "%p{:foo => 'bar\"}" => :compile,
63
+
64
+ # Regression tests
65
+ "- raise 'foo'\n\n\n\nbar" => ["foo", 1],
66
+ "= 'foo'\n-raise 'foo'" => ["foo", 2],
67
+ "\n\n\n- raise 'foo'" => ["foo", 4],
68
+ "%p foo |\n bar |\n baz |\nbop\n- raise 'foo'" => ["foo", 5],
69
+ "foo\n\n\n bar" => ["Illegal nesting: nesting within plain text is illegal.", 4],
70
+ "%p/\n\n bar" => ["Illegal nesting: nesting within a self-closing tag is illegal.", 3],
71
+ "%p foo\n\n bar" => ["Illegal nesting: content can't be both given on the same line as %p and nested within it.", 3],
72
+ "/ foo\n\n bar" => ["Illegal nesting: nesting within a tag that already has content is illegal.", 3],
73
+ "!!!\n\n bar" => ["Illegal nesting: nesting within a header command is illegal.", 3],
74
+ "foo\n:ruby\n 1\n 2\n 3\n- raise 'foo'" => ["foo", 6],
75
+ "= raise 'foo'\nfoo\nbar\nbaz\nbang" => ["foo", 1],
76
+ }
77
+
78
+ User = Struct.new('User', :id)
79
+
80
+ def render(text, options = {}, &block)
81
+ scope = options.delete(:scope) || Object.new
82
+ locals = options.delete(:locals) || {}
83
+ engine(text, options).to_html(scope, locals, &block)
84
+ end
85
+
86
+ def engine(text, options = {})
87
+ unless options[:filename]
88
+ # use caller method name as fake filename. useful for debugging
89
+ i = -1
90
+ caller[i+=1] =~ /`(.+?)'/ until $1 and $1.index('test_') == 0
91
+ options[:filename] = "(#{$1})"
92
+ end
93
+ Haml::Engine.new(text, options)
94
+ end
95
+
96
+ def test_empty_render
97
+ assert_equal "", render("")
98
+ end
99
+
100
+ def test_flexible_tabulation
101
+ assert_equal("<p>\n foo\n</p>\n<q>\n bar\n <a>\n baz\n </a>\n</q>\n",
102
+ render("%p\n foo\n%q\n bar\n %a\n baz"))
103
+ assert_equal("<p>\n foo\n</p>\n<q>\n bar\n <a>\n baz\n </a>\n</q>\n",
104
+ render("%p\n\tfoo\n%q\n\tbar\n\t%a\n\t\tbaz"))
105
+ assert_equal("<p>\n \t \t bar\n baz\n</p>\n",
106
+ render("%p\n :plain\n \t \t bar\n baz"))
107
+ end
108
+
109
+ def test_empty_render_should_remain_empty
110
+ assert_equal('', render(''))
111
+ end
112
+
113
+ def test_attributes_should_render_correctly
114
+ assert_equal("<div class='atlantis' style='ugly'></div>", render(".atlantis{:style => 'ugly'}").chomp)
115
+ end
116
+
117
+ def test_css_id_as_attribute_should_be_appended_with_underscore
118
+ assert_equal("<div id='my_id_1'></div>", render("#my_id{:id => '1'}").chomp)
119
+ assert_equal("<div id='my_id_1'></div>", render("#my_id{:id => 1}").chomp)
120
+ end
121
+
122
+ def test_ruby_code_should_work_inside_attributes
123
+ author = 'hcatlin'
124
+ assert_equal("<p class='3'>foo</p>", render("%p{:class => 1+2} foo").chomp)
125
+ end
126
+
127
+ def test_dynamic_attributes_with_no_content
128
+ assert_equal(<<HTML, render(<<HAML))
129
+ <p>
130
+ <a href='http://haml-lang.com'></a>
131
+ </p>
132
+ HTML
133
+ %p
134
+ %a{:href => "http://" + "haml-lang.com"}
135
+ HAML
136
+ end
137
+
138
+ def test_nil_should_render_empty_tag
139
+ assert_equal("<div class='no_attributes'></div>",
140
+ render(".no_attributes{:nil => nil}").chomp)
141
+ end
142
+
143
+ def test_strings_should_get_stripped_inside_tags
144
+ assert_equal("<div class='stripped'>This should have no spaces in front of it</div>",
145
+ render(".stripped This should have no spaces in front of it").chomp)
146
+ end
147
+
148
+ def test_one_liner_should_be_one_line
149
+ assert_equal("<p>Hello</p>", render('%p Hello').chomp)
150
+ end
151
+
152
+ def test_one_liner_with_newline_shouldnt_be_one_line
153
+ assert_equal("<p>\n foo\n bar\n</p>", render('%p= "foo\nbar"').chomp)
154
+ end
155
+
156
+ def test_multi_render
157
+ engine = engine("%strong Hi there!")
158
+ assert_equal("<strong>Hi there!</strong>\n", engine.to_html)
159
+ assert_equal("<strong>Hi there!</strong>\n", engine.to_html)
160
+ assert_equal("<strong>Hi there!</strong>\n", engine.to_html)
161
+ end
162
+
163
+ def test_interpolation
164
+ assert_equal("<p>Hello World</p>\n", render('%p Hello #{who}', :locals => {:who => 'World'}))
165
+ assert_equal("<p>\n Hello World\n</p>\n", render("%p\n Hello \#{who}", :locals => {:who => 'World'}))
166
+ end
167
+
168
+ def test_interpolation_in_the_middle_of_a_string
169
+ assert_equal("\"title 'Title'. \"\n",
170
+ render("\"title '\#{\"Title\"}'. \""))
171
+ end
172
+
173
+ def test_interpolation_at_the_beginning_of_a_line
174
+ assert_equal("<p>2</p>\n", render('%p #{1 + 1}'))
175
+ assert_equal("<p>\n 2\n</p>\n", render("%p\n \#{1 + 1}"))
176
+ end
177
+
178
+ def test_escaped_interpolation
179
+ assert_equal("<p>Foo &amp; Bar & Baz</p>\n", render('%p& Foo #{"&"} Bar & Baz'))
180
+ end
181
+
182
+ def test_nil_tag_value_should_render_as_empty
183
+ assert_equal("<p></p>\n", render("%p= nil"))
184
+ end
185
+
186
+ def test_tag_with_failed_if_should_render_as_empty
187
+ assert_equal("<p></p>\n", render("%p= 'Hello' if false"))
188
+ end
189
+
190
+ def test_static_attributes_with_empty_attr
191
+ assert_equal("<img alt='' src='/foo.png' />\n", render("%img{:src => '/foo.png', :alt => ''}"))
192
+ end
193
+
194
+ def test_dynamic_attributes_with_empty_attr
195
+ assert_equal("<img alt='' src='/foo.png' />\n", render("%img{:width => nil, :src => '/foo.png', :alt => String.new}"))
196
+ end
197
+
198
+ def test_attribute_hash_with_newlines
199
+ assert_equal("<p a='b' c='d'>foop</p>\n", render("%p{:a => 'b',\n :c => 'd'} foop"))
200
+ assert_equal("<p a='b' c='d'>\n foop\n</p>\n", render("%p{:a => 'b',\n :c => 'd'}\n foop"))
201
+ assert_equal("<p a='b' c='d' />\n", render("%p{:a => 'b',\n :c => 'd'}/"))
202
+ assert_equal("<p a='b' c='d' e='f'></p>\n", render("%p{:a => 'b',\n :c => 'd',\n :e => 'f'}"))
203
+ end
204
+
205
+ def test_attr_hashes_not_modified
206
+ hash = {:color => 'red'}
207
+ assert_equal(<<HTML, render(<<HAML, :locals => {:hash => hash}))
208
+ <div color='red'></div>
209
+ <div class='special' color='red'></div>
210
+ <div color='red'></div>
211
+ HTML
212
+ %div{hash}
213
+ .special{hash}
214
+ %div{hash}
215
+ HAML
216
+ assert_equal(hash, {:color => 'red'})
217
+ end
218
+
219
+ def test_end_of_file_multiline
220
+ assert_equal("<p>0</p>\n<p>1</p>\n<p>2</p>\n", render("- for i in (0...3)\n %p= |\n i |"))
221
+ end
222
+
223
+ def test_cr_newline
224
+ assert_equal("<p>foo</p>\n<p>bar</p>\n<p>baz</p>\n<p>boom</p>\n", render("%p foo\r%p bar\r\n%p baz\n\r%p boom"))
225
+ end
226
+
227
+ def test_textareas
228
+ assert_equal("<textarea>Foo&#x000A; bar&#x000A; baz</textarea>\n",
229
+ render('%textarea= "Foo\n bar\n baz"'))
230
+
231
+ assert_equal("<pre>Foo&#x000A; bar&#x000A; baz</pre>\n",
232
+ render('%pre= "Foo\n bar\n baz"'))
233
+
234
+ assert_equal("<textarea>#{'a' * 100}</textarea>\n",
235
+ render("%textarea #{'a' * 100}"))
236
+
237
+ assert_equal("<p>\n <textarea>Foo\n Bar\n Baz</textarea>\n</p>\n", render(<<SOURCE))
238
+ %p
239
+ %textarea
240
+ Foo
241
+ Bar
242
+ Baz
243
+ SOURCE
244
+ end
245
+
246
+ def test_pre_code
247
+ assert_equal(<<HTML, render(<<HAML))
248
+ <pre><code>Foo&#x000A; bar&#x000A; baz</code></pre>
249
+ HTML
250
+ %pre
251
+ %code
252
+ :preserve
253
+ Foo
254
+ bar
255
+ baz
256
+ HAML
257
+ end
258
+
259
+ def test_boolean_attributes
260
+ assert_equal("<p bar baz='true' foo='bar'></p>\n",
261
+ render("%p{:foo => 'bar', :bar => true, :baz => 'true'}", :format => :html4))
262
+ assert_equal("<p bar='bar' baz='true' foo='bar'></p>\n",
263
+ render("%p{:foo => 'bar', :bar => true, :baz => 'true'}", :format => :xhtml))
264
+
265
+ assert_equal("<p baz='false' foo='bar'></p>\n",
266
+ render("%p{:foo => 'bar', :bar => false, :baz => 'false'}", :format => :html4))
267
+ assert_equal("<p baz='false' foo='bar'></p>\n",
268
+ render("%p{:foo => 'bar', :bar => false, :baz => 'false'}", :format => :xhtml))
269
+ end
270
+
271
+ def test_both_whitespace_nukes_work_together
272
+ assert_equal(<<RESULT, render(<<SOURCE))
273
+ <p><q>Foo
274
+ Bar</q></p>
275
+ RESULT
276
+ %p
277
+ %q><= "Foo\\nBar"
278
+ SOURCE
279
+ end
280
+
281
+ # Regression tests
282
+
283
+ def test_whitespace_nuke_with_both_newlines
284
+ assert_equal("<p>foo</p>\n", render('%p<= "\nfoo\n"'))
285
+ assert_equal(<<HTML, render(<<HAML))
286
+ <p>
287
+ <p>foo</p>
288
+ </p>
289
+ HTML
290
+ %p
291
+ %p<= "\\nfoo\\n"
292
+ HAML
293
+ end
294
+
295
+ def test_whitespace_nuke_with_tags_and_else
296
+ assert_equal(<<HTML, render(<<HAML))
297
+ <a>
298
+ <b>foo</b>
299
+ </a>
300
+ HTML
301
+ %a
302
+ %b<
303
+ - if false
304
+ = "foo"
305
+ - else
306
+ foo
307
+ HAML
308
+
309
+ assert_equal(<<HTML, render(<<HAML))
310
+ <a>
311
+ <b>
312
+ foo
313
+ </b>
314
+ </a>
315
+ HTML
316
+ %a
317
+ %b
318
+ - if false
319
+ = "foo"
320
+ - else
321
+ foo
322
+ HAML
323
+ end
324
+
325
+ def test_outer_whitespace_nuke_with_empty_script
326
+ assert_equal(<<HTML, render(<<HAML))
327
+ <p>
328
+ foo<a></a></p>
329
+ HTML
330
+ %p
331
+ foo
332
+ = " "
333
+ %a>
334
+ HAML
335
+ end
336
+
337
+ def test_both_case_indentation_work_with_deeply_nested_code
338
+ result = <<RESULT
339
+ <h2>
340
+ other
341
+ </h2>
342
+ RESULT
343
+ assert_equal(result, render(<<HAML))
344
+ - case 'other'
345
+ - when 'test'
346
+ %h2
347
+ hi
348
+ - when 'other'
349
+ %h2
350
+ other
351
+ HAML
352
+ assert_equal(result, render(<<HAML))
353
+ - case 'other'
354
+ - when 'test'
355
+ %h2
356
+ hi
357
+ - when 'other'
358
+ %h2
359
+ other
360
+ HAML
361
+ end
362
+
363
+ def test_equals_block_with_ugly
364
+ assert_equal("foo\n", render(<<HAML, :ugly => true))
365
+ = capture_haml do
366
+ foo
367
+ HAML
368
+ end
369
+
370
+ def test_plain_equals_with_ugly
371
+ assert_equal("foo\nbar\n", render(<<HAML, :ugly => true))
372
+ = "foo"
373
+ bar
374
+ HAML
375
+ end
376
+
377
+ def test_inline_if
378
+ assert_equal(<<HTML, render(<<HAML))
379
+ <p>One</p>
380
+ <p></p>
381
+ <p>Three</p>
382
+ HTML
383
+ - for name in ["One", "Two", "Three"]
384
+ %p= name unless name == "Two"
385
+ HAML
386
+ end
387
+
388
+ def test_end_with_method_call
389
+ assert_equal(<<HTML, render(<<HAML))
390
+ 2|3|4
391
+ b-a-r
392
+ HTML
393
+ = [1, 2, 3].map do |i|
394
+ - i + 1
395
+ - end.join("|")
396
+ = "bar".gsub(/./) do |s|
397
+ - s + "-"
398
+ - end.gsub(/-$/) do |s|
399
+ - ''
400
+ HAML
401
+ end
402
+
403
+ def test_nested_end_with_method_call
404
+ assert_equal(<<HTML, render(<<HAML))
405
+ <p>
406
+ 2|3|4
407
+ b-a-r
408
+ </p>
409
+ HTML
410
+ %p
411
+ = [1, 2, 3].map do |i|
412
+ - i + 1
413
+ - end.join("|")
414
+ = "bar".gsub(/./) do |s|
415
+ - s + "-"
416
+ - end.gsub(/-$/) do |s|
417
+ - ''
418
+ HAML
419
+ end
420
+
421
+ def test_silent_end_with_stuff
422
+ assert_equal(<<HTML, render(<<HAML))
423
+ e
424
+ d
425
+ c
426
+ b
427
+ a
428
+ HTML
429
+ - str = "abcde"
430
+ - if true
431
+ = str.slice!(-1).chr
432
+ - end until str.empty?
433
+ HAML
434
+
435
+ assert_equal(<<HTML, render(<<HAML))
436
+ <p>hi!</p>
437
+ HTML
438
+ - if true
439
+ %p hi!
440
+ - end if "foo".gsub(/f/) do
441
+ - "z"
442
+ - end + "bar"
443
+ HAML
444
+ end
445
+
446
+ def test_multiline_with_colon_after_filter
447
+ assert_equal(<<HTML, render(<<HAML))
448
+ Foo
449
+ Bar
450
+ HTML
451
+ :plain
452
+ Foo
453
+ = { :a => "Bar", |
454
+ :b => "Baz" }[:a] |
455
+ HAML
456
+ assert_equal(<<HTML, render(<<HAML))
457
+
458
+ Bar
459
+ HTML
460
+ :plain
461
+ = { :a => "Bar", |
462
+ :b => "Baz" }[:a] |
463
+ HAML
464
+ end
465
+
466
+ def test_multiline_in_filter
467
+ assert_equal(<<HTML, render(<<HAML))
468
+ Foo |
469
+ Bar |
470
+ Baz
471
+ HTML
472
+ :plain
473
+ Foo |
474
+ Bar |
475
+ Baz
476
+ HAML
477
+ end
478
+
479
+ def test_curly_brace
480
+ assert_equal(<<HTML, render(<<HAML))
481
+ Foo { Bar
482
+ HTML
483
+ == Foo { Bar
484
+ HAML
485
+ end
486
+
487
+ def test_escape_html
488
+ html = <<HTML
489
+ &amp;
490
+ &
491
+ &amp;
492
+ HTML
493
+
494
+ assert_equal(html, render(<<HAML, :escape_html => true))
495
+ &= "&"
496
+ != "&"
497
+ = "&"
498
+ HAML
499
+
500
+ assert_equal(html, render(<<HAML, :escape_html => true))
501
+ &~ "&"
502
+ !~ "&"
503
+ ~ "&"
504
+ HAML
505
+
506
+ assert_equal(html, render(<<HAML, :escape_html => true))
507
+ & \#{"&"}
508
+ ! \#{"&"}
509
+ \#{"&"}
510
+ HAML
511
+
512
+ assert_equal(html, render(<<HAML, :escape_html => true))
513
+ &== \#{"&"}
514
+ !== \#{"&"}
515
+ == \#{"&"}
516
+ HAML
517
+
518
+ tag_html = <<HTML
519
+ <p>&amp;</p>
520
+ <p>&</p>
521
+ <p>&amp;</p>
522
+ HTML
523
+
524
+ assert_equal(tag_html, render(<<HAML, :escape_html => true))
525
+ %p&= "&"
526
+ %p!= "&"
527
+ %p= "&"
528
+ HAML
529
+
530
+ assert_equal(tag_html, render(<<HAML, :escape_html => true))
531
+ %p&~ "&"
532
+ %p!~ "&"
533
+ %p~ "&"
534
+ HAML
535
+
536
+ assert_equal(tag_html, render(<<HAML, :escape_html => true))
537
+ %p& \#{"&"}
538
+ %p! \#{"&"}
539
+ %p \#{"&"}
540
+ HAML
541
+
542
+ assert_equal(tag_html, render(<<HAML, :escape_html => true))
543
+ %p&== \#{"&"}
544
+ %p!== \#{"&"}
545
+ %p== \#{"&"}
546
+ HAML
547
+ end
548
+
549
+ def test_new_attrs_with_hash
550
+ assert_equal("<a href='#'></a>\n", render('%a(href="#")'))
551
+ end
552
+
553
+ def test_javascript_filter_with_dynamic_interp_and_escape_html
554
+ assert_equal(<<HTML, render(<<HAML, :escape_html => true))
555
+ <script type='text/javascript'>
556
+ //<![CDATA[
557
+ & < > &
558
+ //]]>
559
+ </script>
560
+ HTML
561
+ :javascript
562
+ & < > \#{"&"}
563
+ HAML
564
+ end
565
+
566
+ def test_silent_script_with_hyphen_case
567
+ assert_equal("", render("- 'foo-case-bar-case'"))
568
+ end
569
+
570
+ def test_silent_script_with_hyphen_end
571
+ assert_equal("", render("- 'foo-end-bar-end'"))
572
+ end
573
+
574
+ def test_silent_script_with_hyphen_end_and_block
575
+ assert_equal(<<HTML, render(<<HAML))
576
+ <p>foo-end</p>
577
+ <p>bar-end</p>
578
+ HTML
579
+ - "foo-end-bar-end".gsub(/\\w+-end/) do |s|
580
+ %p= s
581
+ HAML
582
+ end
583
+
584
+ def test_if_without_content_and_else
585
+ assert_equal(<<HTML, render(<<HAML))
586
+ foo
587
+ HTML
588
+ - if false
589
+ - else
590
+ foo
591
+ HAML
592
+ end
593
+
594
+ # HTML escaping tests
595
+
596
+ def test_ampersand_equals_should_escape
597
+ assert_equal("<p>\n foo &amp; bar\n</p>\n", render("%p\n &= 'foo & bar'", :escape_html => false))
598
+ end
599
+
600
+ def test_ampersand_equals_inline_should_escape
601
+ assert_equal("<p>foo &amp; bar</p>\n", render("%p&= 'foo & bar'", :escape_html => false))
602
+ end
603
+
604
+ def test_ampersand_equals_should_escape_before_preserve
605
+ assert_equal("<textarea>foo&#x000A;bar</textarea>\n", render('%textarea&= "foo\nbar"', :escape_html => false))
606
+ end
607
+
608
+ def test_bang_equals_should_not_escape
609
+ assert_equal("<p>\n foo & bar\n</p>\n", render("%p\n != 'foo & bar'", :escape_html => true))
610
+ end
611
+
612
+ def test_bang_equals_inline_should_not_escape
613
+ assert_equal("<p>foo & bar</p>\n", render("%p!= 'foo & bar'", :escape_html => true))
614
+ end
615
+
616
+ def test_static_attributes_should_be_escaped
617
+ assert_equal("<img class='atlantis' style='ugly&amp;stupid' />\n",
618
+ render("%img.atlantis{:style => 'ugly&stupid'}"))
619
+ assert_equal("<div class='atlantis' style='ugly&amp;stupid'>foo</div>\n",
620
+ render(".atlantis{:style => 'ugly&stupid'} foo"))
621
+ assert_equal("<p class='atlantis' style='ugly&amp;stupid'>foo</p>\n",
622
+ render("%p.atlantis{:style => 'ugly&stupid'}= 'foo'"))
623
+ assert_equal("<p class='atlantis' style='ugly&#x000A;stupid'></p>\n",
624
+ render("%p.atlantis{:style => \"ugly\\nstupid\"}"))
625
+ end
626
+
627
+ def test_dynamic_attributes_should_be_escaped
628
+ assert_equal("<img alt='' src='&amp;foo.png' />\n",
629
+ render("%img{:width => nil, :src => '&foo.png', :alt => String.new}"))
630
+ assert_equal("<p alt='' src='&amp;foo.png'>foo</p>\n",
631
+ render("%p{:width => nil, :src => '&foo.png', :alt => String.new} foo"))
632
+ assert_equal("<div alt='' src='&amp;foo.png'>foo</div>\n",
633
+ render("%div{:width => nil, :src => '&foo.png', :alt => String.new}= 'foo'"))
634
+ assert_equal("<img alt='' src='foo&#x000A;.png' />\n",
635
+ render("%img{:width => nil, :src => \"foo\\n.png\", :alt => String.new}"))
636
+ end
637
+
638
+ def test_string_double_equals_should_be_esaped
639
+ assert_equal("<p>4&&lt;</p>\n", render("%p== \#{2+2}&\#{'<'}", :escape_html => true))
640
+ assert_equal("<p>4&<</p>\n", render("%p== \#{2+2}&\#{'<'}", :escape_html => false))
641
+ end
642
+
643
+ def test_escaped_inline_string_double_equals
644
+ assert_equal("<p>4&&lt;</p>\n", render("%p&== \#{2+2}&\#{'<'}", :escape_html => true))
645
+ assert_equal("<p>4&&lt;</p>\n", render("%p&== \#{2+2}&\#{'<'}", :escape_html => false))
646
+ end
647
+
648
+ def test_unescaped_inline_string_double_equals
649
+ assert_equal("<p>4&<</p>\n", render("%p!== \#{2+2}&\#{'<'}", :escape_html => true))
650
+ assert_equal("<p>4&<</p>\n", render("%p!== \#{2+2}&\#{'<'}", :escape_html => false))
651
+ end
652
+
653
+ def test_escaped_string_double_equals
654
+ assert_equal("<p>\n 4&&lt;\n</p>\n", render("%p\n &== \#{2+2}&\#{'<'}", :escape_html => true))
655
+ assert_equal("<p>\n 4&&lt;\n</p>\n", render("%p\n &== \#{2+2}&\#{'<'}", :escape_html => false))
656
+ end
657
+
658
+ def test_unescaped_string_double_equals
659
+ assert_equal("<p>\n 4&<\n</p>\n", render("%p\n !== \#{2+2}&\#{'<'}", :escape_html => true))
660
+ assert_equal("<p>\n 4&<\n</p>\n", render("%p\n !== \#{2+2}&\#{'<'}", :escape_html => false))
661
+ end
662
+
663
+ def test_string_interpolation_should_be_esaped
664
+ assert_equal("<p>4&&lt;</p>\n", render("%p \#{2+2}&\#{'<'}", :escape_html => true))
665
+ assert_equal("<p>4&<</p>\n", render("%p \#{2+2}&\#{'<'}", :escape_html => false))
666
+ end
667
+
668
+ def test_escaped_inline_string_interpolation
669
+ assert_equal("<p>4&&lt;</p>\n", render("%p& \#{2+2}&\#{'<'}", :escape_html => true))
670
+ assert_equal("<p>4&&lt;</p>\n", render("%p& \#{2+2}&\#{'<'}", :escape_html => false))
671
+ end
672
+
673
+ def test_unescaped_inline_string_interpolation
674
+ assert_equal("<p>4&<</p>\n", render("%p! \#{2+2}&\#{'<'}", :escape_html => true))
675
+ assert_equal("<p>4&<</p>\n", render("%p! \#{2+2}&\#{'<'}", :escape_html => false))
676
+ end
677
+
678
+ def test_escaped_string_interpolation
679
+ assert_equal("<p>\n 4&&lt;\n</p>\n", render("%p\n & \#{2+2}&\#{'<'}", :escape_html => true))
680
+ assert_equal("<p>\n 4&&lt;\n</p>\n", render("%p\n & \#{2+2}&\#{'<'}", :escape_html => false))
681
+ end
682
+
683
+ def test_unescaped_string_interpolation
684
+ assert_equal("<p>\n 4&<\n</p>\n", render("%p\n ! \#{2+2}&\#{'<'}", :escape_html => true))
685
+ assert_equal("<p>\n 4&<\n</p>\n", render("%p\n ! \#{2+2}&\#{'<'}", :escape_html => false))
686
+ end
687
+
688
+ def test_scripts_should_respect_escape_html_option
689
+ assert_equal("<p>\n foo &amp; bar\n</p>\n", render("%p\n = 'foo & bar'", :escape_html => true))
690
+ assert_equal("<p>\n foo & bar\n</p>\n", render("%p\n = 'foo & bar'", :escape_html => false))
691
+ end
692
+
693
+ def test_inline_scripts_should_respect_escape_html_option
694
+ assert_equal("<p>foo &amp; bar</p>\n", render("%p= 'foo & bar'", :escape_html => true))
695
+ assert_equal("<p>foo & bar</p>\n", render("%p= 'foo & bar'", :escape_html => false))
696
+ end
697
+
698
+ def test_script_ending_in_comment_should_render_when_html_is_escaped
699
+ assert_equal("foo&amp;bar\n", render("= 'foo&bar' #comment", :escape_html => true))
700
+ end
701
+
702
+ def test_script_with_if_shouldnt_output
703
+ assert_equal(<<HTML, render(<<HAML))
704
+ <p>foo</p>
705
+ <p></p>
706
+ HTML
707
+ %p= "foo"
708
+ %p= "bar" if false
709
+ HAML
710
+ end
711
+
712
+ # Options tests
713
+
714
+ def test_filename_and_line
715
+ begin
716
+ render("\n\n = abc", :filename => 'test', :line => 2)
717
+ rescue Exception => e
718
+ assert_kind_of Haml::SyntaxError, e
719
+ assert_match(/test:4/, e.backtrace.first)
720
+ end
721
+
722
+ begin
723
+ render("\n\n= 123\n\n= nil[]", :filename => 'test', :line => 2)
724
+ rescue Exception => e
725
+ assert_kind_of NoMethodError, e
726
+ assert_match(/test:6/, e.backtrace.first)
727
+ end
728
+ end
729
+
730
+ def test_stop_eval
731
+ assert_equal("", render("= 'Hello'", :suppress_eval => true))
732
+ assert_equal("", render("- haml_concat 'foo'", :suppress_eval => true))
733
+ assert_equal("<div id='foo' yes='no' />\n", render("#foo{:yes => 'no'}/", :suppress_eval => true))
734
+ assert_equal("<div id='foo' />\n", render("#foo{:yes => 'no', :call => a_function() }/", :suppress_eval => true))
735
+ assert_equal("<div />\n", render("%div[1]/", :suppress_eval => true))
736
+ assert_equal("", render(":ruby\n Kernel.puts 'hello'", :suppress_eval => true))
737
+ end
738
+
739
+ def test_doctypes
740
+ assert_equal('<!DOCTYPE html>',
741
+ render('!!!', :format => :html5).strip)
742
+ assert_equal('<!DOCTYPE html>', render('!!! 5').strip)
743
+ assert_equal('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">',
744
+ render('!!! strict').strip)
745
+ assert_equal('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">',
746
+ render('!!! frameset').strip)
747
+ assert_equal('<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd">',
748
+ render('!!! mobile').strip)
749
+ assert_equal('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">',
750
+ render('!!! basic').strip)
751
+ assert_equal('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">',
752
+ render('!!! transitional').strip)
753
+ assert_equal('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">',
754
+ render('!!!').strip)
755
+ assert_equal('<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">',
756
+ render('!!! strict', :format => :html4).strip)
757
+ assert_equal('<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">',
758
+ render('!!! frameset', :format => :html4).strip)
759
+ assert_equal('<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">',
760
+ render('!!! transitional', :format => :html4).strip)
761
+ assert_equal('<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">',
762
+ render('!!!', :format => :html4).strip)
763
+ end
764
+
765
+ def test_attr_wrapper
766
+ assert_equal("<p strange=*attrs*></p>\n", render("%p{ :strange => 'attrs'}", :attr_wrapper => '*'))
767
+ assert_equal("<p escaped='quo\"te'></p>\n", render("%p{ :escaped => 'quo\"te'}", :attr_wrapper => '"'))
768
+ assert_equal("<p escaped=\"quo'te\"></p>\n", render("%p{ :escaped => 'quo\\'te'}", :attr_wrapper => '"'))
769
+ assert_equal("<p escaped=\"q'uo&quot;te\"></p>\n", render("%p{ :escaped => 'q\\'uo\"te'}", :attr_wrapper => '"'))
770
+ assert_equal("<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n", render("!!! XML", :attr_wrapper => '"'))
771
+ end
772
+
773
+ def test_attrs_parsed_correctly
774
+ assert_equal("<p boom=>biddly='bar =&gt; baz'></p>\n", render("%p{'boom=>biddly' => 'bar => baz'}"))
775
+ assert_equal("<p foo,bar='baz, qux'></p>\n", render("%p{'foo,bar' => 'baz, qux'}"))
776
+ assert_equal("<p escaped='quo&#x000A;te'></p>\n", render("%p{ :escaped => \"quo\\nte\"}"))
777
+ assert_equal("<p escaped='quo4te'></p>\n", render("%p{ :escaped => \"quo\#{2 + 2}te\"}"))
778
+ end
779
+
780
+ def test_correct_parsing_with_brackets
781
+ assert_equal("<p class='foo'>{tada} foo</p>\n", render("%p{:class => 'foo'} {tada} foo"))
782
+ assert_equal("<p class='foo'>deep {nested { things }}</p>\n", render("%p{:class => 'foo'} deep {nested { things }}"))
783
+ assert_equal("<p class='bar foo'>{a { d</p>\n", render("%p{{:class => 'foo'}, :class => 'bar'} {a { d"))
784
+ assert_equal("<p foo='bar'>a}</p>\n", render("%p{:foo => 'bar'} a}"))
785
+
786
+ foo = []
787
+ foo[0] = Struct.new('Foo', :id).new
788
+ assert_equal("<p class='struct_foo' id='struct_foo_new'>New User]</p>\n",
789
+ render("%p[foo[0]] New User]", :locals => {:foo => foo}))
790
+ assert_equal("<p class='prefix_struct_foo' id='prefix_struct_foo_new'>New User]</p>\n",
791
+ render("%p[foo[0], :prefix] New User]", :locals => {:foo => foo}))
792
+
793
+ foo[0].id = 1
794
+ assert_equal("<p class='struct_foo' id='struct_foo_1'>New User]</p>\n",
795
+ render("%p[foo[0]] New User]", :locals => {:foo => foo}))
796
+ assert_equal("<p class='prefix_struct_foo' id='prefix_struct_foo_1'>New User]</p>\n",
797
+ render("%p[foo[0], :prefix] New User]", :locals => {:foo => foo}))
798
+ end
799
+
800
+ def test_empty_attrs
801
+ assert_equal("<p attr=''>empty</p>\n", render("%p{ :attr => '' } empty"))
802
+ assert_equal("<p attr=''>empty</p>\n", render("%p{ :attr => x } empty", :locals => {:x => ''}))
803
+ end
804
+
805
+ def test_nil_attrs
806
+ assert_equal("<p>nil</p>\n", render("%p{ :attr => nil } nil"))
807
+ assert_equal("<p>nil</p>\n", render("%p{ :attr => x } nil", :locals => {:x => nil}))
808
+ end
809
+
810
+ def test_nil_id_with_syntactic_id
811
+ assert_equal("<p id='foo'>nil</p>\n", render("%p#foo{:id => nil} nil"))
812
+ assert_equal("<p id='foo_bar'>nil</p>\n", render("%p#foo{{:id => 'bar'}, :id => nil} nil"))
813
+ assert_equal("<p id='foo_bar'>nil</p>\n", render("%p#foo{{:id => nil}, :id => 'bar'} nil"))
814
+ end
815
+
816
+ def test_nil_class_with_syntactic_class
817
+ assert_equal("<p class='foo'>nil</p>\n", render("%p.foo{:class => nil} nil"))
818
+ assert_equal("<p class='bar foo'>nil</p>\n", render("%p.bar.foo{:class => nil} nil"))
819
+ assert_equal("<p class='bar foo'>nil</p>\n", render("%p.foo{{:class => 'bar'}, :class => nil} nil"))
820
+ assert_equal("<p class='bar foo'>nil</p>\n", render("%p.foo{{:class => nil}, :class => 'bar'} nil"))
821
+ end
822
+
823
+ def test_locals
824
+ assert_equal("<p>Paragraph!</p>\n", render("%p= text", :locals => { :text => "Paragraph!" }))
825
+ end
826
+
827
+ def test_dynamic_attrs_shouldnt_register_as_literal_values
828
+ assert_equal("<p a='b2c'></p>\n", render('%p{:a => "b#{1 + 1}c"}'))
829
+ assert_equal("<p a='b2c'></p>\n", render("%p{:a => 'b' + (1 + 1).to_s + 'c'}"))
830
+ end
831
+
832
+ def test_dynamic_attrs_with_self_closed_tag
833
+ assert_equal("<a b='2' />\nc\n", render("%a{'b' => 1 + 1}/\n= 'c'\n"))
834
+ end
835
+
836
+ EXCEPTION_MAP.each do |key, value|
837
+ define_method("test_exception (#{key.inspect})") do
838
+ begin
839
+ render(key, :filename => __FILE__)
840
+ rescue Exception => err
841
+ value = [value] unless value.is_a?(Array)
842
+ expected_message, line_no = value
843
+ line_no ||= key.split("\n").length
844
+
845
+ if expected_message == :compile
846
+ if Haml::Util.ruby1_8?
847
+ assert_match(/^compile error\n/, err.message, "Line: #{key}")
848
+ else
849
+ assert_match(/^#{Regexp.quote __FILE__}:#{line_no}: syntax error,/, err.message, "Line: #{key}")
850
+ end
851
+ else
852
+ assert_equal(expected_message, err.message, "Line: #{key}")
853
+ end
854
+
855
+ if Haml::Util.ruby1_8?
856
+ assert_match(/^#{Regexp.escape(__FILE__)}:#{line_no}/, err.backtrace[0], "Line: #{key}")
857
+ end
858
+ else
859
+ assert(false, "Exception not raised for\n#{key}")
860
+ end
861
+ end
862
+ end
863
+
864
+ def test_exception_line
865
+ render("a\nb\n!!!\n c\nd")
866
+ rescue Haml::SyntaxError => e
867
+ assert_equal("(test_exception_line):4", e.backtrace[0])
868
+ else
869
+ assert(false, '"a\nb\n!!!\n c\nd" doesn\'t produce an exception')
870
+ end
871
+
872
+ def test_exception
873
+ render("%p\n hi\n %a= undefined\n= 12")
874
+ rescue Exception => e
875
+ assert_match("(test_exception):3", e.backtrace[0])
876
+ else
877
+ # Test failed... should have raised an exception
878
+ assert(false)
879
+ end
880
+
881
+ def test_compile_error
882
+ render("a\nb\n- fee)\nc")
883
+ rescue Exception => e
884
+ assert_match(/\(test_compile_error\):3: syntax error/i, e.message)
885
+ else
886
+ assert(false,
887
+ '"a\nb\n- fee)\nc" doesn\'t produce an exception!')
888
+ end
889
+
890
+ def test_unbalanced_brackets
891
+ render('foo #{1 + 5} foo #{6 + 7 bar #{8 + 9}')
892
+ rescue Haml::SyntaxError => e
893
+ assert_equal("Unbalanced brackets.", e.message)
894
+ end
895
+
896
+ def test_balanced_conditional_comments
897
+ assert_equal("<!--[if !(IE 6)|(IE 7)]> Bracket: ] <![endif]-->\n",
898
+ render("/[if !(IE 6)|(IE 7)] Bracket: ]"))
899
+ end
900
+
901
+ def test_empty_filter
902
+ assert_equal(<<END, render(':javascript'))
903
+ <script type='text/javascript'>
904
+ //<![CDATA[
905
+
906
+ //]]>
907
+ </script>
908
+ END
909
+ end
910
+
911
+ def test_ugly_filter
912
+ assert_equal(<<END, render(":sass\n #foo\n bar: baz", :ugly => true))
913
+ #foo {
914
+ bar: baz; }
915
+ END
916
+ end
917
+
918
+ def test_local_assigns_dont_modify_class
919
+ assert_equal("bar\n", render("= foo", :locals => {:foo => 'bar'}))
920
+ assert_equal(nil, defined?(foo))
921
+ end
922
+
923
+ def test_object_ref_with_nil_id
924
+ user = User.new
925
+ assert_equal("<p class='struct_user' id='struct_user_new'>New User</p>\n",
926
+ render("%p[user] New User", :locals => {:user => user}))
927
+ end
928
+
929
+ def test_object_ref_before_attrs
930
+ user = User.new 42
931
+ assert_equal("<p class='struct_user' id='struct_user_42' style='width: 100px;'>New User</p>\n",
932
+ render("%p[user]{:style => 'width: 100px;'} New User", :locals => {:user => user}))
933
+ end
934
+
935
+ def test_non_literal_attributes
936
+ assert_equal("<p a1='foo' a2='bar' a3='baz' />\n",
937
+ render("%p{a2, a1, :a3 => 'baz'}/",
938
+ :locals => {:a1 => {:a1 => 'foo'}, :a2 => {:a2 => 'bar'}}))
939
+ end
940
+
941
+ def test_render_should_accept_a_binding_as_scope
942
+ string = "This is a string!"
943
+ string.instance_variable_set("@var", "Instance variable")
944
+ b = string.instance_eval do
945
+ var = "Local variable"
946
+ binding
947
+ end
948
+
949
+ assert_equal("<p>THIS IS A STRING!</p>\n<p>Instance variable</p>\n<p>Local variable</p>\n",
950
+ render("%p= upcase\n%p= @var\n%p= var", :scope => b))
951
+ end
952
+
953
+ def test_yield_should_work_with_binding
954
+ assert_equal("12\nFOO\n", render("= yield\n= upcase", :scope => "foo".instance_eval{binding}) { 12 })
955
+ end
956
+
957
+ def test_yield_should_work_with_def_method
958
+ s = "foo"
959
+ engine("= yield\n= upcase").def_method(s, :render)
960
+ assert_equal("12\nFOO\n", s.render { 12 })
961
+ end
962
+
963
+ def test_def_method_with_module
964
+ engine("= yield\n= upcase").def_method(String, :render_haml)
965
+ assert_equal("12\nFOO\n", "foo".render_haml { 12 })
966
+ end
967
+
968
+ def test_def_method_locals
969
+ obj = Object.new
970
+ engine("%p= foo\n.bar{:baz => baz}= boom").def_method(obj, :render, :foo, :baz, :boom)
971
+ assert_equal("<p>1</p>\n<div baz='2' class='bar'>3</div>\n", obj.render(:foo => 1, :baz => 2, :boom => 3))
972
+ end
973
+
974
+ def test_render_proc_locals
975
+ proc = engine("%p= foo\n.bar{:baz => baz}= boom").render_proc(Object.new, :foo, :baz, :boom)
976
+ assert_equal("<p>1</p>\n<div baz='2' class='bar'>3</div>\n", proc[:foo => 1, :baz => 2, :boom => 3])
977
+ end
978
+
979
+ def test_render_proc_with_binding
980
+ assert_equal("FOO\n", engine("= upcase").render_proc("foo".instance_eval{binding}).call)
981
+ end
982
+
983
+ def test_haml_buffer_gets_reset_even_with_exception
984
+ scope = Object.new
985
+ render("- raise Haml::Error", :scope => scope)
986
+ assert(false, "Expected exception")
987
+ rescue Exception
988
+ assert_nil(scope.send(:haml_buffer))
989
+ end
990
+
991
+ def test_def_method_haml_buffer_gets_reset_even_with_exception
992
+ scope = Object.new
993
+ engine("- raise Haml::Error").def_method(scope, :render)
994
+ scope.render
995
+ assert(false, "Expected exception")
996
+ rescue Exception
997
+ assert_nil(scope.send(:haml_buffer))
998
+ end
999
+
1000
+ def test_render_proc_haml_buffer_gets_reset_even_with_exception
1001
+ scope = Object.new
1002
+ proc = engine("- raise Haml::Error").render_proc(scope)
1003
+ proc.call
1004
+ assert(false, "Expected exception")
1005
+ rescue Exception
1006
+ assert_nil(scope.send(:haml_buffer))
1007
+ end
1008
+
1009
+ def test_ugly_true
1010
+ assert_equal("<div id='outer'>\n<div id='inner'>\n<p>hello world</p>\n</div>\n</div>\n",
1011
+ render("#outer\n #inner\n %p hello world", :ugly => true))
1012
+
1013
+ assert_equal("<p>#{'s' * 75}</p>\n",
1014
+ render("%p #{'s' * 75}", :ugly => true))
1015
+
1016
+ assert_equal("<p>#{'s' * 75}</p>\n",
1017
+ render("%p= 's' * 75", :ugly => true))
1018
+ end
1019
+
1020
+ def test_auto_preserve_unless_ugly
1021
+ assert_equal("<pre>foo&#x000A;bar</pre>\n", render('%pre="foo\nbar"'))
1022
+ assert_equal("<pre>foo\nbar</pre>\n", render("%pre\n foo\n bar"))
1023
+ assert_equal("<pre>foo\nbar</pre>\n", render('%pre="foo\nbar"', :ugly => true))
1024
+ assert_equal("<pre>foo\nbar</pre>\n", render("%pre\n foo\n bar", :ugly => true))
1025
+ end
1026
+
1027
+ def test_xhtml_output_option
1028
+ assert_equal "<p>\n <br />\n</p>\n", render("%p\n %br", :format => :xhtml)
1029
+ assert_equal "<a />\n", render("%a/", :format => :xhtml)
1030
+ end
1031
+
1032
+ def test_arbitrary_output_option
1033
+ assert_raise(Haml::Error, "Invalid output format :html1") { engine("%br", :format => :html1) }
1034
+ end
1035
+
1036
+ def test_static_hashes
1037
+ assert_equal("<a b='a =&gt; b'></a>\n", render("%a{:b => 'a => b'}", :suppress_eval => true))
1038
+ assert_equal("<a b='a, b'></a>\n", render("%a{:b => 'a, b'}", :suppress_eval => true))
1039
+ assert_equal("<a b='a\tb'></a>\n", render('%a{:b => "a\tb"}', :suppress_eval => true))
1040
+ assert_equal("<a b='a\#{foo}b'></a>\n", render('%a{:b => "a\\#{foo}b"}', :suppress_eval => true))
1041
+ end
1042
+
1043
+ def test_dynamic_hashes_with_suppress_eval
1044
+ assert_equal("<a></a>\n", render('%a{:b => "a #{1 + 1} b", :c => "d"}', :suppress_eval => true))
1045
+ end
1046
+
1047
+ def test_utf8_attrs
1048
+ assert_equal("<a href='héllo'></a>\n", render("%a{:href => 'héllo'}"))
1049
+ assert_equal("<a href='héllo'></a>\n", render("%a(href='héllo')"))
1050
+ end
1051
+
1052
+ # HTML 4.0
1053
+
1054
+ def test_html_has_no_self_closing_tags
1055
+ assert_equal "<p>\n <br>\n</p>\n", render("%p\n %br", :format => :html4)
1056
+ assert_equal "<br>\n", render("%br/", :format => :html4)
1057
+ end
1058
+
1059
+ def test_html_renders_empty_node_with_closing_tag
1060
+ assert_equal "<div class='foo'></div>\n", render(".foo", :format => :html4)
1061
+ end
1062
+
1063
+ def test_html_doesnt_add_slash_to_self_closing_tags
1064
+ assert_equal "<a>\n", render("%a/", :format => :html4)
1065
+ assert_equal "<a foo='2'>\n", render("%a{:foo => 1 + 1}/", :format => :html4)
1066
+ assert_equal "<meta>\n", render("%meta", :format => :html4)
1067
+ assert_equal "<meta foo='2'>\n", render("%meta{:foo => 1 + 1}", :format => :html4)
1068
+ end
1069
+
1070
+ def test_html_ignores_xml_prolog_declaration
1071
+ assert_equal "", render('!!! XML', :format => :html4)
1072
+ end
1073
+
1074
+ def test_html_has_different_doctype
1075
+ assert_equal %{<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\n},
1076
+ render('!!!', :format => :html4)
1077
+ end
1078
+
1079
+ # because anything before the doctype triggers quirks mode in IE
1080
+ def test_xml_prolog_and_doctype_dont_result_in_a_leading_whitespace_in_html
1081
+ assert_no_match(/^\s+/, render("!!! xml\n!!!", :format => :html4))
1082
+ end
1083
+
1084
+ # HTML5
1085
+ def test_html5_doctype
1086
+ assert_equal %{<!DOCTYPE html>\n}, render('!!!', :format => :html5)
1087
+ end
1088
+
1089
+ # New attributes
1090
+
1091
+ def test_basic_new_attributes
1092
+ assert_equal("<a>bar</a>\n", render("%a() bar"))
1093
+ assert_equal("<a href='foo'>bar</a>\n", render("%a(href='foo') bar"))
1094
+ assert_equal("<a b='c' c='d' d='e'>baz</a>\n", render(%q{%a(b="c" c='d' d="e") baz}))
1095
+ end
1096
+
1097
+ def test_new_attribute_ids
1098
+ assert_equal("<div id='foo_bar'></div>\n", render("#foo(id='bar')"))
1099
+ assert_equal("<div id='foo_bar_baz'></div>\n", render("#foo{:id => 'bar'}(id='baz')"))
1100
+ assert_equal("<div id='foo_baz_bar'></div>\n", render("#foo(id='baz'){:id => 'bar'}"))
1101
+ foo = User.new(42)
1102
+ assert_equal("<div class='struct_user' id='foo_baz_bar_struct_user_42'></div>\n",
1103
+ render("#foo(id='baz'){:id => 'bar'}[foo]", :locals => {:foo => foo}))
1104
+ assert_equal("<div class='struct_user' id='foo_baz_bar_struct_user_42'></div>\n",
1105
+ render("#foo(id='baz')[foo]{:id => 'bar'}", :locals => {:foo => foo}))
1106
+ assert_equal("<div class='struct_user' id='foo_baz_bar_struct_user_42'></div>\n",
1107
+ render("#foo[foo](id='baz'){:id => 'bar'}", :locals => {:foo => foo}))
1108
+ assert_equal("<div class='struct_user' id='foo_bar_baz_struct_user_42'></div>\n",
1109
+ render("#foo[foo]{:id => 'bar'}(id='baz')", :locals => {:foo => foo}))
1110
+ end
1111
+
1112
+ def test_new_attribute_classes
1113
+ assert_equal("<div class='bar foo'></div>\n", render(".foo(class='bar')"))
1114
+ assert_equal("<div class='bar baz foo'></div>\n", render(".foo{:class => 'bar'}(class='baz')"))
1115
+ assert_equal("<div class='bar baz foo'></div>\n", render(".foo(class='baz'){:class => 'bar'}"))
1116
+ foo = User.new(42)
1117
+ assert_equal("<div class='bar baz foo struct_user' id='struct_user_42'></div>\n",
1118
+ render(".foo(class='baz'){:class => 'bar'}[foo]", :locals => {:foo => foo}))
1119
+ assert_equal("<div class='bar baz foo struct_user' id='struct_user_42'></div>\n",
1120
+ render(".foo[foo](class='baz'){:class => 'bar'}", :locals => {:foo => foo}))
1121
+ assert_equal("<div class='bar baz foo struct_user' id='struct_user_42'></div>\n",
1122
+ render(".foo[foo]{:class => 'bar'}(class='baz')", :locals => {:foo => foo}))
1123
+ end
1124
+
1125
+ def test_dynamic_new_attributes
1126
+ assert_equal("<a href='12'>bar</a>\n", render("%a(href=foo) bar", :locals => {:foo => 12}))
1127
+ assert_equal("<a b='12' c='13' d='14'>bar</a>\n", render("%a(b=b c='13' d=d) bar", :locals => {:b => 12, :d => 14}))
1128
+ end
1129
+
1130
+ def test_new_attribute_interpolation
1131
+ assert_equal("<a href='12'>bar</a>\n", render('%a(href="1#{1 + 1}") bar'))
1132
+ assert_equal("<a href='2: 2, 3: 3'>bar</a>\n", render(%q{%a(href='2: #{1 + 1}, 3: #{foo}') bar}, :locals => {:foo => 3}))
1133
+ assert_equal(%Q{<a href='1\#{1 + 1}'>bar</a>\n}, render('%a(href="1\#{1 + 1}") bar'))
1134
+ end
1135
+
1136
+ def test_truthy_new_attributes
1137
+ assert_equal("<a href='href'>bar</a>\n", render("%a(href) bar"))
1138
+ assert_equal("<a bar='baz' href>bar</a>\n", render("%a(href bar='baz') bar", :format => :html5))
1139
+ assert_equal("<a href='href'>bar</a>\n", render("%a(href=true) bar"))
1140
+ assert_equal("<a>bar</a>\n", render("%a(href=false) bar"))
1141
+ end
1142
+
1143
+ def test_new_attribute_parsing
1144
+ assert_equal("<a a2='b2'>bar</a>\n", render("%a(a2=b2) bar", :locals => {:b2 => 'b2'}))
1145
+ assert_equal(%Q{<a a='foo"bar'>bar</a>\n}, render(%q{%a(a="#{'foo"bar'}") bar})) #'
1146
+ assert_equal(%Q{<a a="foo'bar">bar</a>\n}, render(%q{%a(a="#{"foo'bar"}") bar})) #'
1147
+ assert_equal(%Q{<a a='foo"bar'>bar</a>\n}, render(%q{%a(a='foo"bar') bar}))
1148
+ assert_equal(%Q{<a a="foo'bar">bar</a>\n}, render(%q{%a(a="foo'bar") bar}))
1149
+ assert_equal("<a a:b='foo'>bar</a>\n", render("%a(a:b='foo') bar"))
1150
+ assert_equal("<a a='foo' b='bar'>bar</a>\n", render("%a(a = 'foo' b = 'bar') bar"))
1151
+ assert_equal("<a a='foo' b='bar'>bar</a>\n", render("%a(a = foo b = bar) bar", :locals => {:foo => 'foo', :bar => 'bar'}))
1152
+ assert_equal("<a a='foo'>(b='bar')</a>\n", render("%a(a='foo')(b='bar')"))
1153
+ assert_equal("<a a='foo)bar'>baz</a>\n", render("%a(a='foo)bar') baz"))
1154
+ assert_equal("<a a='foo'>baz</a>\n", render("%a( a = 'foo' ) baz"))
1155
+ end
1156
+
1157
+ def test_new_attribute_escaping
1158
+ assert_equal(%Q{<a a='foo " bar'>bar</a>\n}, render(%q{%a(a="foo \" bar") bar}))
1159
+ assert_equal(%Q{<a a='foo \\" bar'>bar</a>\n}, render(%q{%a(a="foo \\\\\" bar") bar}))
1160
+
1161
+ assert_equal(%Q{<a a="foo ' bar">bar</a>\n}, render(%q{%a(a='foo \' bar') bar}))
1162
+ assert_equal(%Q{<a a="foo \\' bar">bar</a>\n}, render(%q{%a(a='foo \\\\\' bar') bar}))
1163
+
1164
+ assert_equal(%Q{<a a='foo \\ bar'>bar</a>\n}, render(%q{%a(a="foo \\\\ bar") bar}))
1165
+ assert_equal(%Q{<a a='foo \#{1 + 1} bar'>bar</a>\n}, render(%q{%a(a="foo \#{1 + 1} bar") bar}))
1166
+ end
1167
+
1168
+ def test_multiline_new_attribute
1169
+ assert_equal("<a a='b' c='d'>bar</a>\n", render("%a(a='b'\n c='d') bar"))
1170
+ assert_equal("<a a='b' b='c' c='d' d='e' e='f' f='j'>bar</a>\n",
1171
+ render("%a(a='b' b='c'\n c='d' d=e\n e='f' f='j') bar", :locals => {:e => 'e'}))
1172
+ end
1173
+
1174
+ def test_new_and_old_attributes
1175
+ assert_equal("<a a='b' c='d'>bar</a>\n", render("%a(a='b'){:c => 'd'} bar"))
1176
+ assert_equal("<a a='b' c='d'>bar</a>\n", render("%a{:c => 'd'}(a='b') bar"))
1177
+ assert_equal("<a a='b' c='d'>bar</a>\n", render("%a(c='d'){:a => 'b'} bar"))
1178
+ assert_equal("<a a='b' c='d'>bar</a>\n", render("%a{:a => 'b'}(c='d') bar"))
1179
+
1180
+ assert_equal("<a a='d'>bar</a>\n", render("%a{:a => 'b'}(a='d') bar"))
1181
+ assert_equal("<a a='b'>bar</a>\n", render("%a(a='d'){:a => 'b'} bar"))
1182
+
1183
+ assert_equal("<a a='b' b='c' c='d' d='e'>bar</a>\n",
1184
+ render("%a{:a => 'b',\n:b => 'c'}(c='d'\nd='e') bar"))
1185
+ end
1186
+
1187
+ # Encodings
1188
+
1189
+ unless Haml::Util.ruby1_8?
1190
+ def test_default_encoding
1191
+ assert_equal(Encoding.find("utf-8"), render(<<HAML.encode("us-ascii")).encoding)
1192
+ HTML
1193
+ %p bar
1194
+ %p foo
1195
+ HAML
1196
+ end
1197
+
1198
+ def test_convert_template_render
1199
+ assert_equal(<<HTML, render(<<HAML.encode("iso-8859-1"), :encoding => "utf-8"))
1200
+ <p>bâr</p>
1201
+ <p>föö</p>
1202
+ HTML
1203
+ %p bâr
1204
+ %p föö
1205
+ HAML
1206
+ end
1207
+
1208
+ def test_fake_ascii_encoding
1209
+ assert_equal(<<HTML.force_encoding("ascii-8bit"), render(<<HAML, :encoding => "ascii-8bit"))
1210
+ <p>bâr</p>
1211
+ <p>föö</p>
1212
+ HTML
1213
+ %p bâr
1214
+ %p föö
1215
+ HAML
1216
+ end
1217
+
1218
+ def test_convert_template_render_proc
1219
+ assert_converts_template_properly {|e| e.render_proc.call}
1220
+ end
1221
+
1222
+ def test_convert_template_render
1223
+ assert_converts_template_properly {|e| e.render}
1224
+ end
1225
+
1226
+ def test_convert_template_def_method
1227
+ assert_converts_template_properly do |e|
1228
+ o = Object.new
1229
+ e.def_method(o, :render)
1230
+ o.render
1231
+ end
1232
+ end
1233
+ end
1234
+
1235
+ private
1236
+
1237
+ def assert_converts_template_properly
1238
+ engine = Haml::Engine.new(<<HAML.encode("iso-8859-1"), :encoding => "utf-8")
1239
+ %p bâr
1240
+ %p föö
1241
+ HAML
1242
+ assert_equal(<<HTML, yield(engine))
1243
+ <p>bâr</p>
1244
+ <p>föö</p>
1245
+ HTML
1246
+ end
1247
+ end