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
@@ -1,34 +1,35 @@
1
- require "tilt"
2
-
3
1
  module Middleman::Renderers::Markdown
4
2
  class << self
5
3
  def registered(app)
6
- app.extend ClassMethods
7
-
8
- app.set :markdown_engine, :maruku
4
+ app.send :include, InstanceMethods
9
5
 
10
- if !app.respond_to? :markdown_engine_prefix
11
- app.set :markdown_engine_prefix, ::Tilt
6
+ begin
7
+ require "maruku"
8
+ app.set :markdown_engine, :maruku
9
+ rescue LoadError
10
+ app.set :markdown_engine, nil
12
11
  end
12
+
13
+ app.set :markdown_engine_prefix, ::Tilt
13
14
 
14
15
  app.after_configuration do
15
- engine = app.settings.markdown_engine
16
+ unless markdown_engine.nil?
17
+ if markdown_engine.is_a? Symbol
18
+ markdown_engine = markdown_tilt_template_from_symbol(markdown_engine)
19
+ end
16
20
 
17
- if engine.is_a? Symbol
18
- engine = app.tilt_template_from_symbol(engine)
21
+ ::Tilt.prefer(markdown_engine)
19
22
  end
20
-
21
- ::Tilt.prefer(engine)
22
23
  end
23
24
  end
24
25
  alias :included :registered
25
26
  end
26
27
 
27
- module ClassMethods
28
- def tilt_template_from_symbol(engine)
28
+ module InstanceMethods
29
+ def markdown_tilt_template_from_symbol(engine)
29
30
  engine = engine.to_s
30
31
  engine = engine == "rdiscount" ? "RDiscount" : engine.camelize
31
- settings.markdown_engine_prefix.const_get("#{engine}Template")
32
+ markdown_engine_prefix.const_get("#{engine}Template")
32
33
  end
33
34
  end
34
35
  end
@@ -1,5 +1,6 @@
1
+ require "sprockets"
2
+ require "sprockets-sass"
1
3
  require "sass"
2
- require "sass/plugin"
3
4
 
4
5
  module Middleman::Renderers::Sass
5
6
  class << self
@@ -9,55 +10,50 @@ module Middleman::Renderers::Sass
9
10
  end
10
11
  alias :included :registered
11
12
  end
12
-
13
- class SassPlusCSSFilenameTemplate < ::Tilt::SassTemplate
14
- def sass_options_with_scope(scope)
15
- return sass_options if basename.nil?
16
-
17
- location_of_sass_file = if scope.build?
18
- File.join(scope.root, scope.build_dir)
19
- else
20
- scope.views
21
- end
22
-
23
- parts = basename.split('.')
24
- parts.pop
25
- css_filename = File.join(location_of_sass_file, scope.css_dir, parts.join("."))
26
- sass_options.merge(scope.settings.sass).merge(:css_filename => css_filename)
27
- end
28
13
 
29
- def evaluate(scope, locals, &block)
30
- @engine = ::Sass::Engine.new(data, sass_options_with_scope(scope.class))
31
-
14
+ class SassPlusCSSFilenameTemplate < ::Sprockets::Sass::SassTemplate
15
+ self.default_mime_type = "text/css"
16
+
17
+ # Add exception messaging
18
+ def evaluate(context, locals, &block)
32
19
  begin
33
20
  super
34
21
  rescue Sass::SyntaxError => e
35
22
  Sass::SyntaxError.exception_to_css(e, :full_exception => true)
36
23
  end
37
24
  end
25
+
26
+ protected
27
+ def sass_options
28
+ location_of_sass_file = if @context.build?
29
+ File.expand_path(@context.build_dir, @context.root)
30
+ else
31
+ File.expand_path(@context.views, @context.root)
32
+ end
33
+
34
+ parts = basename.split('.')
35
+ parts.pop
36
+ css_filename = File.join(location_of_sass_file, @context.css_dir, parts.join("."))
37
+
38
+ super.merge(
39
+ :css_filename => css_filename
40
+ )
41
+ end
38
42
  end
43
+ ::Sprockets.register_engine ".sass", SassPlusCSSFilenameTemplate
39
44
  ::Tilt.register 'sass', SassPlusCSSFilenameTemplate
40
45
  ::Tilt.prefer(SassPlusCSSFilenameTemplate)
41
-
46
+
42
47
  class ScssPlusCSSFilenameTemplate < SassPlusCSSFilenameTemplate
43
- def sass_options_with_scope(scope)
44
- super.merge(:syntax => :scss)
48
+ self.default_mime_type = "text/css"
49
+
50
+ # Define the expected syntax for the template
51
+ def syntax
52
+ :scss
45
53
  end
46
54
  end
55
+
56
+ ::Sprockets.register_engine ".scss", ScssPlusCSSFilenameTemplate
47
57
  ::Tilt.register 'scss', ScssPlusCSSFilenameTemplate
48
58
  ::Tilt.prefer(ScssPlusCSSFilenameTemplate)
49
- end
50
-
51
- # Use sass settings in Haml filters
52
- # Other, tilt-based filters (like those used in Slim) will
53
- # work automatically.
54
- # module Middleman::Renderers::Haml
55
- # module Sass
56
- # include ::Haml::Filters::Base
57
- #
58
- # def render(text)
59
- # sass_options = scope.settings.sass
60
- # ::Sass::Engine.new(text, sass_options).render
61
- # end
62
- # end
63
- # end
59
+ end
@@ -0,0 +1,9 @@
1
+ h2. 0.2.0
2
+
3
+ h3. Changes
4
+ * Callback blocks are now executed on the instance using @instance_exec@. If you need to access the class (former context) use @self.class@.
5
+
6
+ h2. 0.1.4
7
+
8
+ h3. Bugfixes
9
+ * An uninitialized @inheritable_attr@ doesn't crash since it is not cloned anymore. Note that an uncloneable attribute value still causes an exception.
@@ -0,0 +1,3 @@
1
+ source :rubygems
2
+
3
+ gemspec
@@ -0,0 +1,107 @@
1
+ = Hooks
2
+
3
+ <em>Generic hooks with callbacks for Ruby.</em>
4
+
5
+
6
+ == Introduction
7
+
8
+ _Hooks_ lets you define hooks declaratively in your ruby class. You can add callbacks to your hook, which will be run as soon as _you_ run the hook!
9
+
10
+ It's almost like ActiveSupport::Callbacks but 76,6% less complex. Instead, it is not more than 60 lines of code, one method compilation, no +method_missing+ and no magic.
11
+
12
+ Also, you may pass additional arguments to your callbacks when invoking a hook.
13
+
14
+ == Example
15
+
16
+ Let's take... a cat.
17
+
18
+ require 'hooks'
19
+
20
+ class Cat
21
+ include Hooks
22
+
23
+ define_hook :after_dinner
24
+
25
+ Now you can add callbacks to your hook declaratively in your class.
26
+
27
+ after_dinner do
28
+ puts "Ice cream for #{self}!"
29
+ end
30
+
31
+ after_dinner :have_a_desert # => refers to Cat#have_a_desert
32
+
33
+ def have_a_desert
34
+ puts "Hell, yeah!"
35
+ end
36
+
37
+ This will run the block and <tt>#have_a_desert</tt> from above.
38
+
39
+ cat.run_hook :after_dinner
40
+ # => Ice cream for #<Cat:0x8df9d84>!
41
+ Hell, yeah!
42
+
43
+ Callback blocks and methods will be executed with instance context. Note how +self+ in the block refers to the Cat instance.
44
+
45
+
46
+ == Inheritance
47
+
48
+ Hooks are inherited, here's a complete example to put it all together.
49
+
50
+ class Garfield < Cat
51
+
52
+ after_dinner :want_some_more
53
+
54
+ def want_some_more
55
+ puts "Is that all?"
56
+ end
57
+ end
58
+
59
+
60
+ Garfield.new.run_hook :after_dinner
61
+ # => Ice cream for #<Cat:0x8df9d84>!
62
+ Hell, yeah!
63
+ Is that all?
64
+
65
+ Note how the callbacks are invoked in the order they were inherited.
66
+
67
+
68
+ == Options for Callbacks
69
+
70
+ You're free to pass any number of arguments to #run_callback, those will be passed to the callbacks.
71
+
72
+ cat.run_hook :before_dinner, cat, Time.now
73
+
74
+ The callbacks should be ready for receiving parameters.
75
+
76
+ before_dinner :wash_pawns
77
+ before_dinner do |who, when|
78
+ ...
79
+ end
80
+
81
+ def wash_pawns(who, when)
82
+
83
+
84
+ Not sure why a cat should have ice cream for dinner. Beside that, I was tempted naming this gem _hooker_.
85
+
86
+
87
+ == Installation
88
+
89
+ gem install hooks
90
+
91
+
92
+ == Anybody using it?
93
+
94
+ * Hooks is already used in [Apotomo:http://github.com/apotonick/apotomo], a hot widget framework for Rails. Look at +lib/apotomo/widget.rb+ for examples and into +lib/apotomo/tree_node.rb+ to learn how modules-driven code might benefit from hooks.
95
+
96
+ == Similar libraries
97
+
98
+ * http://github.com/nakajima/aspectory
99
+ * http://github.com/auser/backcall
100
+ * http://github.com/mmcgrana/simple_callbacks
101
+
102
+
103
+ == License
104
+
105
+ Copyright (c) 2010, Nick Sutterer
106
+
107
+ Released under the MIT License.
@@ -0,0 +1,12 @@
1
+ require 'rake'
2
+ require 'rake/testtask'
3
+
4
+ desc 'Default: run unit tests.'
5
+ task :default => :test
6
+
7
+ desc 'Test the hooks plugin.'
8
+ Rake::TestTask.new(:test) do |test|
9
+ test.libs << 'test'
10
+ test.test_files = FileList['test/*_test.rb']
11
+ test.verbose = true
12
+ end
@@ -0,0 +1,22 @@
1
+ lib = File.expand_path('../lib/', __FILE__)
2
+ $:.unshift lib unless $:.include?(lib)
3
+
4
+ require 'hooks'
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "hooks"
8
+ s.version = Hooks::VERSION
9
+ s.platform = Gem::Platform::RUBY
10
+ s.authors = ["Nick Sutterer"]
11
+ s.email = ["apotonick@gmail.com"]
12
+ s.homepage = "http://nicksda.apotomo.de/tag/hooks"
13
+ s.summary = %q{Generic hooks with callbacks for Ruby.}
14
+ s.description = %q{Declaratively define hooks, add callbacks and run them with the options you like.}
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.require_paths = ["lib"]
19
+
20
+ s.add_development_dependency "shoulda"
21
+ s.add_development_dependency "rake"
22
+ end
@@ -0,0 +1,109 @@
1
+ require File.join(File.dirname(__FILE__), "hooks/inheritable_attribute")
2
+
3
+ # Almost like ActiveSupport::Callbacks but 76,6% less complex.
4
+ #
5
+ # Example:
6
+ #
7
+ # class CatWidget < Apotomo::Widget
8
+ # define_hook :after_dinner
9
+ #
10
+ # Now you can add callbacks to your hook declaratively in your class.
11
+ #
12
+ # after_dinner do puts "Ice cream!" end
13
+ # after_dinner :have_a_desert # => refers to CatWidget#have_a_desert
14
+ #
15
+ # Running the callbacks happens on instances. It will run the block and #have_a_desert from above.
16
+ #
17
+ # cat.run_hook :after_dinner
18
+ module Hooks
19
+ VERSION = "0.2.0"
20
+
21
+ def self.included(base)
22
+ base.extend InheritableAttribute
23
+ base.extend ClassMethods
24
+ end
25
+
26
+ module ClassMethods
27
+ def define_hook(name)
28
+ accessor_name = "_#{name}_callbacks"
29
+
30
+ setup_hook_accessors(accessor_name)
31
+ define_hook_writer(name, accessor_name)
32
+ end
33
+
34
+ # Like Hooks#run_hook but for the class. Note that +:callbacks+ must be class methods.
35
+ #
36
+ # Example:
37
+ #
38
+ # class Cat
39
+ # after_eight :grab_a_beer
40
+ #
41
+ # def self.grab_a_beer(*) # and so on...
42
+ #
43
+ # where <tt>Cat.run_hook :after_eight</tt> will call the class method +grab_a_beer+.
44
+ def run_hook(name, *args)
45
+ run_hook_for(name, self, *args)
46
+ end
47
+
48
+ def run_hook_for(name, scope, *args)
49
+ callbacks_for_hook(name).each do |callback|
50
+ if callback.kind_of? Symbol
51
+ scope.send(callback, *args)
52
+ else
53
+ scope.instance_exec(*args, &callback)
54
+ end
55
+ end
56
+ end
57
+
58
+ # Returns the callbacks for +name+. Handy if you want to run the callbacks yourself, say when
59
+ # they should be executed in another context.
60
+ #
61
+ # Example:
62
+ #
63
+ # def initialize
64
+ # self.class.callbacks_for_hook(:after_eight).each do |callback|
65
+ # instance_exec(self, &callback)
66
+ # end
67
+ #
68
+ # would run callbacks in the object _instance_ context, passing +self+ as block parameter.
69
+ def callbacks_for_hook(name)
70
+ send("_#{name}_callbacks")
71
+ end
72
+
73
+ private
74
+
75
+ def define_hook_writer(hook, accessor_name)
76
+ self.send(:define_method, hook.to_sym) do |&block|
77
+ if self.class.respond_to?(hook)
78
+ self.class.send(hook.to_sym, &block)
79
+ end
80
+ end
81
+
82
+ instance_eval <<-RUBY_EVAL, __FILE__, __LINE__ + 1
83
+ def #{hook}(method=nil, &block)
84
+ #{accessor_name} << (block || method)
85
+ end
86
+ RUBY_EVAL
87
+ end
88
+
89
+ def setup_hook_accessors(accessor_name)
90
+ inheritable_attr(accessor_name)
91
+ send("#{accessor_name}=", []) # initialize ivar.
92
+ end
93
+ end
94
+
95
+ # Runs the callbacks (method/block) for the specified hook +name+. Additional arguments will
96
+ # be passed to the callback.
97
+ #
98
+ # Example:
99
+ #
100
+ # cat.run_hook :after_dinner, "i want ice cream!"
101
+ #
102
+ # will invoke the callbacks like
103
+ #
104
+ # desert("i want ice cream!")
105
+ # block.call("i want ice cream!")
106
+ def run_hook(name, *args)
107
+ self.class.run_hook_for(name, self, *args)
108
+ end
109
+ end
@@ -0,0 +1,33 @@
1
+ module Hooks
2
+ module InheritableAttribute
3
+ # Creates an inheritable attribute with accessors in the singleton class. Derived classes inherit the
4
+ # attributes. This is especially helpful with arrays or hashes that are extended in the inheritance
5
+ # chain. Note that you have to initialize the inheritable attribute.
6
+ #
7
+ # Example:
8
+ #
9
+ # class Cat
10
+ # inheritable_attr :drinks
11
+ # self.drinks = ["Becks"]
12
+ #
13
+ # class Garfield < Cat
14
+ # self.drinks << "Fireman's 4"
15
+ #
16
+ # and then, later
17
+ #
18
+ # Cat.drinks #=> ["Becks"]
19
+ # Garfield.drinks #=> ["Becks", "Fireman's 4"]
20
+ def inheritable_attr(name)
21
+ instance_eval %Q{
22
+ def #{name}=(v)
23
+ @#{name} = v
24
+ end
25
+
26
+ def #{name}
27
+ return @#{name} unless superclass.respond_to?(:#{name}) and value = superclass.#{name}
28
+ @#{name} ||= value.clone # only do this once.
29
+ end
30
+ }
31
+ end
32
+ end
33
+ end