simple-templater 0.0.1.3 → 0.0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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