middleman 2.0.16.1 → 3.0.0.alpha.2

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