middleman 2.0.16.1 → 3.0.0.alpha.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (259) hide show
  1. data/.gitignore +2 -1
  2. data/CHANGELOG +16 -8
  3. data/features/builder.feature +2 -5
  4. data/features/cache_buster.feature +1 -1
  5. data/features/clean_build.feature +0 -1
  6. data/features/coffee-script.feature +3 -3
  7. data/features/custom_layout_engines.feature +10 -0
  8. data/features/directory_index.feature +0 -1
  9. data/features/dynamic_pages.feature +0 -1
  10. data/features/fonts.feature +0 -1
  11. data/features/{padrino_helpers.feature → former_padrino_helpers.feature} +1 -1
  12. data/features/sprockets.feature +34 -5
  13. data/features/sprockets_gems.feature +7 -4
  14. data/features/step_definitions/asset_host_steps.rb +7 -6
  15. data/features/step_definitions/builder_steps.rb +4 -0
  16. data/features/step_definitions/middleman_steps.rb +22 -16
  17. data/features/step_definitions/page_layout_steps.rb +10 -8
  18. data/fixtures/custom-layout-app/config.rb +1 -0
  19. data/fixtures/custom-layout-app/source/index.html.erb +1 -0
  20. data/fixtures/custom-layout-app/source/layout.haml +6 -0
  21. data/fixtures/sprockets-app/config.rb +2 -1
  22. data/fixtures/sprockets-app/source/library/css/bootstrap_include.css.scss +1 -0
  23. data/fixtures/sprockets-app/source/library/css/plain.css +3 -0
  24. data/fixtures/sprockets-app/source/library/css/sprockets_base1.css.scss +1 -0
  25. data/fixtures/sprockets-app/source/library/css/sprockets_base2.css.scss +1 -0
  26. data/fixtures/sprockets-app/source/library/css/sprockets_sub.css.scss +1 -0
  27. data/fixtures/sprockets-app/source/{jquery_include.js → library/js/jquery_include.js} +0 -0
  28. data/fixtures/sprockets-app/source/library/js/plain.js +3 -0
  29. data/fixtures/sprockets-app/source/library/{javascripts → js}/sprockets_base.js +0 -0
  30. data/fixtures/sprockets-app/source/library/{javascripts → js}/sprockets_sub.js +0 -0
  31. data/fixtures/test-app/config.rb +5 -4
  32. data/fixtures/test-app/source/{padrino_test.html.haml → former_padrino_test.html.haml} +0 -0
  33. data/fixtures/test-app/source/stylesheets/sprockets_base1.css.scss +1 -0
  34. data/fixtures/test-app/source/stylesheets/sprockets_base2.css.scss +1 -0
  35. data/fixtures/test-app/source/stylesheets/sprockets_sub.css.scss +1 -0
  36. data/lib/middleman.rb +27 -25
  37. data/lib/middleman/base.rb +408 -166
  38. data/lib/middleman/builder.rb +78 -162
  39. data/lib/middleman/cli.rb +61 -32
  40. data/lib/middleman/core_extensions/assets.rb +4 -44
  41. data/lib/middleman/core_extensions/builder.rb +12 -16
  42. data/lib/middleman/core_extensions/compass.rb +28 -57
  43. data/lib/middleman/core_extensions/data.rb +65 -49
  44. data/lib/middleman/core_extensions/default_helpers.rb +33 -18
  45. data/lib/middleman/core_extensions/features.rb +48 -26
  46. data/lib/middleman/core_extensions/file_watcher.rb +66 -0
  47. data/lib/middleman/core_extensions/front_matter.rb +91 -86
  48. data/lib/middleman/core_extensions/rendering.rb +9 -8
  49. data/lib/middleman/core_extensions/routing.rb +19 -53
  50. data/lib/middleman/core_extensions/sitemap.rb +229 -0
  51. data/lib/middleman/core_extensions/sprockets.rb +53 -37
  52. data/lib/middleman/features/asset_host.rb +20 -10
  53. data/lib/middleman/features/automatic_image_sizes.rb +12 -9
  54. data/lib/middleman/features/cache_buster.rb +38 -25
  55. data/lib/middleman/features/directory_indexes.rb +31 -28
  56. data/lib/middleman/features/minify_css.rb +3 -2
  57. data/lib/middleman/features/minify_css/cssmin.rb +55 -0
  58. data/lib/middleman/features/minify_javascript.rb +12 -5
  59. data/lib/middleman/features/relative_assets.rb +28 -25
  60. data/lib/middleman/features/sitemap_tree.rb +34 -0
  61. data/lib/middleman/guard.rb +57 -23
  62. data/lib/middleman/renderers/erb.rb +29 -0
  63. data/lib/middleman/renderers/liquid.rb +3 -12
  64. data/lib/middleman/renderers/markdown.rb +16 -15
  65. data/lib/middleman/renderers/sass.rb +34 -38
  66. data/lib/middleman/vendor/hooks-0.2.0/CHANGES.textile +9 -0
  67. data/lib/middleman/vendor/hooks-0.2.0/Gemfile +3 -0
  68. data/lib/middleman/vendor/hooks-0.2.0/README.rdoc +107 -0
  69. data/lib/middleman/vendor/hooks-0.2.0/Rakefile +12 -0
  70. data/lib/middleman/vendor/hooks-0.2.0/hooks.gemspec +22 -0
  71. data/lib/middleman/vendor/hooks-0.2.0/lib/hooks.rb +109 -0
  72. data/lib/middleman/vendor/hooks-0.2.0/lib/hooks/inheritable_attribute.rb +33 -0
  73. data/lib/middleman/vendor/hooks-0.2.0/test/hooks_test.rb +141 -0
  74. data/lib/middleman/vendor/hooks-0.2.0/test/inheritable_attribute_test.rb +55 -0
  75. data/lib/middleman/vendor/hooks-0.2.0/test/test_helper.rb +10 -0
  76. data/lib/middleman/vendor/padrino-core-0.10.5/.document +5 -0
  77. data/lib/middleman/vendor/padrino-core-0.10.5/.gitignore +22 -0
  78. data/lib/middleman/vendor/padrino-core-0.10.5/.yardopts +1 -0
  79. data/lib/middleman/vendor/padrino-core-0.10.5/LICENSE.txt +20 -0
  80. data/lib/middleman/vendor/padrino-core-0.10.5/README.rdoc +294 -0
  81. data/lib/middleman/vendor/padrino-core-0.10.5/Rakefile +5 -0
  82. data/lib/middleman/vendor/padrino-core-0.10.5/bin/padrino +9 -0
  83. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core.rb +167 -0
  84. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/application.rb +270 -0
  85. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/application/rendering.rb +292 -0
  86. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/application/routing.rb +934 -0
  87. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/application/showexceptions.rb +20 -0
  88. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/caller.rb +53 -0
  89. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/cli/adapter.rb +24 -0
  90. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/cli/base.rb +151 -0
  91. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/cli/console.rb +20 -0
  92. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/cli/rake.rb +24 -0
  93. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/cli/rake_tasks.rb +59 -0
  94. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/command.rb +38 -0
  95. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/images/404.png +0 -0
  96. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/images/500.png +0 -0
  97. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/loader.rb +210 -0
  98. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/cs.yml +34 -0
  99. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/da.yml +34 -0
  100. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/de.yml +34 -0
  101. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/en.yml +34 -0
  102. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/es.yml +34 -0
  103. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/fr.yml +34 -0
  104. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/hu.yml +34 -0
  105. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/it.yml +40 -0
  106. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/ja.yml +34 -0
  107. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/lv.yml +34 -0
  108. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/nl.yml +34 -0
  109. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/no.yml +35 -0
  110. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/pl.yml +34 -0
  111. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/pt_br.yml +40 -0
  112. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/ru.yml +35 -0
  113. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/tr.yml +34 -0
  114. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/uk.yml +34 -0
  115. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/zh_cn.yml +34 -0
  116. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/zh_tw.yml +34 -0
  117. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/logger.rb +345 -0
  118. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/mounter.rb +224 -0
  119. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/reloader.rb +254 -0
  120. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/router.rb +98 -0
  121. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/server.rb +79 -0
  122. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/support_lite.rb +199 -0
  123. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/tasks.rb +21 -0
  124. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/version.rb +20 -0
  125. data/lib/middleman/vendor/padrino-core-0.10.5/padrino-core.gemspec +38 -0
  126. data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/apps/.components +6 -0
  127. data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/apps/.gitignore +7 -0
  128. data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/apps/complex.rb +32 -0
  129. data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/apps/simple.rb +33 -0
  130. data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/dependencies/a.rb +9 -0
  131. data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/dependencies/b.rb +4 -0
  132. data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/dependencies/c.rb +1 -0
  133. data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/dependencies/circular/e.rb +13 -0
  134. data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/dependencies/circular/f.rb +2 -0
  135. data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/dependencies/circular/g.rb +2 -0
  136. data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/dependencies/d.rb +4 -0
  137. data/lib/middleman/vendor/padrino-core-0.10.5/test/helper.rb +81 -0
  138. data/lib/middleman/vendor/padrino-core-0.10.5/test/mini_shoulda.rb +45 -0
  139. data/lib/middleman/vendor/padrino-core-0.10.5/test/test_application.rb +108 -0
  140. data/lib/middleman/vendor/padrino-core-0.10.5/test/test_core.rb +79 -0
  141. data/lib/middleman/vendor/padrino-core-0.10.5/test/test_dependencies.rb +44 -0
  142. data/lib/middleman/vendor/padrino-core-0.10.5/test/test_filters.rb +278 -0
  143. data/lib/middleman/vendor/padrino-core-0.10.5/test/test_locale.rb +21 -0
  144. data/lib/middleman/vendor/padrino-core-0.10.5/test/test_logger.rb +100 -0
  145. data/lib/middleman/vendor/padrino-core-0.10.5/test/test_mounter.rb +177 -0
  146. data/lib/middleman/vendor/padrino-core-0.10.5/test/test_reloader_complex.rb +75 -0
  147. data/lib/middleman/vendor/padrino-core-0.10.5/test/test_reloader_simple.rb +98 -0
  148. data/lib/middleman/vendor/padrino-core-0.10.5/test/test_rendering.rb +461 -0
  149. data/lib/middleman/vendor/padrino-core-0.10.5/test/test_restful_routing.rb +33 -0
  150. data/lib/middleman/vendor/padrino-core-0.10.5/test/test_router.rb +146 -0
  151. data/lib/middleman/vendor/padrino-core-0.10.5/test/test_routing.rb +1673 -0
  152. data/lib/middleman/vendor/padrino-helpers-0.10.5/.document +5 -0
  153. data/lib/middleman/vendor/padrino-helpers-0.10.5/.gitignore +21 -0
  154. data/lib/middleman/vendor/padrino-helpers-0.10.5/.yardopts +1 -0
  155. data/lib/middleman/vendor/padrino-helpers-0.10.5/LICENSE.txt +20 -0
  156. data/lib/middleman/vendor/padrino-helpers-0.10.5/README.rdoc +239 -0
  157. data/lib/middleman/vendor/padrino-helpers-0.10.5/Rakefile +5 -0
  158. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers.rb +58 -0
  159. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/asset_tag_helpers.rb +420 -0
  160. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/form_builder/abstract_form_builder.rb +220 -0
  161. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/form_builder/standard_form_builder.rb +43 -0
  162. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/form_helpers.rb +602 -0
  163. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/format_helpers.rb +381 -0
  164. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/cs.yml +103 -0
  165. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/da.yml +91 -0
  166. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/de.yml +81 -0
  167. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/en.yml +103 -0
  168. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/es.yml +103 -0
  169. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/fr.yml +80 -0
  170. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/hu.yml +103 -0
  171. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/it.yml +89 -0
  172. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/ja.yml +103 -0
  173. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/lv.yml +103 -0
  174. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/nl.yml +82 -0
  175. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/no.yml +91 -0
  176. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/pl.yml +95 -0
  177. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/pt_br.yml +103 -0
  178. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/ru.yml +103 -0
  179. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/tr.yml +103 -0
  180. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/uk.yml +103 -0
  181. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/zh_cn.yml +104 -0
  182. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/zh_tw.yml +103 -0
  183. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/number_helpers.rb +288 -0
  184. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/output_helpers.rb +175 -0
  185. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/output_helpers/abstract_handler.rb +98 -0
  186. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/output_helpers/erb_handler.rb +79 -0
  187. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/output_helpers/haml_handler.rb +63 -0
  188. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/output_helpers/slim_handler.rb +81 -0
  189. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/render_helpers.rb +60 -0
  190. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/tag_helpers.rb +103 -0
  191. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/translation_helpers.rb +38 -0
  192. data/lib/middleman/vendor/padrino-helpers-0.10.5/padrino-helpers.gemspec +27 -0
  193. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/app.rb +73 -0
  194. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/capture_concat.erb +14 -0
  195. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/capture_concat.haml +12 -0
  196. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/capture_concat.slim +13 -0
  197. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_for.erb +14 -0
  198. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_for.haml +12 -0
  199. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_for.slim +12 -0
  200. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_tag.erb +11 -0
  201. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_tag.haml +9 -0
  202. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_tag.slim +9 -0
  203. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/current_engine.erb +5 -0
  204. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/current_engine.haml +5 -0
  205. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/current_engine.slim +5 -0
  206. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/fields_for.erb +20 -0
  207. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/fields_for.haml +15 -0
  208. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/fields_for.slim +15 -0
  209. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_for.erb +56 -0
  210. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_for.haml +47 -0
  211. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_for.slim +47 -0
  212. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_tag.erb +56 -0
  213. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_tag.haml +45 -0
  214. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_tag.slim +45 -0
  215. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/link_to.erb +5 -0
  216. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/link_to.haml +4 -0
  217. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/link_to.slim +4 -0
  218. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/mail_to.erb +3 -0
  219. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/mail_to.haml +3 -0
  220. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/mail_to.slim +3 -0
  221. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/meta_tag.erb +3 -0
  222. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/meta_tag.haml +3 -0
  223. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/meta_tag.slim +3 -0
  224. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/partials/_erb.erb +1 -0
  225. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/partials/_haml.haml +1 -0
  226. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/partials/_slim.slim +1 -0
  227. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/simple_partial.erb +1 -0
  228. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/simple_partial.haml +1 -0
  229. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/simple_partial.slim +1 -0
  230. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/app.rb +50 -0
  231. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/current_engine.haml +5 -0
  232. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/current_engines/_erb.erb +1 -0
  233. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/current_engines/_haml.haml +1 -0
  234. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/current_engines/_slim.slim +1 -0
  235. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/erb/test.erb +1 -0
  236. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/explicit_engine.haml +5 -0
  237. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/haml/test.haml +1 -0
  238. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/template/_user.haml +7 -0
  239. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/template/haml_template.haml +1 -0
  240. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/template/some_template.haml +2 -0
  241. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/helper.rb +66 -0
  242. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/test_asset_tag_helpers.rb +320 -0
  243. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/test_form_builder.rb +996 -0
  244. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/test_form_helpers.rb +645 -0
  245. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/test_format_helpers.rb +227 -0
  246. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/test_locale.rb +20 -0
  247. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/test_number_helpers.rb +136 -0
  248. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/test_output_helpers.rb +153 -0
  249. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/test_render_helpers.rb +76 -0
  250. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/test_tag_helpers.rb +105 -0
  251. data/lib/middleman/version.rb +1 -1
  252. data/middleman-x86-mingw32.gemspec +16 -33
  253. data/middleman.gemspec +16 -31
  254. metadata +590 -349
  255. data/features/sinatra.feature +0 -6
  256. data/lib/middleman/core_extensions/rack_map.rb +0 -35
  257. data/lib/middleman/renderers/coffee_script.rb +0 -8
  258. data/lib/middleman/renderers/haml.rb +0 -31
  259. data/lib/middleman/renderers/slim.rb +0 -8
@@ -0,0 +1,6 @@
1
+ ---
2
+ :test: bacon
3
+ :mock: mocha
4
+ :orm: datamapper
5
+ :renderer: erb
6
+ :script: jquery
@@ -0,0 +1,7 @@
1
+ .DS_Store
2
+ log/**/*
3
+ tmp/**/*
4
+ vendor/gems/gems
5
+ vendor/gems/specifications
6
+ vendor/gems/doc
7
+ vendor/gems/environment.rb
@@ -0,0 +1,32 @@
1
+ PADRINO_ROOT = File.dirname(__FILE__) unless defined? PADRINO_ROOT
2
+
3
+ module LibDemo
4
+ def self.give_me_a_random
5
+ @rand ||= rand(100)
6
+ end
7
+ end
8
+
9
+ class Complex1Demo < Padrino::Application
10
+ set :reload, true
11
+ get("/old"){ "Old Sinatra Way" }
12
+ end
13
+
14
+ class Complex2Demo < Padrino::Application
15
+ set :reload, true
16
+ get("/old"){ "Old Sinatra Way" }
17
+
18
+ controllers :var do
19
+ get(:destroy){ params.inspect }
20
+ end
21
+
22
+ get("/"){ "The magick number is: 12!" } # Change only the number!!!
23
+ end
24
+
25
+ Complex1Demo.controllers do
26
+ get("/"){ "Given random #{LibDemo.give_me_a_random}" }
27
+ end
28
+
29
+ Complex2Demo.controllers do
30
+ end
31
+
32
+ Padrino.load!
@@ -0,0 +1,33 @@
1
+ PADRINO_ROOT = File.dirname(__FILE__) unless defined? PADRINO_ROOT
2
+ # Remove this comment if you want do some like this: ruby PADRINO_ENV=test app.rb
3
+ #
4
+ # require 'rubygems'
5
+ # require 'padrino-core'
6
+ #
7
+
8
+ class SimpleDemo < Padrino::Application
9
+ set :reload, true
10
+ before { true }
11
+ after { true }
12
+ error(404) { "404" }
13
+ end
14
+
15
+ SimpleDemo.controllers do
16
+ get "/" do
17
+ 'The magick number is: 2767356926488785838763860464013972991031534522105386787489885890443740254365!' # Change only the number!!!
18
+ end
19
+
20
+ get "/rand" do
21
+ rand(2 ** 256).to_s
22
+ end
23
+ end
24
+
25
+ ## If you want use this as a standalone app uncomment:
26
+ #
27
+ # Padrino.mount("SimpleDemo").to("/")
28
+ # Padrino.run! unless Padrino.loaded? # If you enable reloader prevent to re-run the app
29
+ #
30
+ # Then run it from your console: ruby -I"lib" test/fixtures/apps/simple.rb
31
+ #
32
+
33
+ Padrino.load!
@@ -0,0 +1,9 @@
1
+ # This file will be safe loaded three times.
2
+ # The first one fail because B and C constant are not defined
3
+ # The second one file because B requires C constant so will not be loaded
4
+ # The third one B and C are defined
5
+
6
+ # But here we need some of b.rb
7
+ A_result = [B, C]
8
+
9
+ A = "A"
@@ -0,0 +1,4 @@
1
+ # But here we need some of c.rb and a.rb
2
+ B_result = C
3
+
4
+ B = "B"
@@ -0,0 +1,13 @@
1
+ class E
2
+ def self.fields
3
+ @fields ||= []
4
+ end
5
+
6
+ def self.inherited(subclass)
7
+ subclass.fields.replace fields.dup
8
+ end
9
+
10
+ G
11
+
12
+ fields << "name"
13
+ end
@@ -0,0 +1,4 @@
1
+ D = 0 unless defined?(D)
2
+ D += 1
3
+
4
+ raise "SomeThing"
@@ -0,0 +1,81 @@
1
+ ENV['PADRINO_ENV'] = 'test'
2
+ PADRINO_ROOT = File.dirname(__FILE__) unless defined?(PADRINO_ROOT)
3
+
4
+ require File.expand_path('../../../load_paths', __FILE__)
5
+ require File.expand_path('../mini_shoulda', __FILE__)
6
+ require 'padrino-core'
7
+ require 'json'
8
+ require 'rack/test'
9
+ require 'rack'
10
+
11
+ # Rubies < 1.9 don't handle hashes in the properly order so to prevent
12
+ # this issue for now we remove extra values from mimetypes.
13
+ Rack::Mime::MIME_TYPES.delete(".xsl") # In this way application/xml respond only to .xml
14
+
15
+ class Sinatra::Base
16
+ # Allow assertions in request context
17
+ include MiniTest::Assertions
18
+ end
19
+
20
+ class MiniTest::Spec
21
+ include Rack::Test::Methods
22
+
23
+ # Sets up a Sinatra::Base subclass defined with the block
24
+ # given. Used in setup or individual spec methods to establish
25
+ # the application.
26
+ def mock_app(base=Padrino::Application, &block)
27
+ @app = Sinatra.new(base, &block)
28
+ end
29
+
30
+ def app
31
+ Rack::Lint.new(@app)
32
+ end
33
+
34
+ # Asserts that a file matches the pattern
35
+ def assert_match_in_file(pattern, file)
36
+ assert File.exist?(file), "File '#{file}' does not exist!"
37
+ assert_match pattern, File.read(file)
38
+ end
39
+
40
+ # Delegate other missing methods to response.
41
+ def method_missing(name, *args, &block)
42
+ if response && response.respond_to?(name)
43
+ response.send(name, *args, &block)
44
+ else
45
+ super(name, *args, &block)
46
+ end
47
+ end
48
+
49
+ alias :response :last_response
50
+
51
+ def create_template(name, content, options={})
52
+ FileUtils.mkdir_p(File.dirname(__FILE__) + "/views")
53
+ FileUtils.mkdir_p(File.dirname(__FILE__) + "/views/layouts")
54
+ path = "/views/#{name}"
55
+ path += ".#{options.delete(:locale)}" if options[:locale].present?
56
+ path += ".#{options[:format]}" if options[:format].present?
57
+ path += ".erb" unless options[:format].to_s =~ /haml|rss|atom/
58
+ path += ".builder" if options[:format].to_s =~ /rss|atom/
59
+ file = File.dirname(__FILE__) + path
60
+ File.open(file, 'w') { |io| io.write content }
61
+ file
62
+ end
63
+ alias :create_view :create_template
64
+ alias :create_layout :create_template
65
+
66
+ def remove_views
67
+ FileUtils.rm_rf(File.dirname(__FILE__) + "/views")
68
+ end
69
+
70
+ def with_template(name, content, options={})
71
+ # Build a temp layout
72
+ template = create_template(name, content, options)
73
+ yield
74
+ ensure
75
+ # Remove temp layout
76
+ File.unlink(template) rescue nil
77
+ remove_views
78
+ end
79
+ alias :with_view :with_template
80
+ alias :with_layout :with_template
81
+ end
@@ -0,0 +1,45 @@
1
+ gem 'minitest'
2
+ require 'minitest/spec'
3
+ require 'minitest/autorun'
4
+ require 'mocha' # Load mocha after minitest
5
+
6
+ begin
7
+ require 'ruby-debug'
8
+ rescue LoadError; end
9
+
10
+ class MiniTest::Spec
11
+ class << self
12
+ alias :setup :before unless defined?(Rails)
13
+ alias :teardown :after unless defined?(Rails)
14
+ alias :should :it
15
+ alias :context :describe
16
+ def should_eventually(desc)
17
+ it("should eventually #{desc}") { skip("Should eventually #{desc}") }
18
+ end
19
+ end
20
+ alias :assert_no_match :refute_match
21
+ alias :assert_not_nil :refute_nil
22
+ alias :assert_not_equal :refute_equal
23
+ end
24
+
25
+ class ColoredIO
26
+ def initialize(io)
27
+ @io = io
28
+ end
29
+
30
+ def print(o)
31
+ case o
32
+ when "." then @io.send(:print, o.green)
33
+ when "E" then @io.send(:print, o.red)
34
+ when "F" then @io.send(:print, o.yellow)
35
+ when "S" then @io.send(:print, o.magenta)
36
+ else @io.send(:print, o)
37
+ end
38
+ end
39
+
40
+ def puts(*o)
41
+ super
42
+ end
43
+ end
44
+
45
+ MiniTest::Unit.output = ColoredIO.new(MiniTest::Unit.output)
@@ -0,0 +1,108 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/helper')
2
+
3
+ class PadrinoPristine < Padrino::Application; end
4
+ class PadrinoTestApp < Padrino::Application; end
5
+ class PadrinoTestApp2 < Padrino::Application; end
6
+
7
+ describe "Application" do
8
+ def setup
9
+ Padrino.clear!
10
+ end
11
+
12
+ def teardown
13
+ remove_views
14
+ end
15
+
16
+ context 'for application functionality' do
17
+
18
+ should 'check default options' do
19
+ assert File.identical?(__FILE__, PadrinoPristine.app_file)
20
+ assert_equal :padrino_pristine, PadrinoPristine.app_name
21
+ assert_equal :test, PadrinoPristine.environment
22
+ assert_equal Padrino.root("views"), PadrinoPristine.views
23
+ assert PadrinoPristine.raise_errors
24
+ assert !PadrinoPristine.logging
25
+ assert !PadrinoPristine.sessions
26
+ assert !PadrinoPristine.dump_errors
27
+ assert !PadrinoPristine.show_exceptions
28
+ assert PadrinoPristine.raise_errors
29
+ assert !Padrino.configure_apps
30
+ end
31
+
32
+ should 'check padrino specific options' do
33
+ assert !PadrinoPristine.instance_variable_get(:@_configured)
34
+ PadrinoPristine.send(:setup_application!)
35
+ assert_equal :padrino_pristine, PadrinoPristine.app_name
36
+ assert_equal 'StandardFormBuilder', PadrinoPristine.default_builder
37
+ assert PadrinoPristine.instance_variable_get(:@_configured)
38
+ assert !PadrinoPristine.reload?
39
+ assert !PadrinoPristine.flash
40
+ end
41
+
42
+ should 'set global project settings' do
43
+ Padrino.configure_apps { enable :sessions; set :foo, "bar" }
44
+ PadrinoTestApp.send(:default_configuration!)
45
+ PadrinoTestApp2.send(:default_configuration!)
46
+ assert PadrinoTestApp.sessions, "should have sessions enabled"
47
+ assert_equal "bar", PadrinoTestApp.settings.foo, "should have foo assigned"
48
+ assert_equal PadrinoTestApp.session_secret, PadrinoTestApp2.session_secret
49
+ end
50
+
51
+ should "have shared sessions accessible in project" do
52
+ Padrino.configure_apps { enable :sessions; set :session_secret, 'secret' }
53
+ Padrino.mount("PadrinoTestApp").to("/write")
54
+ Padrino.mount("PadrinoTestApp2").to("/read")
55
+ PadrinoTestApp.tap { |app| app.send(:default_configuration!)
56
+ app.get("/") { session[:foo] = "shared" } }
57
+ PadrinoTestApp2.tap { |app| app.send(:default_configuration!)
58
+ app.get("/") { session[:foo] } }
59
+ browser = Rack::Test::Session.new(Rack::MockSession.new(Padrino.application))
60
+ browser.get '/write'
61
+ browser.get '/read'
62
+ assert_equal 'shared', browser.last_response.body
63
+ end
64
+
65
+ # compare to: test_routing: allow global provides
66
+ should "set content_type to :html if none can be determined" do
67
+ mock_app do
68
+ provides :xml
69
+
70
+ get("/foo"){ "Foo in #{content_type}" }
71
+ get("/bar"){ "Foo in #{content_type}" }
72
+ end
73
+
74
+ get '/foo', {}, { 'HTTP_ACCEPT' => 'application/xml' }
75
+ assert_equal 'Foo in xml', body
76
+ get '/foo'
77
+ assert_equal 'Foo in xml', body
78
+
79
+ get '/bar', {}, { 'HTTP_ACCEPT' => 'application/xml' }
80
+ assert_equal "Foo in html", body
81
+ end # content_type to :html
82
+
83
+ context "errors" do
84
+ should "haven't mapped errors on development" do
85
+ mock_app { get('/'){ 'HI' } }
86
+ get "/"
87
+ assert @app.errors.empty?
88
+ end
89
+
90
+ should "have mapped errors on production" do
91
+ mock_app { set :environment, :production; get('/'){ 'HI' } }
92
+ get "/"
93
+ assert_equal 1, @app.errors.size
94
+ end
95
+
96
+ should "overide errors" do
97
+ mock_app do
98
+ set :environment, :production
99
+ get('/'){ raise }
100
+ error(::Exception){ 'custom error' }
101
+ end
102
+ get "/"
103
+ assert_equal 1, @app.errors.size
104
+ assert_equal 'custom error', body
105
+ end
106
+ end
107
+ end # application functionality
108
+ end
@@ -0,0 +1,79 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/helper')
2
+
3
+ describe "Core" do
4
+ def setup
5
+ Padrino.clear!
6
+ end
7
+
8
+ context 'for core functionality' do
9
+
10
+ should 'check some global methods' do
11
+ assert_respond_to Padrino, :root
12
+ assert_respond_to Padrino, :env
13
+ assert_respond_to Padrino, :application
14
+ assert_respond_to Padrino, :set_encoding
15
+ assert_respond_to Padrino, :load!
16
+ assert_respond_to Padrino, :reload!
17
+ assert_respond_to Padrino, :version
18
+ assert_respond_to Padrino, :bundle
19
+ assert_respond_to Padrino, :configure_apps
20
+ end
21
+
22
+
23
+ should 'validate global helpers' do
24
+ assert_equal :test, Padrino.env
25
+ assert_match /\/test/, Padrino.root
26
+ assert_equal nil, Padrino.bundle
27
+ assert_not_nil Padrino.version
28
+ end
29
+
30
+ should 'set correct utf-8 encoding' do
31
+ Padrino.set_encoding
32
+ if RUBY_VERSION <'1.9'
33
+ assert_equal 'UTF8', $KCODE
34
+ else
35
+ assert_equal Encoding.default_external, Encoding::UTF_8
36
+ assert_equal Encoding.default_internal, Encoding::UTF_8
37
+ end
38
+ end
39
+
40
+ should 'have load paths' do
41
+ assert_equal [Padrino.root('lib'), Padrino.root('models'), Padrino.root('shared')], Padrino.load_paths
42
+ end
43
+
44
+ should 'raise application error if I instantiate a new padrino application without mounted apps' do
45
+ assert_raises(Padrino::ApplicationLoadError) { Padrino.application.new }
46
+ end
47
+
48
+ should "check before/after padrino load hooks" do
49
+ Padrino.before_load { @_foo = 1 }
50
+ Padrino.after_load { @_foo += 1 }
51
+ Padrino.load!
52
+ assert_equal 1, Padrino.before_load.size
53
+ assert_equal 1, Padrino.after_load.size
54
+ assert_equal 2, @_foo
55
+ end
56
+
57
+ should "add middlewares in front if specified" do
58
+ test = Class.new {
59
+ def initialize(app)
60
+ @app = app
61
+ end
62
+
63
+ def call(env)
64
+ status, headers, body = @app.call(env)
65
+ headers["Middleware-Called"] = "yes"
66
+ return status, headers, body
67
+ end
68
+ }
69
+
70
+ class Foo < Padrino::Application; end
71
+
72
+ Padrino.use(test)
73
+ Padrino.mount(Foo).to("/")
74
+
75
+ res = Rack::MockRequest.new(Padrino.application).get("/")
76
+ assert_equal "yes", res["Middleware-Called"]
77
+ end
78
+ end
79
+ end