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,98 @@
1
+ module Padrino
2
+ ##
3
+ # This class is an extended version of Rack::URLMap
4
+ #
5
+ # Padrino::Router like Rack::URLMap dispatches in such a way that the
6
+ # longest paths are tried first, since they are most specific.
7
+ #
8
+ # Features:
9
+ #
10
+ # * Map a path to the specified App
11
+ # * Ignore server names (this solve issues with vhost and domain aliases)
12
+ # * Use hosts instead of server name for mappings (this help us with our vhost and doman aliases)
13
+ #
14
+ # @example
15
+ #
16
+ # routes = Padrino::Router.new do
17
+ # map(:path => "/", :to => PadrinoWeb, :host => "padrino.local")
18
+ # map(:path => "/", :to => Admin, :host => "admin.padrino.local")
19
+ # end
20
+ # run routes
21
+ #
22
+ # routes = Padrino::Router.new do
23
+ # map(:path => "/", :to => PadrinoWeb, :host => /*.padrino.local/)
24
+ # end
25
+ # run routes
26
+ #
27
+ # @api semipublic
28
+ class Router
29
+
30
+ # Constructs a new route mapper instance
31
+ def initialize(*mapping, &block)
32
+ @mapping = []
33
+ mapping.each { |m| map(m) }
34
+ instance_eval(&block) if block
35
+ end
36
+
37
+ ##
38
+ # Map a route path and host to a specified application.
39
+ #
40
+ # @param [Hash] options
41
+ # The options to map.
42
+ # @option options [Sinatra::Application] :to
43
+ # The class of the application to mount.
44
+ # @option options [String] :path ("/")
45
+ # The path to map the specified application.
46
+ # @option options [String] :host
47
+ # The host to map the specified application.
48
+ #
49
+ # @example
50
+ # map(:path => "/", :to => PadrinoWeb, :host => "padrino.local")
51
+ #
52
+ # @return [Array] The sorted route mappings.
53
+ # @api semipublic
54
+ def map(options={})
55
+ path = options[:path] || "/"
56
+ host = options[:host]
57
+ app = options[:to]
58
+
59
+ raise ArgumentError, "paths need to start with /" if path[0] != ?/
60
+ raise ArgumentError, "app is required" if app.nil?
61
+
62
+ path = path.chomp('/')
63
+ match = Regexp.new("^#{Regexp.quote(path).gsub('/', '/+')}(.*)", nil, 'n')
64
+ host = Regexp.new("^#{Regexp.quote(host)}$", true, 'n') unless host.nil? || host.is_a?(Regexp)
65
+
66
+ @mapping << [host, path, match, app]
67
+ sort!
68
+ end
69
+
70
+ # The call handler setup to route a request given the mappings specified.
71
+ # @api private
72
+ def call(env)
73
+ rPath = env["PATH_INFO"].to_s
74
+ script_name = env['SCRIPT_NAME']
75
+ hHost, sName, sPort = env.values_at('HTTP_HOST','SERVER_NAME','SERVER_PORT')
76
+ @mapping.each do |host, path, match, app|
77
+ next unless host.nil? || hHost =~ host
78
+ next unless rPath =~ match && rest = $1
79
+ next unless rest.empty? || rest[0] == ?/
80
+
81
+ rest = "/" if rest.empty?
82
+
83
+ return app.call(
84
+ env.merge(
85
+ 'SCRIPT_NAME' => (script_name + path),
86
+ 'PATH_INFO' => rest))
87
+ end
88
+ [404, {"Content-Type" => "text/plain", "X-Cascade" => "pass"}, ["Not Found: #{rPath}"]]
89
+ end
90
+
91
+ private
92
+
93
+ # Sorts the mapped routes in consistent order
94
+ def sort!
95
+ @mapping = @mapping.sort_by { |h, p, m, a| -p.size }
96
+ end
97
+ end # Router
98
+ end # Padrino
@@ -0,0 +1,79 @@
1
+ module Padrino
2
+ ##
3
+ # Runs the Padrino apps as a self-hosted server using:
4
+ # thin, mongrel, or webrick in that order.
5
+ #
6
+ # @example
7
+ # Padrino.run! # with these defaults => host: "localhost", port: "3000", adapter: the first found
8
+ # Padrino.run!("localhost", "4000", "mongrel") # use => host: "0.0.0.0", port: "3000", adapter: "mongrel"
9
+ #
10
+ def self.run!(options={})
11
+ Padrino.load!
12
+ Server.start(Padrino.application, options)
13
+ end
14
+
15
+ ##
16
+ # This module builds a Padrino server to run the project based on available handlers.
17
+ #
18
+ class Server < Rack::Server
19
+ # Server Handlers
20
+ Handlers = [:thin, :mongrel, :webrick]
21
+
22
+ # Starts the application on the available server with specified options.
23
+ def self.start(app, opts={})
24
+ options = {}.merge(opts) # We use a standard hash instead of Thor::CoreExt::HashWithIndifferentAccess
25
+ options.symbolize_keys!
26
+ options[:Host] = options.delete(:host) || '0.0.0.0'
27
+ options[:Port] = options.delete(:port) || 3000
28
+ options[:AccessLog] = []
29
+ if options[:daemonize]
30
+ options[:pid] = options[:pid].blank? ? File.expand_path('tmp/pids/server.pid') : opts[:pid]
31
+ FileUtils.mkdir_p(File.dirname(options[:pid]))
32
+ end
33
+ options[:server] = detect_rack_handler if options[:server].blank?
34
+ new(options, app).start
35
+ end
36
+
37
+ def initialize(options, app)
38
+ @options, @app = options, app
39
+ end
40
+
41
+ # Starts the application on the available server with specified options.
42
+ def start
43
+ puts "=> Padrino/#{Padrino.version} has taken the stage #{Padrino.env} at http://#{options[:Host]}:#{options[:Port]}"
44
+ [:INT, :TERM].each { |sig| trap(sig) { exit } }
45
+ super
46
+ ensure
47
+ puts "<= Padrino has ended his set (crowd applauds)" unless options[:daemonize]
48
+ end
49
+
50
+ # The application the server will run.
51
+ def app
52
+ @app
53
+ end
54
+ alias :wrapped_app :app
55
+
56
+ # The options specified to the server.
57
+ def options
58
+ @options
59
+ end
60
+
61
+ private
62
+
63
+ # Detects the supported handler to use.
64
+ #
65
+ # @example
66
+ # detect_rack_handler => <ThinHandler>
67
+ #
68
+ def self.detect_rack_handler
69
+ Handlers.each do |handler|
70
+ begin
71
+ return handler if Rack::Handler.get(handler.to_s.downcase)
72
+ rescue LoadError
73
+ rescue NameError
74
+ end
75
+ end
76
+ fail "Server handler (#{Handlers.join(', ')}) not found."
77
+ end
78
+ end # Server
79
+ end # Padrino
@@ -0,0 +1,199 @@
1
+ ##
2
+ # This file loads certain extensions required by Padrino from ActiveSupport.
3
+ #
4
+ require 'active_support/core_ext/module/aliasing' # alias_method_chain
5
+ require 'active_support/core_ext/hash/keys' # symbolize_keys
6
+ require 'active_support/core_ext/hash/reverse_merge' # reverse_merge
7
+ require 'active_support/core_ext/hash/slice' # slice
8
+ require 'active_support/core_ext/object/blank' # present?
9
+ require 'active_support/core_ext/array/extract_options' # extract_options
10
+ require 'active_support/inflector/methods' # constantize
11
+ require 'active_support/inflector/inflections' # pluralize
12
+ require 'active_support/inflections' # load default inflections
13
+ require 'yaml' unless defined?(YAML) # load yaml for i18n
14
+ require 'Win32/Console/ANSI' if RUBY_PLATFORM =~ /win32/ # ruby color suppor for win
15
+
16
+ ##
17
+ # This is an adapted version of active_support/core_ext/string/inflections.rb
18
+ # to prevent loading several dependencies including I18n gem.
19
+ #
20
+ # Issue: https://github.com/rails/rails/issues/1526
21
+ #
22
+ class String
23
+ ##
24
+ # Returns the plural form of the word in the string.
25
+ #
26
+ # "post".pluralize # => "posts"
27
+ # "octopus".pluralize # => "octopi"
28
+ # "sheep".pluralize # => "sheep"
29
+ # "words".pluralize # => "words"
30
+ # "the blue mailman".pluralize # => "the blue mailmen"
31
+ # "CamelOctopus".pluralize # => "CamelOctopi"
32
+ #
33
+ def pluralize
34
+ ActiveSupport::Inflector.pluralize(self)
35
+ end
36
+
37
+ ##
38
+ # Returns the singular form of the word in the string.
39
+ #
40
+ # "posts".singularize # => "post"
41
+ # "octopi".singularize # => "octopus"
42
+ # "sheep".singularize # => "sheep"
43
+ # "words".singularize # => "word"
44
+ # "the blue mailmen".singularize # => "the blue mailman"
45
+ # "CamelOctopi".singularize # => "CamelOctopus"
46
+ #
47
+ def singularize
48
+ ActiveSupport::Inflector.singularize(self)
49
+ end
50
+
51
+ ##
52
+ # +constantize+ tries to find a declared constant with the name specified
53
+ # in the string. It raises a NameError when the name is not in CamelCase
54
+ # or is not initialized.
55
+ #
56
+ # "Module".constantize # => Module
57
+ # "Class".constantize # => Class
58
+ #
59
+ def constantize
60
+ ActiveSupport::Inflector.constantize(self)
61
+ end
62
+
63
+ ##
64
+ # The reverse of +camelize+. Makes an underscored, lowercase form from the expression in the string.
65
+ #
66
+ # +underscore+ will also change '::' to '/' to convert namespaces to paths.
67
+ #
68
+ # "ActiveRecord".underscore # => "active_record"
69
+ # "ActiveRecord::Errors".underscore # => active_record/errors
70
+ #
71
+ def underscore
72
+ ActiveSupport::Inflector.underscore(self)
73
+ end
74
+
75
+ ##
76
+ # By default, +camelize+ converts strings to UpperCamelCase. If the argument to camelize
77
+ # is set to <tt>:lower</tt> then camelize produces lowerCamelCase.
78
+ #
79
+ # +camelize+ will also convert '/' to '::' which is useful for converting paths to namespaces.
80
+ #
81
+ # "active_record".camelize # => "ActiveRecord"
82
+ # "active_record".camelize(:lower) # => "activeRecord"
83
+ # "active_record/errors".camelize # => "ActiveRecord::Errors"
84
+ # "active_record/errors".camelize(:lower) # => "activeRecord::Errors"
85
+ #
86
+ def camelize(first_letter = :upper)
87
+ case first_letter
88
+ when :upper then ActiveSupport::Inflector.camelize(self, true)
89
+ when :lower then ActiveSupport::Inflector.camelize(self, false)
90
+ end
91
+ end
92
+ alias_method :camelcase, :camelize
93
+
94
+ ##
95
+ # Create a class name from a plural table name like Rails does for table names to models.
96
+ # Note that this returns a string and not a class. (To convert to an actual class
97
+ # follow +classify+ with +constantize+.)
98
+ #
99
+ # "egg_and_hams".classify # => "EggAndHam"
100
+ # "posts".classify # => "Post"
101
+ #
102
+ # Singular names are not handled correctly.
103
+ #
104
+ # "business".classify # => "Busines"
105
+ #
106
+ def classify
107
+ ActiveSupport::Inflector.classify(self)
108
+ end
109
+ end
110
+
111
+ module ObjectSpace
112
+ class << self
113
+ # Returns all the classes in the object space.
114
+ def classes
115
+ ObjectSpace.each_object(Module).select do |klass|
116
+ # Why this? Ruby when you remove a constant don't clean it from
117
+ # rb_tables, this mean that here we can found classes that was
118
+ # removed.
119
+ klass.name rescue false
120
+ end
121
+ end
122
+ end
123
+ end
124
+
125
+ ##
126
+ # FileSet helper method for iterating and interacting with files inside a directory
127
+ #
128
+ module FileSet
129
+ extend self
130
+ ##
131
+ # Iterates over every file in the glob pattern and yields to a block
132
+ # Returns the list of files matching the glob pattern
133
+ # FileSet.glob('padrino-core/application/*.rb', __FILE__) { |file| load file }
134
+ #
135
+ def glob(glob_pattern, file_path=nil, &block)
136
+ glob_pattern = File.join(File.dirname(file_path), glob_pattern) if file_path
137
+ file_list = Dir.glob(glob_pattern).sort
138
+ file_list.each { |file| block.call(file) }
139
+ file_list
140
+ end
141
+
142
+ ##
143
+ # Requires each file matched in the glob pattern into the application
144
+ # FileSet.glob_require('padrino-core/application/*.rb', __FILE__)
145
+ #
146
+ def glob_require(glob_pattern, file_path=nil)
147
+ glob(glob_pattern, file_path) { |f| require f }
148
+ end
149
+ end
150
+
151
+ ##
152
+ # Removes indentation
153
+ # Add colors
154
+ #
155
+ # @example
156
+ # help <<-EOS.undent
157
+ # Here my help usage
158
+ # sample_code
159
+ #
160
+ # Fix
161
+ # EOS
162
+ # puts help.red.bold
163
+ #
164
+ class String
165
+ def self.colors
166
+ @_colors ||= {
167
+ :clear => 0,
168
+ :bold => 1,
169
+ :black => 30,
170
+ :red => 31,
171
+ :green => 32,
172
+ :yellow => 33,
173
+ :blue => 34,
174
+ :magenta => 35,
175
+ :cyan => 36,
176
+ :white => 37
177
+ }
178
+ end
179
+
180
+ colors.each do |color, value|
181
+ define_method(color) do
182
+ ["\e[", value.to_s, "m", self, "\e[", self.class.colors[:clear], "m"] * ''
183
+ end
184
+ end
185
+
186
+ def undent
187
+ gsub(/^.{#{slice(/^ +/).size}}/, '')
188
+ end
189
+ end
190
+
191
+ ##
192
+ # Loads our locale configuration files
193
+ #
194
+ I18n.load_path += Dir["#{File.dirname(__FILE__)}/locale/*.yml"] if defined?(I18n)
195
+
196
+ ##
197
+ # Used to determine if this file has already been required
198
+ #
199
+ module SupportLite; end
@@ -0,0 +1,21 @@
1
+ module Padrino
2
+ ##
3
+ # This module it's used for bootstrap with padrino rake
4
+ # thirdy party tasks, in your gem/plugin/extension you
5
+ # need only do this:
6
+ #
7
+ # @example
8
+ # Padrino::Tasks.files << yourtask.rb
9
+ # Padrino::Tasks.files.concat(Dir["/path/to/all/my/tasks/*.rb"])
10
+ # Padrino::Tasks.files.unshift("yourtask.rb")
11
+ #
12
+ module Tasks
13
+
14
+ ##
15
+ # Returns a list of files to handle with padrino rake
16
+ #
17
+ def self.files
18
+ @files ||= []
19
+ end
20
+ end # Tasks
21
+ end # Padrino
@@ -0,0 +1,20 @@
1
+ #
2
+ # Manages current Padrino version for use in gem generation.
3
+ #
4
+ # We put this in a separate file so you can get padrino version
5
+ # without include full padrino core.
6
+ #
7
+ module Padrino
8
+ # The version constant for the current version of Padrino.
9
+ VERSION = '0.10.5' unless defined?(Padrino::VERSION)
10
+
11
+ #
12
+ # The current Padrino version.
13
+ #
14
+ # @return [String]
15
+ # The version number.
16
+ #
17
+ def self.version
18
+ VERSION
19
+ end
20
+ end # Padrino
@@ -0,0 +1,38 @@
1
+ #!/usr/bin/env gem build
2
+ # encoding: utf-8
3
+
4
+ require File.expand_path("../lib/padrino-core/version.rb", __FILE__)
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "padrino-core"
8
+ s.rubyforge_project = "padrino-core"
9
+ s.authors = ["Padrino Team", "Nathan Esquenazi", "Davide D'Agostino", "Arthur Chiu"]
10
+ s.email = "padrinorb@gmail.com"
11
+ s.summary = "The required Padrino core gem"
12
+ s.homepage = "http://www.padrinorb.com"
13
+ s.description = "The Padrino core gem required for use of this framework"
14
+ s.required_rubygems_version = ">= 1.3.6"
15
+ s.version = Padrino.version
16
+ s.date = Time.now.strftime("%Y-%m-%d")
17
+
18
+ s.extra_rdoc_files = Dir["*.rdoc"]
19
+ s.files = `git ls-files`.split("\n")
20
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
21
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
22
+ s.require_paths = ["lib"]
23
+ s.rdoc_options = ["--charset=UTF-8"]
24
+
25
+ # TODO remove after a couple versions
26
+ # s.post_install_message = "\e[32m" + ("*" * 20)
27
+ # s.post_install_message << "\n UPGRADE NOTES\n\n\e[31m When upgrading, please 'enable :sessions' for each application"
28
+ # s.post_install_message << " as shown here:\e[0m http://bit.ly/kODKMx\n"
29
+ # s.post_install_message << "\e[31m When upgrading, please 'register Padrino::Rendering' for each application"
30
+ # s.post_install_message << " as shown here:\e[0m https://gist.github.com/1d36a35794dbbd664ea4"
31
+ # s.post_install_message << "\n\e[32m" + ("*" * 20) + "\n\e[0m"
32
+
33
+ s.add_dependency("tilt", "~> 1.3.0")
34
+ s.add_dependency("sinatra", "~> 1.3.1")
35
+ s.add_dependency("http_router", "~> 0.10.2")
36
+ s.add_dependency("thor", "~> 0.14.3")
37
+ s.add_dependency("activesupport", "~> 3.1.0")
38
+ end