simple-templater 0.0.1.4 → 0.0.1.5

Sign up to get free protection for your applications and to get access to all the features.
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