simple-templater 0.0.1.4 → 0.0.1.5

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 (917) hide show
  1. data/.gitignore +9 -0
  2. data/Gemfile +5 -2
  3. data/LICENSE +1 -1
  4. data/bin/simple-templater +10 -6
  5. data/gems/cache/nake-0.0.8.gem +0 -0
  6. data/gems/cache/term-ansicolor-1.0.4.gem +0 -0
  7. data/lib/simple-templater/builder.rb +5 -5
  8. data/lib/simple-templater/generator.rb +4 -4
  9. data/lib/simple-templater/helpers.rb +2 -2
  10. data/lib/simple-templater/hooks/hook.rb +2 -2
  11. data/lib/simple-templater.rb +8 -0
  12. data/simple-templater.gemspec +15 -4
  13. data/spec/simple-templater/hooks/hook_spec.rb +0 -1
  14. data/spec/simple-templater/hooks/postprocess/git_repository_spec.rb +0 -1
  15. data/spec/spec_helper.rb +33 -0
  16. data/spec/stubs/test_generator/test_generator.gemspec +1 -1
  17. data/stubs/project/content/%name%.gemspec.rbt +16 -6
  18. data/stubs/project/content/%name%.pre.gemspec.rbt +8 -0
  19. data/stubs/project/content/.gitignore +12 -0
  20. data/stubs/project/content/CHANGELOG +1 -1
  21. data/stubs/project/content/Gemfile +8 -0
  22. data/stubs/project/content/README.textile.rbt +2 -2
  23. data/stubs/project/content/bin/%name%.rbt +1 -0
  24. data/{gems/gems/rspec-1.2.9/spec/spec/runner/empty_file.txt → stubs/project/content/examples/.gitignore} +0 -0
  25. data/{gems/gems/rspec-1.2.9/spec/spec/runner/resources/a_bar.rb → stubs/project/content/lib/%name%/.gitignore} +0 -0
  26. data/stubs/project/content/lib/%name%/version.rb.rbt +5 -0
  27. data/stubs/project/content/lib/%name%.rb.rbt +0 -1
  28. data/{gems/gems/rspec-1.2.9/spec/spec/runner/resources/a_foo.rb → stubs/project/content/spec/%name%/.gitignore} +0 -0
  29. data/stubs/project/content/tasks/%name%.nake +0 -0
  30. data/stubs/project/content/tasks.rb.rbt +37 -0
  31. data/stubs/stub/content/content/.gitignore +0 -0
  32. data/tasks.rb +37 -0
  33. metadata +48 -904
  34. data/Rakefile +0 -29
  35. data/gems/environment.rb +0 -107
  36. data/gems/gems/abstract-1.0.0/ChangeLog +0 -3
  37. data/gems/gems/abstract-1.0.0/README.txt +0 -57
  38. data/gems/gems/abstract-1.0.0/abstract.gemspec +0 -48
  39. data/gems/gems/abstract-1.0.0/lib/abstract.rb +0 -75
  40. data/gems/gems/abstract-1.0.0/setup.rb +0 -1331
  41. data/gems/gems/abstract-1.0.0/test/test.rb +0 -91
  42. data/gems/gems/erubis-2.6.5/CHANGES.txt +0 -744
  43. data/gems/gems/erubis-2.6.5/MIT-LICENSE +0 -20
  44. data/gems/gems/erubis-2.6.5/README.txt +0 -102
  45. data/gems/gems/erubis-2.6.5/benchmark/Makefile +0 -6
  46. data/gems/gems/erubis-2.6.5/benchmark/bench.rb +0 -313
  47. data/gems/gems/erubis-2.6.5/benchmark/bench_context.yaml +0 -141
  48. data/gems/gems/erubis-2.6.5/benchmark/templates/_footer.html +0 -4
  49. data/gems/gems/erubis-2.6.5/benchmark/templates/_header.html +0 -52
  50. data/gems/gems/erubis-2.6.5/benchmark/templates/bench_erb.rhtml +0 -29
  51. data/gems/gems/erubis-2.6.5/benchmark/templates/bench_erubis.rhtml +0 -29
  52. data/gems/gems/erubis-2.6.5/benchmark/templates/bench_eruby.rhtml +0 -29
  53. data/gems/gems/erubis-2.6.5/bin/erubis +0 -10
  54. data/gems/gems/erubis-2.6.5/contrib/erubis +0 -3330
  55. data/gems/gems/erubis-2.6.5/contrib/erubis-run.rb +0 -132
  56. data/gems/gems/erubis-2.6.5/contrib/inline-require +0 -179
  57. data/gems/gems/erubis-2.6.5/doc/docstyle.css +0 -188
  58. data/gems/gems/erubis-2.6.5/doc/users-guide.html +0 -3285
  59. data/gems/gems/erubis-2.6.5/doc-api/classes/ActionView/TemplateHandlers/ErubisHandler.html +0 -209
  60. data/gems/gems/erubis-2.6.5/doc-api/classes/ActionView.html +0 -105
  61. data/gems/gems/erubis-2.6.5/doc-api/classes/ERB.html +0 -101
  62. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/ArrayBufferEnhancer.html +0 -175
  63. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/ArrayBufferEruby.html +0 -120
  64. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/ArrayEnhancer.html +0 -174
  65. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/ArrayEruby.html +0 -120
  66. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Basic/Converter.html +0 -327
  67. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Basic/Engine.html +0 -130
  68. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Basic.html +0 -112
  69. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/BiPatternEnhancer.html +0 -215
  70. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/BiPatternEruby.html +0 -120
  71. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/CGenerator.html +0 -386
  72. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/CommandOptionError.html +0 -113
  73. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Context.html +0 -344
  74. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Converter.html +0 -283
  75. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/DeleteIndentEnhancer.html +0 -150
  76. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/DeleteIndentEruby.html +0 -120
  77. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Ec.html +0 -126
  78. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Ejava.html +0 -126
  79. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Ejavascript.html +0 -126
  80. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Engine.html +0 -305
  81. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Eperl.html +0 -126
  82. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Ephp.html +0 -126
  83. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/ErboutEnhancer.html +0 -175
  84. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/ErboutEruby.html +0 -120
  85. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/ErubisError.html +0 -117
  86. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Eruby.html +0 -132
  87. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/EscapeEnhancer.html +0 -165
  88. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/EscapedEc.html +0 -120
  89. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/EscapedEjava.html +0 -120
  90. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/EscapedEjavascript.html +0 -120
  91. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/EscapedEperl.html +0 -120
  92. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/EscapedEphp.html +0 -120
  93. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/EscapedEruby.html +0 -127
  94. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/EscapedEscheme.html +0 -120
  95. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Escheme.html +0 -126
  96. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Evaluator.html +0 -212
  97. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/FastEruby.html +0 -131
  98. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Generator.html +0 -416
  99. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/HeaderFooterEnhancer.html +0 -267
  100. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/HeaderFooterEruby.html +0 -120
  101. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Helpers/RailsFormHelper.html +0 -787
  102. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Helpers/RailsHelper/TemplateConverter.html +0 -213
  103. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Helpers/RailsHelper.html +0 -349
  104. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Helpers.html +0 -116
  105. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/InterpolationEnhancer.html +0 -306
  106. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/InterpolationEruby.html +0 -120
  107. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/JavaGenerator.html +0 -359
  108. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/JavascriptGenerator.html +0 -386
  109. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/Main.html +0 -341
  110. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/NoCodeEnhancer.html +0 -249
  111. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/NoCodeEruby.html +0 -120
  112. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/NoTextEnhancer.html +0 -159
  113. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/NoTextEruby.html +0 -120
  114. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/NotSupportedError.html +0 -119
  115. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/OptimizedEruby.html +0 -163
  116. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/OptimizedGenerator.html +0 -439
  117. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/OptimizedXmlEruby.html +0 -163
  118. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PI/Converter.html +0 -266
  119. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PI/Ec.html +0 -166
  120. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PI/Ejava.html +0 -166
  121. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PI/Ejavascript.html +0 -166
  122. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PI/Engine.html +0 -122
  123. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PI/Eperl.html +0 -166
  124. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PI/Ephp.html +0 -166
  125. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PI/Eruby.html +0 -155
  126. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PI/Escheme.html +0 -166
  127. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PI/TinyEruby.html +0 -293
  128. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PI.html +0 -124
  129. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PercentLineEnhancer.html +0 -179
  130. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PercentLineEruby.html +0 -120
  131. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PerlGenerator.html +0 -344
  132. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PhpGenerator.html +0 -350
  133. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PreprocessingEruby.html +0 -183
  134. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PreprocessingHelper.html +0 -212
  135. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PrintEnabledEnhancer.html +0 -212
  136. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PrintEnabledEruby.html +0 -120
  137. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PrintOutEnhancer.html +0 -244
  138. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PrintOutEruby.html +0 -120
  139. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/PrintOutSimplifiedEruby.html +0 -121
  140. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/RubyEvaluator.html +0 -227
  141. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/RubyGenerator.html +0 -327
  142. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/SchemeGenerator.html +0 -382
  143. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/SimplifiedEruby.html +0 -120
  144. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/SimplifyEnhancer.html +0 -191
  145. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/StdoutEnhancer.html +0 -173
  146. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/StdoutEruby.html +0 -120
  147. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/StdoutSimplifiedEruby.html +0 -121
  148. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/StringBufferEnhancer.html +0 -174
  149. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/StringBufferEruby.html +0 -120
  150. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/StringIOEruby.html +0 -120
  151. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/TinyEruby.html +0 -298
  152. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/XmlEruby.html +0 -130
  153. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis/XmlHelper.html +0 -255
  154. data/gems/gems/erubis-2.6.5/doc-api/classes/Erubis.html +0 -353
  155. data/gems/gems/erubis-2.6.5/doc-api/created.rid +0 -1
  156. data/gems/gems/erubis-2.6.5/doc-api/files/README_txt.html +0 -247
  157. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/context_rb.html +0 -107
  158. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/converter_rb.html +0 -114
  159. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/engine/ec_rb.html +0 -115
  160. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/engine/ejava_rb.html +0 -115
  161. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/engine/ejavascript_rb.html +0 -115
  162. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/engine/enhanced_rb.html +0 -115
  163. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/engine/eperl_rb.html +0 -115
  164. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/engine/ephp_rb.html +0 -115
  165. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/engine/eruby_rb.html +0 -115
  166. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/engine/escheme_rb.html +0 -115
  167. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/engine/optimized_rb.html +0 -114
  168. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/engine_rb.html +0 -117
  169. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/enhancer_rb.html +0 -107
  170. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/error_rb.html +0 -107
  171. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/evaluator_rb.html +0 -115
  172. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/generator_rb.html +0 -114
  173. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/helper_rb.html +0 -107
  174. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/helpers/rails_form_helper_rb.html +0 -107
  175. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/helpers/rails_helper_rb.html +0 -116
  176. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/local-setting_rb.html +0 -107
  177. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/main_rb.html +0 -127
  178. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/preprocessing_rb.html +0 -114
  179. data/gems/gems/erubis-2.6.5/doc-api/files/erubis/tiny_rb.html +0 -107
  180. data/gems/gems/erubis-2.6.5/doc-api/files/erubis_rb.html +0 -118
  181. data/gems/gems/erubis-2.6.5/doc-api/fr_class_index.html +0 -122
  182. data/gems/gems/erubis-2.6.5/doc-api/fr_file_index.html +0 -51
  183. data/gems/gems/erubis-2.6.5/doc-api/fr_method_index.html +0 -251
  184. data/gems/gems/erubis-2.6.5/doc-api/index.html +0 -24
  185. data/gems/gems/erubis-2.6.5/doc-api/rdoc-style.css +0 -208
  186. data/gems/gems/erubis-2.6.5/examples/basic/Makefile +0 -53
  187. data/gems/gems/erubis-2.6.5/examples/basic/example.ec +0 -42
  188. data/gems/gems/erubis-2.6.5/examples/basic/example.ejava +0 -45
  189. data/gems/gems/erubis-2.6.5/examples/basic/example.ejs +0 -16
  190. data/gems/gems/erubis-2.6.5/examples/basic/example.eperl +0 -16
  191. data/gems/gems/erubis-2.6.5/examples/basic/example.ephp +0 -17
  192. data/gems/gems/erubis-2.6.5/examples/basic/example.eruby +0 -15
  193. data/gems/gems/erubis-2.6.5/examples/basic/example.escheme +0 -26
  194. data/gems/gems/erubis-2.6.5/examples/pi/Makefile +0 -54
  195. data/gems/gems/erubis-2.6.5/examples/pi/example.ec +0 -42
  196. data/gems/gems/erubis-2.6.5/examples/pi/example.ejava +0 -45
  197. data/gems/gems/erubis-2.6.5/examples/pi/example.ejs +0 -16
  198. data/gems/gems/erubis-2.6.5/examples/pi/example.eperl +0 -16
  199. data/gems/gems/erubis-2.6.5/examples/pi/example.ephp +0 -17
  200. data/gems/gems/erubis-2.6.5/examples/pi/example.eruby +0 -15
  201. data/gems/gems/erubis-2.6.5/examples/pi/example.escheme +0 -26
  202. data/gems/gems/erubis-2.6.5/lib/erubis/context.rb +0 -83
  203. data/gems/gems/erubis-2.6.5/lib/erubis/converter.rb +0 -357
  204. data/gems/gems/erubis-2.6.5/lib/erubis/engine/ec.rb +0 -117
  205. data/gems/gems/erubis-2.6.5/lib/erubis/engine/ejava.rb +0 -110
  206. data/gems/gems/erubis-2.6.5/lib/erubis/engine/ejavascript.rb +0 -119
  207. data/gems/gems/erubis-2.6.5/lib/erubis/engine/enhanced.rb +0 -121
  208. data/gems/gems/erubis-2.6.5/lib/erubis/engine/eperl.rb +0 -95
  209. data/gems/gems/erubis-2.6.5/lib/erubis/engine/ephp.rb +0 -99
  210. data/gems/gems/erubis-2.6.5/lib/erubis/engine/eruby.rb +0 -124
  211. data/gems/gems/erubis-2.6.5/lib/erubis/engine/escheme.rb +0 -114
  212. data/gems/gems/erubis-2.6.5/lib/erubis/engine/optimized.rb +0 -127
  213. data/gems/gems/erubis-2.6.5/lib/erubis/engine.rb +0 -120
  214. data/gems/gems/erubis-2.6.5/lib/erubis/enhancer.rb +0 -680
  215. data/gems/gems/erubis-2.6.5/lib/erubis/error.rb +0 -23
  216. data/gems/gems/erubis-2.6.5/lib/erubis/evaluator.rb +0 -88
  217. data/gems/gems/erubis-2.6.5/lib/erubis/generator.rb +0 -85
  218. data/gems/gems/erubis-2.6.5/lib/erubis/helper.rb +0 -47
  219. data/gems/gems/erubis-2.6.5/lib/erubis/helpers/rails_form_helper.rb +0 -197
  220. data/gems/gems/erubis-2.6.5/lib/erubis/helpers/rails_helper.rb +0 -353
  221. data/gems/gems/erubis-2.6.5/lib/erubis/local-setting.rb +0 -9
  222. data/gems/gems/erubis-2.6.5/lib/erubis/main.rb +0 -489
  223. data/gems/gems/erubis-2.6.5/lib/erubis/preprocessing.rb +0 -58
  224. data/gems/gems/erubis-2.6.5/lib/erubis/tiny.rb +0 -144
  225. data/gems/gems/erubis-2.6.5/lib/erubis.rb +0 -72
  226. data/gems/gems/erubis-2.6.5/setup.rb +0 -1331
  227. data/gems/gems/erubis-2.6.5/test/assert-text-equal.rb +0 -44
  228. data/gems/gems/erubis-2.6.5/test/data/users-guide/Example.ejava +0 -55
  229. data/gems/gems/erubis-2.6.5/test/data/users-guide/array_example.result +0 -9
  230. data/gems/gems/erubis-2.6.5/test/data/users-guide/arraybuffer_example.result +0 -9
  231. data/gems/gems/erubis-2.6.5/test/data/users-guide/bipattern-example.rhtml +0 -4
  232. data/gems/gems/erubis-2.6.5/test/data/users-guide/bipattern_example.result +0 -6
  233. data/gems/gems/erubis-2.6.5/test/data/users-guide/context.rb +0 -6
  234. data/gems/gems/erubis-2.6.5/test/data/users-guide/context.yaml +0 -8
  235. data/gems/gems/erubis-2.6.5/test/data/users-guide/def_method.rb +0 -14
  236. data/gems/gems/erubis-2.6.5/test/data/users-guide/def_method.result +0 -3
  237. data/gems/gems/erubis-2.6.5/test/data/users-guide/escape_example.result +0 -9
  238. data/gems/gems/erubis-2.6.5/test/data/users-guide/example.ec +0 -27
  239. data/gems/gems/erubis-2.6.5/test/data/users-guide/example.ejs +0 -20
  240. data/gems/gems/erubis-2.6.5/test/data/users-guide/example.eperl +0 -18
  241. data/gems/gems/erubis-2.6.5/test/data/users-guide/example.ephp +0 -18
  242. data/gems/gems/erubis-2.6.5/test/data/users-guide/example.eruby +0 -6
  243. data/gems/gems/erubis-2.6.5/test/data/users-guide/example.escheme +0 -28
  244. data/gems/gems/erubis-2.6.5/test/data/users-guide/example1.eruby +0 -6
  245. data/gems/gems/erubis-2.6.5/test/data/users-guide/example1.rb +0 -17
  246. data/gems/gems/erubis-2.6.5/test/data/users-guide/example1.result +0 -16
  247. data/gems/gems/erubis-2.6.5/test/data/users-guide/example10.rb +0 -4
  248. data/gems/gems/erubis-2.6.5/test/data/users-guide/example10.result +0 -17
  249. data/gems/gems/erubis-2.6.5/test/data/users-guide/example10.xhtml +0 -14
  250. data/gems/gems/erubis-2.6.5/test/data/users-guide/example10_x.result +0 -17
  251. data/gems/gems/erubis-2.6.5/test/data/users-guide/example11.php +0 -20
  252. data/gems/gems/erubis-2.6.5/test/data/users-guide/example11.result +0 -23
  253. data/gems/gems/erubis-2.6.5/test/data/users-guide/example11.rhtml +0 -21
  254. data/gems/gems/erubis-2.6.5/test/data/users-guide/example11_C.result +0 -10
  255. data/gems/gems/erubis-2.6.5/test/data/users-guide/example11_N.result +0 -16
  256. data/gems/gems/erubis-2.6.5/test/data/users-guide/example11_U.result +0 -16
  257. data/gems/gems/erubis-2.6.5/test/data/users-guide/example11_php.result +0 -15
  258. data/gems/gems/erubis-2.6.5/test/data/users-guide/example1_x.result +0 -9
  259. data/gems/gems/erubis-2.6.5/test/data/users-guide/example2.eruby +0 -7
  260. data/gems/gems/erubis-2.6.5/test/data/users-guide/example2.rb +0 -10
  261. data/gems/gems/erubis-2.6.5/test/data/users-guide/example2.result +0 -27
  262. data/gems/gems/erubis-2.6.5/test/data/users-guide/example2_trim.result +0 -10
  263. data/gems/gems/erubis-2.6.5/test/data/users-guide/example2_x.result +0 -10
  264. data/gems/gems/erubis-2.6.5/test/data/users-guide/example3.eruby +0 -6
  265. data/gems/gems/erubis-2.6.5/test/data/users-guide/example3.rb +0 -10
  266. data/gems/gems/erubis-2.6.5/test/data/users-guide/example31.result +0 -22
  267. data/gems/gems/erubis-2.6.5/test/data/users-guide/example32.result +0 -4
  268. data/gems/gems/erubis-2.6.5/test/data/users-guide/example3_e.result +0 -8
  269. data/gems/gems/erubis-2.6.5/test/data/users-guide/example4.eruby +0 -3
  270. data/gems/gems/erubis-2.6.5/test/data/users-guide/example4.rb +0 -11
  271. data/gems/gems/erubis-2.6.5/test/data/users-guide/example4.result +0 -10
  272. data/gems/gems/erubis-2.6.5/test/data/users-guide/example4_x.result +0 -5
  273. data/gems/gems/erubis-2.6.5/test/data/users-guide/example5.eruby +0 -6
  274. data/gems/gems/erubis-2.6.5/test/data/users-guide/example5.rb +0 -16
  275. data/gems/gems/erubis-2.6.5/test/data/users-guide/example5.result +0 -7
  276. data/gems/gems/erubis-2.6.5/test/data/users-guide/example6.rb +0 -12
  277. data/gems/gems/erubis-2.6.5/test/data/users-guide/example6.result +0 -7
  278. data/gems/gems/erubis-2.6.5/test/data/users-guide/example7.eruby +0 -8
  279. data/gems/gems/erubis-2.6.5/test/data/users-guide/example71.result +0 -13
  280. data/gems/gems/erubis-2.6.5/test/data/users-guide/example72.result +0 -13
  281. data/gems/gems/erubis-2.6.5/test/data/users-guide/example8.eruby +0 -6
  282. data/gems/gems/erubis-2.6.5/test/data/users-guide/example8_ruby.result +0 -7
  283. data/gems/gems/erubis-2.6.5/test/data/users-guide/example8_yaml.result +0 -7
  284. data/gems/gems/erubis-2.6.5/test/data/users-guide/example9.eruby +0 -3
  285. data/gems/gems/erubis-2.6.5/test/data/users-guide/example9.rb +0 -8
  286. data/gems/gems/erubis-2.6.5/test/data/users-guide/example9.result +0 -9
  287. data/gems/gems/erubis-2.6.5/test/data/users-guide/example91.result +0 -5
  288. data/gems/gems/erubis-2.6.5/test/data/users-guide/example92.result +0 -4
  289. data/gems/gems/erubis-2.6.5/test/data/users-guide/example_c.result +0 -29
  290. data/gems/gems/erubis-2.6.5/test/data/users-guide/example_java.result +0 -56
  291. data/gems/gems/erubis-2.6.5/test/data/users-guide/example_js.result +0 -22
  292. data/gems/gems/erubis-2.6.5/test/data/users-guide/example_perl.result +0 -20
  293. data/gems/gems/erubis-2.6.5/test/data/users-guide/example_php.result +0 -19
  294. data/gems/gems/erubis-2.6.5/test/data/users-guide/example_scheme.result +0 -30
  295. data/gems/gems/erubis-2.6.5/test/data/users-guide/example_scheme_display.result +0 -29
  296. data/gems/gems/erubis-2.6.5/test/data/users-guide/fasteruby.rb +0 -11
  297. data/gems/gems/erubis-2.6.5/test/data/users-guide/fasteruby.result +0 -38
  298. data/gems/gems/erubis-2.6.5/test/data/users-guide/fasteruby.rhtml +0 -15
  299. data/gems/gems/erubis-2.6.5/test/data/users-guide/headerfooter-example.eruby +0 -9
  300. data/gems/gems/erubis-2.6.5/test/data/users-guide/headerfooter-example2.rb +0 -8
  301. data/gems/gems/erubis-2.6.5/test/data/users-guide/headerfooter-example2.rhtml +0 -10
  302. data/gems/gems/erubis-2.6.5/test/data/users-guide/headerfooter_example.result +0 -11
  303. data/gems/gems/erubis-2.6.5/test/data/users-guide/headerfooter_example2.result +0 -13
  304. data/gems/gems/erubis-2.6.5/test/data/users-guide/interpolation_example.result +0 -9
  305. data/gems/gems/erubis-2.6.5/test/data/users-guide/main_program1.rb +0 -8
  306. data/gems/gems/erubis-2.6.5/test/data/users-guide/main_program1.result +0 -6
  307. data/gems/gems/erubis-2.6.5/test/data/users-guide/main_program2.rb +0 -8
  308. data/gems/gems/erubis-2.6.5/test/data/users-guide/main_program2.result +0 -6
  309. data/gems/gems/erubis-2.6.5/test/data/users-guide/nocode-example.eruby +0 -14
  310. data/gems/gems/erubis-2.6.5/test/data/users-guide/nocode-php.result +0 -20
  311. data/gems/gems/erubis-2.6.5/test/data/users-guide/nocode_example.result +0 -15
  312. data/gems/gems/erubis-2.6.5/test/data/users-guide/normal-eruby-test.eruby +0 -9
  313. data/gems/gems/erubis-2.6.5/test/data/users-guide/normal_eruby_test.result +0 -11
  314. data/gems/gems/erubis-2.6.5/test/data/users-guide/notext-example.eruby +0 -14
  315. data/gems/gems/erubis-2.6.5/test/data/users-guide/notext-example.php +0 -19
  316. data/gems/gems/erubis-2.6.5/test/data/users-guide/notext-php.result +0 -20
  317. data/gems/gems/erubis-2.6.5/test/data/users-guide/notext_example.result +0 -16
  318. data/gems/gems/erubis-2.6.5/test/data/users-guide/percentline-example.rhtml +0 -4
  319. data/gems/gems/erubis-2.6.5/test/data/users-guide/percentline_example.result +0 -7
  320. data/gems/gems/erubis-2.6.5/test/data/users-guide/printenable_example.result +0 -4
  321. data/gems/gems/erubis-2.6.5/test/data/users-guide/printenabled-example.eruby +0 -3
  322. data/gems/gems/erubis-2.6.5/test/data/users-guide/printenabled-example.rb +0 -8
  323. data/gems/gems/erubis-2.6.5/test/data/users-guide/printstatement_example.result +0 -8
  324. data/gems/gems/erubis-2.6.5/test/data/users-guide/simplify_example.result +0 -9
  325. data/gems/gems/erubis-2.6.5/test/data/users-guide/stderr.log +0 -3
  326. data/gems/gems/erubis-2.6.5/test/data/users-guide/stdout_exmple.result +0 -9
  327. data/gems/gems/erubis-2.6.5/test/data/users-guide/stringbuffer_example.result +0 -9
  328. data/gems/gems/erubis-2.6.5/test/data/users-guide/tail_260.result +0 -4
  329. data/gems/gems/erubis-2.6.5/test/data/users-guide/tailnewline.rhtml +0 -3
  330. data/gems/gems/erubis-2.6.5/test/data/users-guide/template1.rhtml +0 -4
  331. data/gems/gems/erubis-2.6.5/test/data/users-guide/template2.rhtml +0 -4
  332. data/gems/gems/erubis-2.6.5/test/test-engines.rb +0 -369
  333. data/gems/gems/erubis-2.6.5/test/test-enhancers.rb +0 -570
  334. data/gems/gems/erubis-2.6.5/test/test-erubis.rb +0 -883
  335. data/gems/gems/erubis-2.6.5/test/test-main.rb +0 -721
  336. data/gems/gems/erubis-2.6.5/test/test-users-guide.rb +0 -57
  337. data/gems/gems/erubis-2.6.5/test/test.rb +0 -29
  338. data/gems/gems/erubis-2.6.5/test/testutil.rb +0 -96
  339. data/gems/gems/haml-2.2.16/CONTRIBUTING +0 -4
  340. data/gems/gems/haml-2.2.16/MIT-LICENSE +0 -20
  341. data/gems/gems/haml-2.2.16/README.md +0 -357
  342. data/gems/gems/haml-2.2.16/REVISION +0 -1
  343. data/gems/gems/haml-2.2.16/Rakefile +0 -392
  344. data/gems/gems/haml-2.2.16/VERSION +0 -1
  345. data/gems/gems/haml-2.2.16/VERSION_NAME +0 -1
  346. data/gems/gems/haml-2.2.16/bin/css2sass +0 -7
  347. data/gems/gems/haml-2.2.16/bin/haml +0 -9
  348. data/gems/gems/haml-2.2.16/bin/html2haml +0 -7
  349. data/gems/gems/haml-2.2.16/bin/sass +0 -8
  350. data/gems/gems/haml-2.2.16/extra/haml-mode.el +0 -662
  351. data/gems/gems/haml-2.2.16/extra/sass-mode.el +0 -206
  352. data/gems/gems/haml-2.2.16/extra/update_watch.rb +0 -13
  353. data/gems/gems/haml-2.2.16/init.rb +0 -16
  354. data/gems/gems/haml-2.2.16/lib/haml/buffer.rb +0 -302
  355. data/gems/gems/haml-2.2.16/lib/haml/engine.rb +0 -299
  356. data/gems/gems/haml-2.2.16/lib/haml/error.rb +0 -22
  357. data/gems/gems/haml-2.2.16/lib/haml/exec.rb +0 -459
  358. data/gems/gems/haml-2.2.16/lib/haml/filters.rb +0 -341
  359. data/gems/gems/haml-2.2.16/lib/haml/helpers/action_view_extensions.rb +0 -55
  360. data/gems/gems/haml-2.2.16/lib/haml/helpers/action_view_mods.rb +0 -177
  361. data/gems/gems/haml-2.2.16/lib/haml/helpers/xss_mods.rb +0 -95
  362. data/gems/gems/haml-2.2.16/lib/haml/helpers.rb +0 -563
  363. data/gems/gems/haml-2.2.16/lib/haml/html.rb +0 -259
  364. data/gems/gems/haml-2.2.16/lib/haml/precompiler.rb +0 -1043
  365. data/gems/gems/haml-2.2.16/lib/haml/shared.rb +0 -78
  366. data/gems/gems/haml-2.2.16/lib/haml/template/patch.rb +0 -58
  367. data/gems/gems/haml-2.2.16/lib/haml/template/plugin.rb +0 -75
  368. data/gems/gems/haml-2.2.16/lib/haml/template.rb +0 -85
  369. data/gems/gems/haml-2.2.16/lib/haml/util.rb +0 -289
  370. data/gems/gems/haml-2.2.16/lib/haml/version.rb +0 -64
  371. data/gems/gems/haml-2.2.16/lib/haml.rb +0 -40
  372. data/gems/gems/haml-2.2.16/lib/sass/css.rb +0 -404
  373. data/gems/gems/haml-2.2.16/lib/sass/engine.rb +0 -475
  374. data/gems/gems/haml-2.2.16/lib/sass/environment.rb +0 -79
  375. data/gems/gems/haml-2.2.16/lib/sass/error.rb +0 -57
  376. data/gems/gems/haml-2.2.16/lib/sass/files.rb +0 -140
  377. data/gems/gems/haml-2.2.16/lib/sass/plugin/merb.rb +0 -49
  378. data/gems/gems/haml-2.2.16/lib/sass/plugin/rack.rb +0 -65
  379. data/gems/gems/haml-2.2.16/lib/sass/plugin/rails.rb +0 -24
  380. data/gems/gems/haml-2.2.16/lib/sass/plugin.rb +0 -225
  381. data/gems/gems/haml-2.2.16/lib/sass/repl.rb +0 -58
  382. data/gems/gems/haml-2.2.16/lib/sass/script/bool.rb +0 -17
  383. data/gems/gems/haml-2.2.16/lib/sass/script/color.rb +0 -220
  384. data/gems/gems/haml-2.2.16/lib/sass/script/funcall.rb +0 -50
  385. data/gems/gems/haml-2.2.16/lib/sass/script/functions.rb +0 -252
  386. data/gems/gems/haml-2.2.16/lib/sass/script/lexer.rb +0 -191
  387. data/gems/gems/haml-2.2.16/lib/sass/script/literal.rb +0 -177
  388. data/gems/gems/haml-2.2.16/lib/sass/script/node.rb +0 -14
  389. data/gems/gems/haml-2.2.16/lib/sass/script/number.rb +0 -381
  390. data/gems/gems/haml-2.2.16/lib/sass/script/operation.rb +0 -45
  391. data/gems/gems/haml-2.2.16/lib/sass/script/parser.rb +0 -222
  392. data/gems/gems/haml-2.2.16/lib/sass/script/string.rb +0 -12
  393. data/gems/gems/haml-2.2.16/lib/sass/script/unary_operation.rb +0 -34
  394. data/gems/gems/haml-2.2.16/lib/sass/script/variable.rb +0 -31
  395. data/gems/gems/haml-2.2.16/lib/sass/script.rb +0 -59
  396. data/gems/gems/haml-2.2.16/lib/sass/tree/comment_node.rb +0 -84
  397. data/gems/gems/haml-2.2.16/lib/sass/tree/debug_node.rb +0 -30
  398. data/gems/gems/haml-2.2.16/lib/sass/tree/directive_node.rb +0 -68
  399. data/gems/gems/haml-2.2.16/lib/sass/tree/for_node.rb +0 -48
  400. data/gems/gems/haml-2.2.16/lib/sass/tree/if_node.rb +0 -54
  401. data/gems/gems/haml-2.2.16/lib/sass/tree/import_node.rb +0 -65
  402. data/gems/gems/haml-2.2.16/lib/sass/tree/mixin_def_node.rb +0 -29
  403. data/gems/gems/haml-2.2.16/lib/sass/tree/mixin_node.rb +0 -48
  404. data/gems/gems/haml-2.2.16/lib/sass/tree/node.rb +0 -251
  405. data/gems/gems/haml-2.2.16/lib/sass/tree/prop_node.rb +0 -121
  406. data/gems/gems/haml-2.2.16/lib/sass/tree/rule_node.rb +0 -223
  407. data/gems/gems/haml-2.2.16/lib/sass/tree/variable_node.rb +0 -34
  408. data/gems/gems/haml-2.2.16/lib/sass/tree/while_node.rb +0 -31
  409. data/gems/gems/haml-2.2.16/lib/sass.rb +0 -24
  410. data/gems/gems/haml-2.2.16/rails/init.rb +0 -1
  411. data/gems/gems/haml-2.2.16/test/benchmark.rb +0 -99
  412. data/gems/gems/haml-2.2.16/test/haml/engine_test.rb +0 -1247
  413. data/gems/gems/haml-2.2.16/test/haml/helper_test.rb +0 -282
  414. data/gems/gems/haml-2.2.16/test/haml/html2haml_test.rb +0 -139
  415. data/gems/gems/haml-2.2.16/test/haml/markaby/standard.mab +0 -52
  416. data/gems/gems/haml-2.2.16/test/haml/mocks/article.rb +0 -6
  417. data/gems/gems/haml-2.2.16/test/haml/results/content_for_layout.xhtml +0 -12
  418. data/gems/gems/haml-2.2.16/test/haml/results/eval_suppressed.xhtml +0 -9
  419. data/gems/gems/haml-2.2.16/test/haml/results/filters.xhtml +0 -62
  420. data/gems/gems/haml-2.2.16/test/haml/results/helpers.xhtml +0 -93
  421. data/gems/gems/haml-2.2.16/test/haml/results/helpful.xhtml +0 -10
  422. data/gems/gems/haml-2.2.16/test/haml/results/just_stuff.xhtml +0 -68
  423. data/gems/gems/haml-2.2.16/test/haml/results/list.xhtml +0 -12
  424. data/gems/gems/haml-2.2.16/test/haml/results/nuke_inner_whitespace.xhtml +0 -40
  425. data/gems/gems/haml-2.2.16/test/haml/results/nuke_outer_whitespace.xhtml +0 -148
  426. data/gems/gems/haml-2.2.16/test/haml/results/original_engine.xhtml +0 -20
  427. data/gems/gems/haml-2.2.16/test/haml/results/partial_layout.xhtml +0 -5
  428. data/gems/gems/haml-2.2.16/test/haml/results/partials.xhtml +0 -21
  429. data/gems/gems/haml-2.2.16/test/haml/results/render_layout.xhtml +0 -3
  430. data/gems/gems/haml-2.2.16/test/haml/results/silent_script.xhtml +0 -74
  431. data/gems/gems/haml-2.2.16/test/haml/results/standard.xhtml +0 -162
  432. data/gems/gems/haml-2.2.16/test/haml/results/tag_parsing.xhtml +0 -23
  433. data/gems/gems/haml-2.2.16/test/haml/results/very_basic.xhtml +0 -5
  434. data/gems/gems/haml-2.2.16/test/haml/results/whitespace_handling.xhtml +0 -89
  435. data/gems/gems/haml-2.2.16/test/haml/rhtml/_av_partial_1.rhtml +0 -12
  436. data/gems/gems/haml-2.2.16/test/haml/rhtml/_av_partial_2.rhtml +0 -8
  437. data/gems/gems/haml-2.2.16/test/haml/rhtml/action_view.rhtml +0 -62
  438. data/gems/gems/haml-2.2.16/test/haml/rhtml/standard.rhtml +0 -54
  439. data/gems/gems/haml-2.2.16/test/haml/spec/README.md +0 -97
  440. data/gems/gems/haml-2.2.16/test/haml/spec/lua_haml_spec.lua +0 -30
  441. data/gems/gems/haml-2.2.16/test/haml/spec/ruby_haml_test.rb +0 -19
  442. data/gems/gems/haml-2.2.16/test/haml/spec/tests.json +0 -488
  443. data/gems/gems/haml-2.2.16/test/haml/template_test.rb +0 -296
  444. data/gems/gems/haml-2.2.16/test/haml/templates/_av_partial_1.haml +0 -9
  445. data/gems/gems/haml-2.2.16/test/haml/templates/_av_partial_1_ugly.haml +0 -9
  446. data/gems/gems/haml-2.2.16/test/haml/templates/_av_partial_2.haml +0 -5
  447. data/gems/gems/haml-2.2.16/test/haml/templates/_av_partial_2_ugly.haml +0 -5
  448. data/gems/gems/haml-2.2.16/test/haml/templates/_layout.erb +0 -3
  449. data/gems/gems/haml-2.2.16/test/haml/templates/_layout_for_partial.haml +0 -3
  450. data/gems/gems/haml-2.2.16/test/haml/templates/_partial.haml +0 -8
  451. data/gems/gems/haml-2.2.16/test/haml/templates/_text_area.haml +0 -3
  452. data/gems/gems/haml-2.2.16/test/haml/templates/action_view.haml +0 -47
  453. data/gems/gems/haml-2.2.16/test/haml/templates/action_view_ugly.haml +0 -47
  454. data/gems/gems/haml-2.2.16/test/haml/templates/breakage.haml +0 -8
  455. data/gems/gems/haml-2.2.16/test/haml/templates/content_for_layout.haml +0 -8
  456. data/gems/gems/haml-2.2.16/test/haml/templates/eval_suppressed.haml +0 -11
  457. data/gems/gems/haml-2.2.16/test/haml/templates/filters.haml +0 -66
  458. data/gems/gems/haml-2.2.16/test/haml/templates/helpers.haml +0 -95
  459. data/gems/gems/haml-2.2.16/test/haml/templates/helpful.haml +0 -11
  460. data/gems/gems/haml-2.2.16/test/haml/templates/just_stuff.haml +0 -83
  461. data/gems/gems/haml-2.2.16/test/haml/templates/list.haml +0 -12
  462. data/gems/gems/haml-2.2.16/test/haml/templates/nuke_inner_whitespace.haml +0 -32
  463. data/gems/gems/haml-2.2.16/test/haml/templates/nuke_outer_whitespace.haml +0 -144
  464. data/gems/gems/haml-2.2.16/test/haml/templates/original_engine.haml +0 -17
  465. data/gems/gems/haml-2.2.16/test/haml/templates/partial_layout.haml +0 -3
  466. data/gems/gems/haml-2.2.16/test/haml/templates/partialize.haml +0 -1
  467. data/gems/gems/haml-2.2.16/test/haml/templates/partials.haml +0 -12
  468. data/gems/gems/haml-2.2.16/test/haml/templates/render_layout.haml +0 -2
  469. data/gems/gems/haml-2.2.16/test/haml/templates/silent_script.haml +0 -40
  470. data/gems/gems/haml-2.2.16/test/haml/templates/standard.haml +0 -42
  471. data/gems/gems/haml-2.2.16/test/haml/templates/standard_ugly.haml +0 -42
  472. data/gems/gems/haml-2.2.16/test/haml/templates/tag_parsing.haml +0 -21
  473. data/gems/gems/haml-2.2.16/test/haml/templates/very_basic.haml +0 -4
  474. data/gems/gems/haml-2.2.16/test/haml/templates/whitespace_handling.haml +0 -87
  475. data/gems/gems/haml-2.2.16/test/haml/util_test.rb +0 -107
  476. data/gems/gems/haml-2.2.16/test/linked_rails.rb +0 -21
  477. data/gems/gems/haml-2.2.16/test/sass/css2sass_test.rb +0 -251
  478. data/gems/gems/haml-2.2.16/test/sass/engine_test.rb +0 -914
  479. data/gems/gems/haml-2.2.16/test/sass/functions_test.rb +0 -173
  480. data/gems/gems/haml-2.2.16/test/sass/more_results/more1.css +0 -9
  481. data/gems/gems/haml-2.2.16/test/sass/more_results/more1_with_line_comments.css +0 -26
  482. data/gems/gems/haml-2.2.16/test/sass/more_results/more_import.css +0 -29
  483. data/gems/gems/haml-2.2.16/test/sass/more_templates/_more_partial.sass +0 -2
  484. data/gems/gems/haml-2.2.16/test/sass/more_templates/more1.sass +0 -23
  485. data/gems/gems/haml-2.2.16/test/sass/more_templates/more_import.sass +0 -11
  486. data/gems/gems/haml-2.2.16/test/sass/plugin_test.rb +0 -222
  487. data/gems/gems/haml-2.2.16/test/sass/results/alt.css +0 -4
  488. data/gems/gems/haml-2.2.16/test/sass/results/basic.css +0 -9
  489. data/gems/gems/haml-2.2.16/test/sass/results/compact.css +0 -5
  490. data/gems/gems/haml-2.2.16/test/sass/results/complex.css +0 -87
  491. data/gems/gems/haml-2.2.16/test/sass/results/compressed.css +0 -1
  492. data/gems/gems/haml-2.2.16/test/sass/results/expanded.css +0 -19
  493. data/gems/gems/haml-2.2.16/test/sass/results/import.css +0 -29
  494. data/gems/gems/haml-2.2.16/test/sass/results/line_numbers.css +0 -49
  495. data/gems/gems/haml-2.2.16/test/sass/results/mixins.css +0 -95
  496. data/gems/gems/haml-2.2.16/test/sass/results/multiline.css +0 -24
  497. data/gems/gems/haml-2.2.16/test/sass/results/nested.css +0 -22
  498. data/gems/gems/haml-2.2.16/test/sass/results/parent_ref.css +0 -13
  499. data/gems/gems/haml-2.2.16/test/sass/results/script.css +0 -16
  500. data/gems/gems/haml-2.2.16/test/sass/results/subdir/nested_subdir/nested_subdir.css +0 -1
  501. data/gems/gems/haml-2.2.16/test/sass/results/subdir/subdir.css +0 -3
  502. data/gems/gems/haml-2.2.16/test/sass/results/units.css +0 -11
  503. data/gems/gems/haml-2.2.16/test/sass/script_test.rb +0 -267
  504. data/gems/gems/haml-2.2.16/test/sass/templates/_partial.sass +0 -2
  505. data/gems/gems/haml-2.2.16/test/sass/templates/alt.sass +0 -16
  506. data/gems/gems/haml-2.2.16/test/sass/templates/basic.sass +0 -23
  507. data/gems/gems/haml-2.2.16/test/sass/templates/bork.sass +0 -2
  508. data/gems/gems/haml-2.2.16/test/sass/templates/bork2.sass +0 -2
  509. data/gems/gems/haml-2.2.16/test/sass/templates/compact.sass +0 -17
  510. data/gems/gems/haml-2.2.16/test/sass/templates/complex.sass +0 -307
  511. data/gems/gems/haml-2.2.16/test/sass/templates/compressed.sass +0 -15
  512. data/gems/gems/haml-2.2.16/test/sass/templates/expanded.sass +0 -17
  513. data/gems/gems/haml-2.2.16/test/sass/templates/import.sass +0 -11
  514. data/gems/gems/haml-2.2.16/test/sass/templates/importee.sass +0 -19
  515. data/gems/gems/haml-2.2.16/test/sass/templates/line_numbers.sass +0 -13
  516. data/gems/gems/haml-2.2.16/test/sass/templates/mixins.sass +0 -76
  517. data/gems/gems/haml-2.2.16/test/sass/templates/multiline.sass +0 -20
  518. data/gems/gems/haml-2.2.16/test/sass/templates/nested.sass +0 -25
  519. data/gems/gems/haml-2.2.16/test/sass/templates/parent_ref.sass +0 -25
  520. data/gems/gems/haml-2.2.16/test/sass/templates/script.sass +0 -101
  521. data/gems/gems/haml-2.2.16/test/sass/templates/subdir/nested_subdir/_nested_partial.sass +0 -2
  522. data/gems/gems/haml-2.2.16/test/sass/templates/subdir/nested_subdir/nested_subdir.sass +0 -3
  523. data/gems/gems/haml-2.2.16/test/sass/templates/subdir/subdir.sass +0 -6
  524. data/gems/gems/haml-2.2.16/test/sass/templates/units.sass +0 -11
  525. data/gems/gems/haml-2.2.16/test/test_helper.rb +0 -35
  526. data/gems/gems/rspec-1.2.9/History.rdoc +0 -1496
  527. data/gems/gems/rspec-1.2.9/License.txt +0 -22
  528. data/gems/gems/rspec-1.2.9/Manifest.txt +0 -377
  529. data/gems/gems/rspec-1.2.9/README.rdoc +0 -55
  530. data/gems/gems/rspec-1.2.9/Rakefile +0 -145
  531. data/gems/gems/rspec-1.2.9/Ruby1.9.rdoc +0 -31
  532. data/gems/gems/rspec-1.2.9/TODO.txt +0 -17
  533. data/gems/gems/rspec-1.2.9/Upgrade.rdoc +0 -199
  534. data/gems/gems/rspec-1.2.9/bin/autospec +0 -4
  535. data/gems/gems/rspec-1.2.9/bin/spec +0 -5
  536. data/gems/gems/rspec-1.2.9/cucumber.yml +0 -5
  537. data/gems/gems/rspec-1.2.9/examples/failing/README.txt +0 -11
  538. data/gems/gems/rspec-1.2.9/examples/failing/diffing_spec.rb +0 -36
  539. data/gems/gems/rspec-1.2.9/examples/failing/failing_implicit_docstrings_example.rb +0 -17
  540. data/gems/gems/rspec-1.2.9/examples/failing/failure_in_after.rb +0 -10
  541. data/gems/gems/rspec-1.2.9/examples/failing/failure_in_before.rb +0 -10
  542. data/gems/gems/rspec-1.2.9/examples/failing/mocking_example.rb +0 -38
  543. data/gems/gems/rspec-1.2.9/examples/failing/mocking_with_flexmock.rb +0 -26
  544. data/gems/gems/rspec-1.2.9/examples/failing/mocking_with_mocha.rb +0 -25
  545. data/gems/gems/rspec-1.2.9/examples/failing/mocking_with_rr.rb +0 -27
  546. data/gems/gems/rspec-1.2.9/examples/failing/partial_mock_example.rb +0 -18
  547. data/gems/gems/rspec-1.2.9/examples/failing/pending_example.rb +0 -7
  548. data/gems/gems/rspec-1.2.9/examples/failing/predicate_example.rb +0 -32
  549. data/gems/gems/rspec-1.2.9/examples/failing/raising_example.rb +0 -47
  550. data/gems/gems/rspec-1.2.9/examples/failing/syntax_error_example.rb +0 -7
  551. data/gems/gems/rspec-1.2.9/examples/failing/team_spec.rb +0 -41
  552. data/gems/gems/rspec-1.2.9/examples/failing/timeout_behaviour.rb +0 -5
  553. data/gems/gems/rspec-1.2.9/examples/passing/custom_formatter.rb +0 -11
  554. data/gems/gems/rspec-1.2.9/examples/passing/custom_matchers.rb +0 -54
  555. data/gems/gems/rspec-1.2.9/examples/passing/dynamic_spec.rb +0 -7
  556. data/gems/gems/rspec-1.2.9/examples/passing/file_accessor.rb +0 -18
  557. data/gems/gems/rspec-1.2.9/examples/passing/file_accessor_spec.rb +0 -37
  558. data/gems/gems/rspec-1.2.9/examples/passing/filtered_formatter.rb +0 -17
  559. data/gems/gems/rspec-1.2.9/examples/passing/filtered_formatter_example.rb +0 -31
  560. data/gems/gems/rspec-1.2.9/examples/passing/greeter_spec.rb +0 -30
  561. data/gems/gems/rspec-1.2.9/examples/passing/helper_method_example.rb +0 -12
  562. data/gems/gems/rspec-1.2.9/examples/passing/implicit_docstrings_example.rb +0 -16
  563. data/gems/gems/rspec-1.2.9/examples/passing/io_processor.rb +0 -8
  564. data/gems/gems/rspec-1.2.9/examples/passing/io_processor_spec.rb +0 -20
  565. data/gems/gems/rspec-1.2.9/examples/passing/mocking_example.rb +0 -25
  566. data/gems/gems/rspec-1.2.9/examples/passing/multi_threaded_example_group_runner.rb +0 -26
  567. data/gems/gems/rspec-1.2.9/examples/passing/nested_classes_example.rb +0 -35
  568. data/gems/gems/rspec-1.2.9/examples/passing/options_example.rb +0 -29
  569. data/gems/gems/rspec-1.2.9/examples/passing/options_formatter.rb +0 -20
  570. data/gems/gems/rspec-1.2.9/examples/passing/partial_mock_example.rb +0 -27
  571. data/gems/gems/rspec-1.2.9/examples/passing/pending_example.rb +0 -18
  572. data/gems/gems/rspec-1.2.9/examples/passing/predicate_example.rb +0 -25
  573. data/gems/gems/rspec-1.2.9/examples/passing/shared_example_group_example.rb +0 -79
  574. data/gems/gems/rspec-1.2.9/examples/passing/shared_stack_examples.rb +0 -36
  575. data/gems/gems/rspec-1.2.9/examples/passing/simple_matcher_example.rb +0 -29
  576. data/gems/gems/rspec-1.2.9/examples/passing/stack.rb +0 -36
  577. data/gems/gems/rspec-1.2.9/examples/passing/stack_spec.rb +0 -63
  578. data/gems/gems/rspec-1.2.9/examples/passing/stack_spec_with_nested_example_groups.rb +0 -66
  579. data/gems/gems/rspec-1.2.9/examples/passing/stubbing_example.rb +0 -67
  580. data/gems/gems/rspec-1.2.9/examples/passing/yielding_example.rb +0 -31
  581. data/gems/gems/rspec-1.2.9/examples/ruby1.9.compatibility/access_to_constants_spec.rb +0 -85
  582. data/gems/gems/rspec-1.2.9/features/before_and_after_blocks/before_and_after_blocks.feature +0 -167
  583. data/gems/gems/rspec-1.2.9/features/command_line/line_number_option.feature +0 -56
  584. data/gems/gems/rspec-1.2.9/features/command_line/line_number_option_with_example_with_no_name.feature +0 -22
  585. data/gems/gems/rspec-1.2.9/features/example_groups/define_example_attribute.feature +0 -41
  586. data/gems/gems/rspec-1.2.9/features/example_groups/example_group_with_should_methods.feature +0 -29
  587. data/gems/gems/rspec-1.2.9/features/example_groups/implicit_docstrings.feature +0 -59
  588. data/gems/gems/rspec-1.2.9/features/example_groups/nested_groups.feature +0 -32
  589. data/gems/gems/rspec-1.2.9/features/expectations/customized_message.feature +0 -54
  590. data/gems/gems/rspec-1.2.9/features/expectations/expect_change.feature +0 -65
  591. data/gems/gems/rspec-1.2.9/features/expectations/expect_error.feature +0 -44
  592. data/gems/gems/rspec-1.2.9/features/extensions/custom_example_group.feature +0 -19
  593. data/gems/gems/rspec-1.2.9/features/formatters/custom_formatter.feature +0 -30
  594. data/gems/gems/rspec-1.2.9/features/interop/examples_and_tests_together.feature +0 -84
  595. data/gems/gems/rspec-1.2.9/features/interop/rspec_output.feature +0 -25
  596. data/gems/gems/rspec-1.2.9/features/interop/test_but_not_test_unit.feature +0 -26
  597. data/gems/gems/rspec-1.2.9/features/interop/test_case_with_should_methods.feature +0 -46
  598. data/gems/gems/rspec-1.2.9/features/load_paths/add_lib_to_load_path.feature +0 -20
  599. data/gems/gems/rspec-1.2.9/features/load_paths/add_spec_to_load_path.feature +0 -20
  600. data/gems/gems/rspec-1.2.9/features/matchers/define_diffable_matcher.feature +0 -26
  601. data/gems/gems/rspec-1.2.9/features/matchers/define_matcher.feature +0 -179
  602. data/gems/gems/rspec-1.2.9/features/matchers/define_matcher_outside_rspec.feature +0 -38
  603. data/gems/gems/rspec-1.2.9/features/matchers/define_matcher_with_fluent_interface.feature +0 -27
  604. data/gems/gems/rspec-1.2.9/features/matchers/define_wrapped_matcher.feature +0 -29
  605. data/gems/gems/rspec-1.2.9/features/mock_framework_integration/use_flexmock.feature +0 -27
  606. data/gems/gems/rspec-1.2.9/features/mock_framework_integration/use_mocha.feature +0 -27
  607. data/gems/gems/rspec-1.2.9/features/mock_framework_integration/use_rr.feature +0 -27
  608. data/gems/gems/rspec-1.2.9/features/mocks/mix_stubs_and_mocks.feature +0 -22
  609. data/gems/gems/rspec-1.2.9/features/mocks/stub_implementation.feature +0 -26
  610. data/gems/gems/rspec-1.2.9/features/pending/pending_examples.feature +0 -81
  611. data/gems/gems/rspec-1.2.9/features/runner/specify_line_number.feature +0 -32
  612. data/gems/gems/rspec-1.2.9/features/spec_helper/spec_helper.feature +0 -25
  613. data/gems/gems/rspec-1.2.9/features/step_definitions/running_rspec_steps.rb +0 -43
  614. data/gems/gems/rspec-1.2.9/features/subject/explicit_subject.feature +0 -31
  615. data/gems/gems/rspec-1.2.9/features/subject/implicit_subject.feature +0 -43
  616. data/gems/gems/rspec-1.2.9/features/support/env.rb +0 -82
  617. data/gems/gems/rspec-1.2.9/features/support/matchers/smart_match.rb +0 -12
  618. data/gems/gems/rspec-1.2.9/init.rb +0 -9
  619. data/gems/gems/rspec-1.2.9/lib/autotest/discover.rb +0 -3
  620. data/gems/gems/rspec-1.2.9/lib/autotest/rspec.rb +0 -47
  621. data/gems/gems/rspec-1.2.9/lib/spec/adapters/mock_frameworks/flexmock.rb +0 -24
  622. data/gems/gems/rspec-1.2.9/lib/spec/adapters/mock_frameworks/mocha.rb +0 -25
  623. data/gems/gems/rspec-1.2.9/lib/spec/adapters/mock_frameworks/rr.rb +0 -22
  624. data/gems/gems/rspec-1.2.9/lib/spec/adapters/mock_frameworks/rspec.rb +0 -21
  625. data/gems/gems/rspec-1.2.9/lib/spec/autorun.rb +0 -3
  626. data/gems/gems/rspec-1.2.9/lib/spec/deprecation.rb +0 -40
  627. data/gems/gems/rspec-1.2.9/lib/spec/dsl/main.rb +0 -92
  628. data/gems/gems/rspec-1.2.9/lib/spec/dsl.rb +0 -1
  629. data/gems/gems/rspec-1.2.9/lib/spec/example/args_and_options.rb +0 -27
  630. data/gems/gems/rspec-1.2.9/lib/spec/example/before_and_after_hooks.rb +0 -93
  631. data/gems/gems/rspec-1.2.9/lib/spec/example/errors.rb +0 -25
  632. data/gems/gems/rspec-1.2.9/lib/spec/example/example_group.rb +0 -10
  633. data/gems/gems/rspec-1.2.9/lib/spec/example/example_group_factory.rb +0 -82
  634. data/gems/gems/rspec-1.2.9/lib/spec/example/example_group_hierarchy.rb +0 -53
  635. data/gems/gems/rspec-1.2.9/lib/spec/example/example_group_methods.rb +0 -282
  636. data/gems/gems/rspec-1.2.9/lib/spec/example/example_group_proxy.rb +0 -61
  637. data/gems/gems/rspec-1.2.9/lib/spec/example/example_matcher.rb +0 -43
  638. data/gems/gems/rspec-1.2.9/lib/spec/example/example_methods.rb +0 -148
  639. data/gems/gems/rspec-1.2.9/lib/spec/example/example_proxy.rb +0 -41
  640. data/gems/gems/rspec-1.2.9/lib/spec/example/module_reopening_fix.rb +0 -43
  641. data/gems/gems/rspec-1.2.9/lib/spec/example/pending.rb +0 -18
  642. data/gems/gems/rspec-1.2.9/lib/spec/example/predicate_matchers.rb +0 -46
  643. data/gems/gems/rspec-1.2.9/lib/spec/example/shared_example_group.rb +0 -59
  644. data/gems/gems/rspec-1.2.9/lib/spec/example/subject.rb +0 -108
  645. data/gems/gems/rspec-1.2.9/lib/spec/example.rb +0 -164
  646. data/gems/gems/rspec-1.2.9/lib/spec/expectations/errors.rb +0 -12
  647. data/gems/gems/rspec-1.2.9/lib/spec/expectations/extensions/kernel.rb +0 -52
  648. data/gems/gems/rspec-1.2.9/lib/spec/expectations/extensions.rb +0 -1
  649. data/gems/gems/rspec-1.2.9/lib/spec/expectations/fail_with.rb +0 -45
  650. data/gems/gems/rspec-1.2.9/lib/spec/expectations/handler.rb +0 -50
  651. data/gems/gems/rspec-1.2.9/lib/spec/expectations.rb +0 -35
  652. data/gems/gems/rspec-1.2.9/lib/spec/interop/test/unit/autorunner.rb +0 -6
  653. data/gems/gems/rspec-1.2.9/lib/spec/interop/test/unit/testcase.rb +0 -56
  654. data/gems/gems/rspec-1.2.9/lib/spec/interop/test/unit/testresult.rb +0 -6
  655. data/gems/gems/rspec-1.2.9/lib/spec/interop/test/unit/testsuite_adapter.rb +0 -34
  656. data/gems/gems/rspec-1.2.9/lib/spec/interop/test/unit/ui/console/testrunner.rb +0 -61
  657. data/gems/gems/rspec-1.2.9/lib/spec/interop/test.rb +0 -44
  658. data/gems/gems/rspec-1.2.9/lib/spec/matchers/be.rb +0 -210
  659. data/gems/gems/rspec-1.2.9/lib/spec/matchers/be_close.rb +0 -32
  660. data/gems/gems/rspec-1.2.9/lib/spec/matchers/be_instance_of.rb +0 -26
  661. data/gems/gems/rspec-1.2.9/lib/spec/matchers/be_kind_of.rb +0 -26
  662. data/gems/gems/rspec-1.2.9/lib/spec/matchers/change.rb +0 -151
  663. data/gems/gems/rspec-1.2.9/lib/spec/matchers/compatibility.rb +0 -14
  664. data/gems/gems/rspec-1.2.9/lib/spec/matchers/dsl.rb +0 -20
  665. data/gems/gems/rspec-1.2.9/lib/spec/matchers/eql.rb +0 -42
  666. data/gems/gems/rspec-1.2.9/lib/spec/matchers/equal.rb +0 -53
  667. data/gems/gems/rspec-1.2.9/lib/spec/matchers/errors.rb +0 -5
  668. data/gems/gems/rspec-1.2.9/lib/spec/matchers/exist.rb +0 -16
  669. data/gems/gems/rspec-1.2.9/lib/spec/matchers/extensions/instance_exec.rb +0 -31
  670. data/gems/gems/rspec-1.2.9/lib/spec/matchers/generated_descriptions.rb +0 -36
  671. data/gems/gems/rspec-1.2.9/lib/spec/matchers/has.rb +0 -35
  672. data/gems/gems/rspec-1.2.9/lib/spec/matchers/have.rb +0 -151
  673. data/gems/gems/rspec-1.2.9/lib/spec/matchers/include.rb +0 -44
  674. data/gems/gems/rspec-1.2.9/lib/spec/matchers/match.rb +0 -21
  675. data/gems/gems/rspec-1.2.9/lib/spec/matchers/match_array.rb +0 -71
  676. data/gems/gems/rspec-1.2.9/lib/spec/matchers/matcher.rb +0 -87
  677. data/gems/gems/rspec-1.2.9/lib/spec/matchers/method_missing.rb +0 -9
  678. data/gems/gems/rspec-1.2.9/lib/spec/matchers/operator_matcher.rb +0 -78
  679. data/gems/gems/rspec-1.2.9/lib/spec/matchers/pretty.rb +0 -37
  680. data/gems/gems/rspec-1.2.9/lib/spec/matchers/raise_error.rb +0 -129
  681. data/gems/gems/rspec-1.2.9/lib/spec/matchers/respond_to.rb +0 -71
  682. data/gems/gems/rspec-1.2.9/lib/spec/matchers/satisfy.rb +0 -47
  683. data/gems/gems/rspec-1.2.9/lib/spec/matchers/simple_matcher.rb +0 -133
  684. data/gems/gems/rspec-1.2.9/lib/spec/matchers/throw_symbol.rb +0 -104
  685. data/gems/gems/rspec-1.2.9/lib/spec/matchers/wrap_expectation.rb +0 -55
  686. data/gems/gems/rspec-1.2.9/lib/spec/matchers.rb +0 -195
  687. data/gems/gems/rspec-1.2.9/lib/spec/mocks/argument_expectation.rb +0 -51
  688. data/gems/gems/rspec-1.2.9/lib/spec/mocks/argument_matchers.rb +0 -237
  689. data/gems/gems/rspec-1.2.9/lib/spec/mocks/error_generator.rb +0 -92
  690. data/gems/gems/rspec-1.2.9/lib/spec/mocks/errors.rb +0 -10
  691. data/gems/gems/rspec-1.2.9/lib/spec/mocks/example_methods.rb +0 -69
  692. data/gems/gems/rspec-1.2.9/lib/spec/mocks/extensions/object.rb +0 -3
  693. data/gems/gems/rspec-1.2.9/lib/spec/mocks/extensions.rb +0 -1
  694. data/gems/gems/rspec-1.2.9/lib/spec/mocks/framework.rb +0 -15
  695. data/gems/gems/rspec-1.2.9/lib/spec/mocks/message_expectation.rb +0 -329
  696. data/gems/gems/rspec-1.2.9/lib/spec/mocks/methods.rb +0 -89
  697. data/gems/gems/rspec-1.2.9/lib/spec/mocks/mock.rb +0 -71
  698. data/gems/gems/rspec-1.2.9/lib/spec/mocks/order_group.rb +0 -29
  699. data/gems/gems/rspec-1.2.9/lib/spec/mocks/proxy.rb +0 -245
  700. data/gems/gems/rspec-1.2.9/lib/spec/mocks/space.rb +0 -28
  701. data/gems/gems/rspec-1.2.9/lib/spec/mocks.rb +0 -200
  702. data/gems/gems/rspec-1.2.9/lib/spec/rake/spectask.rb +0 -230
  703. data/gems/gems/rspec-1.2.9/lib/spec/rake/verify_rcov.rb +0 -52
  704. data/gems/gems/rspec-1.2.9/lib/spec/ruby.rb +0 -9
  705. data/gems/gems/rspec-1.2.9/lib/spec/runner/backtrace_tweaker.rb +0 -77
  706. data/gems/gems/rspec-1.2.9/lib/spec/runner/class_and_arguments_parser.rb +0 -14
  707. data/gems/gems/rspec-1.2.9/lib/spec/runner/command_line.rb +0 -15
  708. data/gems/gems/rspec-1.2.9/lib/spec/runner/configuration.rb +0 -194
  709. data/gems/gems/rspec-1.2.9/lib/spec/runner/differs/default.rb +0 -93
  710. data/gems/gems/rspec-1.2.9/lib/spec/runner/differs/load-diff-lcs.rb +0 -12
  711. data/gems/gems/rspec-1.2.9/lib/spec/runner/drb_command_line.rb +0 -26
  712. data/gems/gems/rspec-1.2.9/lib/spec/runner/example_group_runner.rb +0 -59
  713. data/gems/gems/rspec-1.2.9/lib/spec/runner/extensions/kernel.rb +0 -9
  714. data/gems/gems/rspec-1.2.9/lib/spec/runner/formatter/base_formatter.rb +0 -139
  715. data/gems/gems/rspec-1.2.9/lib/spec/runner/formatter/base_text_formatter.rb +0 -142
  716. data/gems/gems/rspec-1.2.9/lib/spec/runner/formatter/failing_example_groups_formatter.rb +0 -25
  717. data/gems/gems/rspec-1.2.9/lib/spec/runner/formatter/failing_examples_formatter.rb +0 -20
  718. data/gems/gems/rspec-1.2.9/lib/spec/runner/formatter/html_formatter.rb +0 -338
  719. data/gems/gems/rspec-1.2.9/lib/spec/runner/formatter/nested_text_formatter.rb +0 -47
  720. data/gems/gems/rspec-1.2.9/lib/spec/runner/formatter/no_op_method_missing.rb +0 -21
  721. data/gems/gems/rspec-1.2.9/lib/spec/runner/formatter/profile_formatter.rb +0 -47
  722. data/gems/gems/rspec-1.2.9/lib/spec/runner/formatter/progress_bar_formatter.rb +0 -33
  723. data/gems/gems/rspec-1.2.9/lib/spec/runner/formatter/silent_formatter.rb +0 -10
  724. data/gems/gems/rspec-1.2.9/lib/spec/runner/formatter/snippet_extractor.rb +0 -52
  725. data/gems/gems/rspec-1.2.9/lib/spec/runner/formatter/specdoc_formatter.rb +0 -33
  726. data/gems/gems/rspec-1.2.9/lib/spec/runner/formatter/text_mate_formatter.rb +0 -16
  727. data/gems/gems/rspec-1.2.9/lib/spec/runner/heckle_runner.rb +0 -72
  728. data/gems/gems/rspec-1.2.9/lib/spec/runner/heckle_runner_unsupported.rb +0 -10
  729. data/gems/gems/rspec-1.2.9/lib/spec/runner/line_number_query.rb +0 -78
  730. data/gems/gems/rspec-1.2.9/lib/spec/runner/option_parser.rb +0 -223
  731. data/gems/gems/rspec-1.2.9/lib/spec/runner/options.rb +0 -400
  732. data/gems/gems/rspec-1.2.9/lib/spec/runner/reporter.rb +0 -171
  733. data/gems/gems/rspec-1.2.9/lib/spec/runner.rb +0 -66
  734. data/gems/gems/rspec-1.2.9/lib/spec/stubs/cucumber.rb +0 -5
  735. data/gems/gems/rspec-1.2.9/lib/spec/test/unit.rb +0 -10
  736. data/gems/gems/rspec-1.2.9/lib/spec/version.rb +0 -14
  737. data/gems/gems/rspec-1.2.9/lib/spec.rb +0 -8
  738. data/gems/gems/rspec-1.2.9/resources/helpers/cmdline.rb +0 -8
  739. data/gems/gems/rspec-1.2.9/resources/rake/examples.rake +0 -7
  740. data/gems/gems/rspec-1.2.9/resources/rake/examples_with_rcov.rake +0 -9
  741. data/gems/gems/rspec-1.2.9/resources/rake/failing_examples_with_html.rake +0 -9
  742. data/gems/gems/rspec-1.2.9/resources/rake/verify_rcov.rake +0 -7
  743. data/gems/gems/rspec-1.2.9/spec/README.jruby +0 -15
  744. data/gems/gems/rspec-1.2.9/spec/autotest/autotest_helper.rb +0 -8
  745. data/gems/gems/rspec-1.2.9/spec/autotest/autotest_matchers.rb +0 -38
  746. data/gems/gems/rspec-1.2.9/spec/autotest/discover_spec.rb +0 -8
  747. data/gems/gems/rspec-1.2.9/spec/autotest/failed_results_re_spec.rb +0 -31
  748. data/gems/gems/rspec-1.2.9/spec/autotest/rspec_spec.rb +0 -111
  749. data/gems/gems/rspec-1.2.9/spec/ruby_forker.rb +0 -13
  750. data/gems/gems/rspec-1.2.9/spec/spec/dsl/main_spec.rb +0 -95
  751. data/gems/gems/rspec-1.2.9/spec/spec/example/example_group_class_definition_spec.rb +0 -51
  752. data/gems/gems/rspec-1.2.9/spec/spec/example/example_group_factory_spec.rb +0 -180
  753. data/gems/gems/rspec-1.2.9/spec/spec/example/example_group_methods_spec.rb +0 -758
  754. data/gems/gems/rspec-1.2.9/spec/spec/example/example_group_proxy_spec.rb +0 -107
  755. data/gems/gems/rspec-1.2.9/spec/spec/example/example_group_spec.rb +0 -643
  756. data/gems/gems/rspec-1.2.9/spec/spec/example/example_matcher_spec.rb +0 -86
  757. data/gems/gems/rspec-1.2.9/spec/spec/example/example_methods_spec.rb +0 -162
  758. data/gems/gems/rspec-1.2.9/spec/spec/example/example_proxy_spec.rb +0 -57
  759. data/gems/gems/rspec-1.2.9/spec/spec/example/helper_method_spec.rb +0 -24
  760. data/gems/gems/rspec-1.2.9/spec/spec/example/nested_example_group_spec.rb +0 -71
  761. data/gems/gems/rspec-1.2.9/spec/spec/example/pending_module_spec.rb +0 -58
  762. data/gems/gems/rspec-1.2.9/spec/spec/example/predicate_matcher_spec.rb +0 -41
  763. data/gems/gems/rspec-1.2.9/spec/spec/example/shared_example_group_spec.rb +0 -257
  764. data/gems/gems/rspec-1.2.9/spec/spec/example/subclassing_example_group_spec.rb +0 -25
  765. data/gems/gems/rspec-1.2.9/spec/spec/example/subject_spec.rb +0 -103
  766. data/gems/gems/rspec-1.2.9/spec/spec/expectations/differs/default_spec.rb +0 -194
  767. data/gems/gems/rspec-1.2.9/spec/spec/expectations/extensions/kernel_spec.rb +0 -45
  768. data/gems/gems/rspec-1.2.9/spec/spec/expectations/fail_with_spec.rb +0 -96
  769. data/gems/gems/rspec-1.2.9/spec/spec/expectations/handler_spec.rb +0 -206
  770. data/gems/gems/rspec-1.2.9/spec/spec/expectations/wrap_expectation_spec.rb +0 -30
  771. data/gems/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/spec_that_fails.rb +0 -10
  772. data/gems/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/spec_that_passes.rb +0 -10
  773. data/gems/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/spec_with_errors.rb +0 -10
  774. data/gems/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +0 -13
  775. data/gems/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +0 -10
  776. data/gems/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +0 -10
  777. data/gems/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +0 -10
  778. data/gems/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb +0 -22
  779. data/gems/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +0 -38
  780. data/gems/gems/rspec-1.2.9/spec/spec/interop/test/unit/spec_spec.rb +0 -48
  781. data/gems/gems/rspec-1.2.9/spec/spec/interop/test/unit/test_unit_spec_helper.rb +0 -18
  782. data/gems/gems/rspec-1.2.9/spec/spec/interop/test/unit/testcase_spec.rb +0 -50
  783. data/gems/gems/rspec-1.2.9/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +0 -9
  784. data/gems/gems/rspec-1.2.9/spec/spec/matchers/be_close_spec.rb +0 -50
  785. data/gems/gems/rspec-1.2.9/spec/spec/matchers/be_instance_of_spec.rb +0 -36
  786. data/gems/gems/rspec-1.2.9/spec/spec/matchers/be_kind_of_spec.rb +0 -33
  787. data/gems/gems/rspec-1.2.9/spec/spec/matchers/be_spec.rb +0 -311
  788. data/gems/gems/rspec-1.2.9/spec/spec/matchers/change_spec.rb +0 -349
  789. data/gems/gems/rspec-1.2.9/spec/spec/matchers/compatibility_spec.rb +0 -28
  790. data/gems/gems/rspec-1.2.9/spec/spec/matchers/description_generation_spec.rb +0 -160
  791. data/gems/gems/rspec-1.2.9/spec/spec/matchers/dsl_spec.rb +0 -34
  792. data/gems/gems/rspec-1.2.9/spec/spec/matchers/eql_spec.rb +0 -33
  793. data/gems/gems/rspec-1.2.9/spec/spec/matchers/equal_spec.rb +0 -57
  794. data/gems/gems/rspec-1.2.9/spec/spec/matchers/exist_spec.rb +0 -65
  795. data/gems/gems/rspec-1.2.9/spec/spec/matchers/has_spec.rb +0 -81
  796. data/gems/gems/rspec-1.2.9/spec/spec/matchers/have_spec.rb +0 -396
  797. data/gems/gems/rspec-1.2.9/spec/spec/matchers/include_spec.rb +0 -88
  798. data/gems/gems/rspec-1.2.9/spec/spec/matchers/match_array_spec.rb +0 -108
  799. data/gems/gems/rspec-1.2.9/spec/spec/matchers/match_spec.rb +0 -57
  800. data/gems/gems/rspec-1.2.9/spec/spec/matchers/matcher_methods_spec.rb +0 -63
  801. data/gems/gems/rspec-1.2.9/spec/spec/matchers/matcher_spec.rb +0 -228
  802. data/gems/gems/rspec-1.2.9/spec/spec/matchers/matchers_spec.rb +0 -2
  803. data/gems/gems/rspec-1.2.9/spec/spec/matchers/operator_matcher_spec.rb +0 -191
  804. data/gems/gems/rspec-1.2.9/spec/spec/matchers/raise_error_spec.rb +0 -333
  805. data/gems/gems/rspec-1.2.9/spec/spec/matchers/respond_to_spec.rb +0 -116
  806. data/gems/gems/rspec-1.2.9/spec/spec/matchers/satisfy_spec.rb +0 -36
  807. data/gems/gems/rspec-1.2.9/spec/spec/matchers/simple_matcher_spec.rb +0 -93
  808. data/gems/gems/rspec-1.2.9/spec/spec/matchers/throw_symbol_spec.rb +0 -96
  809. data/gems/gems/rspec-1.2.9/spec/spec/mocks/any_number_of_times_spec.rb +0 -36
  810. data/gems/gems/rspec-1.2.9/spec/spec/mocks/argument_expectation_spec.rb +0 -23
  811. data/gems/gems/rspec-1.2.9/spec/spec/mocks/argument_matchers_spec.rb +0 -19
  812. data/gems/gems/rspec-1.2.9/spec/spec/mocks/at_least_spec.rb +0 -97
  813. data/gems/gems/rspec-1.2.9/spec/spec/mocks/at_most_spec.rb +0 -93
  814. data/gems/gems/rspec-1.2.9/spec/spec/mocks/bug_report_10260_spec.rb +0 -8
  815. data/gems/gems/rspec-1.2.9/spec/spec/mocks/bug_report_10263_spec.rb +0 -27
  816. data/gems/gems/rspec-1.2.9/spec/spec/mocks/bug_report_11545_spec.rb +0 -32
  817. data/gems/gems/rspec-1.2.9/spec/spec/mocks/bug_report_15719_spec.rb +0 -30
  818. data/gems/gems/rspec-1.2.9/spec/spec/mocks/bug_report_496_spec.rb +0 -19
  819. data/gems/gems/rspec-1.2.9/spec/spec/mocks/bug_report_600_spec.rb +0 -22
  820. data/gems/gems/rspec-1.2.9/spec/spec/mocks/bug_report_7611_spec.rb +0 -19
  821. data/gems/gems/rspec-1.2.9/spec/spec/mocks/bug_report_7805_spec.rb +0 -22
  822. data/gems/gems/rspec-1.2.9/spec/spec/mocks/bug_report_8165_spec.rb +0 -31
  823. data/gems/gems/rspec-1.2.9/spec/spec/mocks/bug_report_8302_spec.rb +0 -26
  824. data/gems/gems/rspec-1.2.9/spec/spec/mocks/bug_report_830_spec.rb +0 -21
  825. data/gems/gems/rspec-1.2.9/spec/spec/mocks/double_spec.rb +0 -12
  826. data/gems/gems/rspec-1.2.9/spec/spec/mocks/failing_argument_matchers_spec.rb +0 -95
  827. data/gems/gems/rspec-1.2.9/spec/spec/mocks/hash_including_matcher_spec.rb +0 -90
  828. data/gems/gems/rspec-1.2.9/spec/spec/mocks/hash_not_including_matcher_spec.rb +0 -67
  829. data/gems/gems/rspec-1.2.9/spec/spec/mocks/mock_ordering_spec.rb +0 -94
  830. data/gems/gems/rspec-1.2.9/spec/spec/mocks/mock_space_spec.rb +0 -54
  831. data/gems/gems/rspec-1.2.9/spec/spec/mocks/mock_spec.rb +0 -594
  832. data/gems/gems/rspec-1.2.9/spec/spec/mocks/multiple_return_value_spec.rb +0 -113
  833. data/gems/gems/rspec-1.2.9/spec/spec/mocks/nil_expectation_warning_spec.rb +0 -53
  834. data/gems/gems/rspec-1.2.9/spec/spec/mocks/null_object_mock_spec.rb +0 -54
  835. data/gems/gems/rspec-1.2.9/spec/spec/mocks/once_counts_spec.rb +0 -53
  836. data/gems/gems/rspec-1.2.9/spec/spec/mocks/options_hash_spec.rb +0 -35
  837. data/gems/gems/rspec-1.2.9/spec/spec/mocks/partial_mock_spec.rb +0 -164
  838. data/gems/gems/rspec-1.2.9/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +0 -66
  839. data/gems/gems/rspec-1.2.9/spec/spec/mocks/passing_argument_matchers_spec.rb +0 -145
  840. data/gems/gems/rspec-1.2.9/spec/spec/mocks/precise_counts_spec.rb +0 -52
  841. data/gems/gems/rspec-1.2.9/spec/spec/mocks/record_messages_spec.rb +0 -26
  842. data/gems/gems/rspec-1.2.9/spec/spec/mocks/stub_chain_spec.rb +0 -42
  843. data/gems/gems/rspec-1.2.9/spec/spec/mocks/stub_implementation_spec.rb +0 -31
  844. data/gems/gems/rspec-1.2.9/spec/spec/mocks/stub_spec.rb +0 -203
  845. data/gems/gems/rspec-1.2.9/spec/spec/mocks/stubbed_message_expectations_spec.rb +0 -26
  846. data/gems/gems/rspec-1.2.9/spec/spec/mocks/twice_counts_spec.rb +0 -67
  847. data/gems/gems/rspec-1.2.9/spec/spec/mocks/unstub_spec.rb +0 -127
  848. data/gems/gems/rspec-1.2.9/spec/spec/package/bin_spec_spec.rb +0 -16
  849. data/gems/gems/rspec-1.2.9/spec/spec/rake/spectask_spec.rb +0 -150
  850. data/gems/gems/rspec-1.2.9/spec/spec/runner/class_and_argument_parser_spec.rb +0 -23
  851. data/gems/gems/rspec-1.2.9/spec/spec/runner/command_line_spec.rb +0 -141
  852. data/gems/gems/rspec-1.2.9/spec/spec/runner/configuration_spec.rb +0 -320
  853. data/gems/gems/rspec-1.2.9/spec/spec/runner/drb_command_line_spec.rb +0 -107
  854. data/gems/gems/rspec-1.2.9/spec/spec/runner/example_group_runner_spec.rb +0 -26
  855. data/gems/gems/rspec-1.2.9/spec/spec/runner/examples.txt +0 -2
  856. data/gems/gems/rspec-1.2.9/spec/spec/runner/failed.txt +0 -3
  857. data/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/base_formatter_spec.rb +0 -30
  858. data/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/base_text_formatter_spec.rb +0 -113
  859. data/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +0 -45
  860. data/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +0 -33
  861. data/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +0 -377
  862. data/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatted-1.8.6.html +0 -377
  863. data/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatted-1.8.7.html +0 -377
  864. data/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatted-1.9.1.html +0 -377
  865. data/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatter_spec.rb +0 -118
  866. data/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/nested_text_formatter_spec.rb +0 -305
  867. data/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/profile_formatter_spec.rb +0 -70
  868. data/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +0 -149
  869. data/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/snippet_extractor_spec.rb +0 -18
  870. data/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/specdoc_formatter_spec.rb +0 -159
  871. data/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html +0 -371
  872. data/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +0 -371
  873. data/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +0 -371
  874. data/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +0 -371
  875. data/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatter_spec.rb +0 -106
  876. data/gems/gems/rspec-1.2.9/spec/spec/runner/heckle_runner_spec.rb +0 -78
  877. data/gems/gems/rspec-1.2.9/spec/spec/runner/heckler_spec.rb +0 -20
  878. data/gems/gems/rspec-1.2.9/spec/spec/runner/line_number_query/line_number_query_fixture.rb +0 -70
  879. data/gems/gems/rspec-1.2.9/spec/spec/runner/line_number_query_spec.rb +0 -129
  880. data/gems/gems/rspec-1.2.9/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +0 -51
  881. data/gems/gems/rspec-1.2.9/spec/spec/runner/option_parser_spec.rb +0 -545
  882. data/gems/gems/rspec-1.2.9/spec/spec/runner/options_spec.rb +0 -547
  883. data/gems/gems/rspec-1.2.9/spec/spec/runner/output_one_time_fixture.rb +0 -7
  884. data/gems/gems/rspec-1.2.9/spec/spec/runner/output_one_time_fixture_runner.rb +0 -7
  885. data/gems/gems/rspec-1.2.9/spec/spec/runner/output_one_time_spec.rb +0 -15
  886. data/gems/gems/rspec-1.2.9/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +0 -105
  887. data/gems/gems/rspec-1.2.9/spec/spec/runner/reporter_spec.rb +0 -244
  888. data/gems/gems/rspec-1.2.9/spec/spec/runner/resources/a_spec.rb +0 -1
  889. data/gems/gems/rspec-1.2.9/spec/spec/runner/resources/custom_example_group_runner.rb +0 -14
  890. data/gems/gems/rspec-1.2.9/spec/spec/runner/resources/utf8_encoded.rb +0 -8
  891. data/gems/gems/rspec-1.2.9/spec/spec/runner/spec.opts +0 -2
  892. data/gems/gems/rspec-1.2.9/spec/spec/runner/spec_drb.opts +0 -2
  893. data/gems/gems/rspec-1.2.9/spec/spec/runner/spec_spaced.opts +0 -2
  894. data/gems/gems/rspec-1.2.9/spec/spec/runner_spec.rb +0 -13
  895. data/gems/gems/rspec-1.2.9/spec/spec.opts +0 -6
  896. data/gems/gems/rspec-1.2.9/spec/spec_helper.rb +0 -112
  897. data/gems/gems/rspec-1.2.9/spec/support/macros.rb +0 -29
  898. data/gems/gems/rspec-1.2.9/spec/support/spec_classes.rb +0 -133
  899. data/gems/specifications/abstract-1.0.0.gemspec +0 -29
  900. data/gems/specifications/erubis-2.6.5.gemspec +0 -34
  901. data/gems/specifications/haml-2.2.16.gemspec +0 -45
  902. data/gems/specifications/rspec-1.2.9.gemspec +0 -58
  903. data/lib/simple-templater/version.rb +0 -7
  904. data/script/autospec +0 -3
  905. data/script/css2sass +0 -3
  906. data/script/erubis +0 -3
  907. data/script/haml +0 -3
  908. data/script/html2haml +0 -3
  909. data/script/sass +0 -3
  910. data/stubs/project/content/Rakefile +0 -39
  911. data/tasks/benchmark.rake +0 -11
  912. data/tasks/gem.rake +0 -23
  913. data/tasks/hooks.rake +0 -12
  914. data/tasks/release.rake +0 -68
  915. data/tasks/spec.rake +0 -27
  916. data/tasks/submodules.rake +0 -33
  917. data/tasks/yardoc.rake +0 -9
@@ -1,1247 +0,0 @@
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