middleman-core 3.0.0.beta.1 → 3.0.0.beta.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (358) hide show
  1. data/Rakefile +2 -44
  2. data/bin/middleman +12 -8
  3. data/features/3rd_party_cli.feature +12 -2
  4. data/features/builder.feature +1 -1
  5. data/features/clean_build.feature +24 -14
  6. data/features/cli.feature +9 -30
  7. data/features/custom_layouts.feature +6 -0
  8. data/features/directory_index.feature +2 -0
  9. data/features/dynamic_pages.feature +37 -0
  10. data/features/extensionless_text_files.feature +58 -0
  11. data/features/former_padrino_helpers.feature +5 -3
  12. data/features/frontmatter_page_settings.feature +27 -0
  13. data/features/helpers_external.feature +7 -1
  14. data/features/i18n_builder.feature +121 -0
  15. data/features/i18n_preview.feature +113 -0
  16. data/features/ignore.feature +198 -0
  17. data/features/implied_extensions.feature +52 -0
  18. data/features/instance_vars.feature +0 -2
  19. data/features/partials.feature +5 -0
  20. data/features/request_params.feature +6 -0
  21. data/features/{sitemap_traversal.features → sitemap_traversal.feature} +24 -24
  22. data/features/wildcard_page_helper.feature +1 -1
  23. data/fixtures/clean-dir-app/config.rb +2 -1
  24. data/fixtures/clean-nested-app/config.rb +3 -0
  25. data/fixtures/clean-nested-app/source/about.html +1 -0
  26. data/fixtures/dynamic-pages-app/config.rb +25 -5
  27. data/fixtures/dynamic-pages-app/source/real/index.html.erb +5 -1
  28. data/{lib/middleman-core/vendor/darwin/spec/fixtures/custom 'path/.gitignore → fixtures/extensionless-text-files-app/config.rb} +0 -0
  29. data/fixtures/extensionless-text-files-app/source/CNAME +1 -0
  30. data/fixtures/extensionless-text-files-app/source/LICENSE +1 -0
  31. data/fixtures/extensionless-text-files-app/source/README +1 -0
  32. data/fixtures/extensionless-text-files-app/source/index.html +1 -0
  33. data/fixtures/external-helpers/helpers/four_helper.rb +3 -0
  34. data/fixtures/external-helpers/helpers/one_helper.rb +3 -0
  35. data/fixtures/external-helpers/helpers/three_helper.rb +3 -0
  36. data/fixtures/external-helpers/helpers/two_helper.rb +3 -0
  37. data/fixtures/external-helpers/source/automatic.html.erb +1 -0
  38. data/fixtures/frontmatter-settings-app/config.rb +4 -0
  39. data/fixtures/frontmatter-settings-app/source/alternate_layout.html.erb +5 -0
  40. data/fixtures/frontmatter-settings-app/source/ignored.html.erb +5 -0
  41. data/fixtures/frontmatter-settings-app/source/layouts/alternate.erb +3 -0
  42. data/fixtures/frontmatter-settings-app/source/no_index.html.erb +5 -0
  43. data/fixtures/i18n-alt-root-app/locales/en.yml +4 -0
  44. data/fixtures/i18n-alt-root-app/locales/es.yml +7 -0
  45. data/fixtures/i18n-alt-root-app/source/lang_data/hello.html.erb +1 -0
  46. data/fixtures/i18n-alt-root-app/source/lang_data/index.html.erb +1 -0
  47. data/fixtures/i18n-alt-root-app/source/layout.erb +1 -0
  48. data/fixtures/i18n-test-app/locales/en.yml +4 -0
  49. data/fixtures/i18n-test-app/locales/es.yml +7 -0
  50. data/fixtures/i18n-test-app/source/layout.erb +1 -0
  51. data/fixtures/i18n-test-app/source/localizable/hello.html.erb +1 -0
  52. data/fixtures/i18n-test-app/source/localizable/index.html.erb +1 -0
  53. data/fixtures/ignore-app/source/about.html.erb +1 -0
  54. data/{lib/middleman-core/vendor/darwin/spec/fixtures/folder1/file1.txt → fixtures/ignore-app/source/images/icon/messages.png} +0 -0
  55. data/{lib/middleman-core/vendor/darwin/spec/fixtures/folder1/folder2/file2.txt → fixtures/ignore-app/source/images/pic.png} +0 -0
  56. data/fixtures/ignore-app/source/images/portrait.jpg +0 -0
  57. data/fixtures/ignore-app/source/index.html.erb +0 -0
  58. data/fixtures/ignore-app/source/plain.html +1 -0
  59. data/fixtures/ignore-app/source/reports/another.html +0 -0
  60. data/fixtures/ignore-app/source/reports/index.html +0 -0
  61. data/fixtures/implied-extensions-app/config.rb +0 -0
  62. data/fixtures/implied-extensions-app/source/index.erb +1 -0
  63. data/fixtures/indexable-app/config.rb +3 -1
  64. data/fixtures/indexable-app/source/wildcard_leave_me_alone.html +1 -0
  65. data/fixtures/large-build-app/source/feed.xml.builder +4 -0
  66. data/fixtures/lorem-app/config.rb +1 -0
  67. data/fixtures/padrino-helpers-app/source/former_padrino_test.html.erb +2 -1
  68. data/fixtures/partials-app/source/shared/_footer.erb +1 -1
  69. data/fixtures/partials-app/source/shared/snippet.erb +1 -0
  70. data/fixtures/partials-app/source/using_snippet.html.erb +1 -0
  71. data/fixtures/request-app/config.rb +0 -0
  72. data/fixtures/request-app/source/index.html.erb +3 -0
  73. data/fixtures/traversal-app/source/layout.erb +2 -0
  74. data/lib/middleman-core/application.rb +558 -0
  75. data/lib/middleman-core/cli/build.rb +67 -64
  76. data/lib/middleman-core/cli/init.rb +10 -4
  77. data/lib/middleman-core/cli/server.rb +7 -1
  78. data/lib/middleman-core/cli.rb +22 -2
  79. data/lib/middleman-core/core_extensions/assets.rb +12 -3
  80. data/lib/middleman-core/core_extensions/builder.rb +0 -37
  81. data/lib/middleman-core/core_extensions/data.rb +3 -3
  82. data/lib/middleman-core/core_extensions/default_helpers.rb +17 -26
  83. data/lib/middleman-core/core_extensions/extensions.rb +13 -10
  84. data/lib/middleman-core/core_extensions/external_helpers.rb +35 -0
  85. data/lib/middleman-core/core_extensions/file_watcher.rb +9 -5
  86. data/lib/middleman-core/core_extensions/front_matter.rb +85 -15
  87. data/lib/middleman-core/core_extensions/i18n.rb +137 -0
  88. data/lib/middleman-core/core_extensions/rendering.rb +134 -21
  89. data/lib/middleman-core/core_extensions/routing.rb +42 -23
  90. data/lib/middleman-core/core_extensions/show_exceptions.rb +13 -3
  91. data/lib/middleman-core/extensions/asset_host.rb +21 -3
  92. data/lib/middleman-core/extensions/automatic_image_sizes.rb +20 -1
  93. data/lib/middleman-core/extensions/directory_indexes.rb +42 -47
  94. data/lib/middleman-core/extensions/lorem.rb +54 -6
  95. data/lib/middleman-core/extensions.rb +179 -0
  96. data/lib/middleman-core/renderers/erb.rb +28 -21
  97. data/lib/middleman-core/sitemap/extensions/ignores.rb +86 -0
  98. data/lib/middleman-core/sitemap/extensions/on_disk.rb +77 -0
  99. data/lib/middleman-core/sitemap/extensions/proxies.rb +97 -0
  100. data/lib/middleman-core/sitemap/extensions/traversal.rb +77 -0
  101. data/lib/middleman-core/sitemap/resource.rb +126 -0
  102. data/lib/middleman-core/sitemap/store.rb +148 -97
  103. data/lib/middleman-core/sitemap.rb +78 -0
  104. data/lib/middleman-core/step_definitions/builder_steps.rb +15 -1
  105. data/lib/middleman-core/step_definitions/server_steps.rb +11 -4
  106. data/lib/middleman-core/templates/default.rb +10 -0
  107. data/lib/middleman-core/templates/html5/source/404.html +32 -27
  108. data/lib/middleman-core/templates/html5/source/README.md +34 -367
  109. data/lib/middleman-core/templates/html5/source/apple-touch-icon-114x114-precomposed.png +0 -0
  110. data/lib/middleman-core/templates/html5/source/apple-touch-icon-57x57-precomposed.png +0 -0
  111. data/lib/middleman-core/templates/html5/source/apple-touch-icon-72x72-precomposed.png +0 -0
  112. data/lib/middleman-core/templates/html5/source/apple-touch-icon-precomposed.png +0 -0
  113. data/lib/middleman-core/templates/html5/source/apple-touch-icon.png +0 -0
  114. data/lib/middleman-core/templates/html5/source/crossdomain.xml +0 -0
  115. data/lib/middleman-core/templates/html5/source/css/style.css +37 -37
  116. data/lib/middleman-core/templates/html5/source/favicon.ico +0 -0
  117. data/lib/middleman-core/templates/html5/source/humans.txt +0 -0
  118. data/lib/middleman-core/templates/html5/source/img/.gitignore +0 -2
  119. data/lib/middleman-core/templates/html5/source/index.html +31 -43
  120. data/lib/middleman-core/templates/html5/source/js/libs/{jquery-1.6.2.js → jquery-1.7.1.js} +1922 -1637
  121. data/lib/middleman-core/templates/html5/source/js/libs/jquery-1.7.1.min.js +4 -0
  122. data/lib/middleman-core/templates/html5/source/js/libs/modernizr-2.5.3.min.js +4 -0
  123. data/lib/middleman-core/templates/html5/source/js/plugins.js +3 -12
  124. data/lib/middleman-core/templates/html5/source/js/script.js +0 -0
  125. data/lib/middleman-core/templates/html5/source/robots.txt +1 -2
  126. data/lib/middleman-core/templates/html5.rb +10 -5
  127. data/lib/middleman-core/templates/local.rb +8 -1
  128. data/lib/middleman-core/templates/shared/config.tt +6 -6
  129. data/lib/middleman-core/templates.rb +10 -13
  130. data/lib/middleman-core/util.rb +90 -0
  131. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/.document +0 -0
  132. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/.gitignore +0 -0
  133. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/.yardopts +0 -0
  134. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/LICENSE.txt +0 -0
  135. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/README.rdoc +0 -0
  136. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/Rakefile +0 -0
  137. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/bin/padrino +0 -0
  138. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/application/rendering.rb +0 -0
  139. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/application/routing.rb +38 -29
  140. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/application/showexceptions.rb +0 -0
  141. data/lib/middleman-core/vendor/padrino-core-0.10.6/lib/padrino-core/application.rb +269 -0
  142. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/caller.rb +0 -0
  143. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/cli/adapter.rb +0 -0
  144. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/cli/base.rb +4 -5
  145. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/cli/console.rb +0 -0
  146. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/cli/rake.rb +0 -0
  147. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/cli/rake_tasks.rb +0 -0
  148. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/command.rb +0 -0
  149. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/images/404.png +0 -0
  150. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/images/500.png +0 -0
  151. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/loader.rb +1 -0
  152. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/locale/cs.yml +0 -0
  153. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/locale/da.yml +0 -0
  154. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/locale/de.yml +0 -0
  155. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/locale/en.yml +0 -0
  156. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/locale/es.yml +0 -0
  157. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/locale/fr.yml +0 -0
  158. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/locale/hu.yml +0 -0
  159. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/locale/it.yml +1 -1
  160. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/locale/ja.yml +0 -0
  161. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/locale/lv.yml +2 -2
  162. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/locale/nl.yml +0 -0
  163. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/locale/no.yml +0 -0
  164. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/locale/pl.yml +0 -0
  165. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/locale/pt_br.yml +0 -0
  166. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/locale/ru.yml +0 -0
  167. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/locale/tr.yml +0 -0
  168. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/locale/uk.yml +0 -0
  169. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/locale/zh_cn.yml +0 -0
  170. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/locale/zh_tw.yml +0 -0
  171. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/logger.rb +192 -109
  172. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/mounter.rb +0 -0
  173. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/reloader.rb +39 -39
  174. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/router.rb +0 -0
  175. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/server.rb +2 -2
  176. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/support_lite.rb +4 -5
  177. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/tasks.rb +0 -0
  178. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core/version.rb +1 -1
  179. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/lib/padrino-core.rb +0 -15
  180. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/padrino-core.gemspec +1 -1
  181. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/test/fixtures/apps/.components +0 -0
  182. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/test/fixtures/apps/.gitignore +0 -0
  183. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/test/fixtures/apps/complex.rb +0 -0
  184. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/test/fixtures/apps/simple.rb +0 -0
  185. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/test/fixtures/dependencies/a.rb +0 -0
  186. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/test/fixtures/dependencies/b.rb +0 -0
  187. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/test/fixtures/dependencies/c.rb +0 -0
  188. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/test/fixtures/dependencies/circular/e.rb +0 -0
  189. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/test/fixtures/dependencies/circular/f.rb +0 -0
  190. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/test/fixtures/dependencies/circular/g.rb +0 -0
  191. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/test/fixtures/dependencies/d.rb +0 -0
  192. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/test/helper.rb +2 -0
  193. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/test/mini_shoulda.rb +0 -0
  194. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/test/test_application.rb +0 -0
  195. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/test/test_core.rb +0 -2
  196. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/test/test_dependencies.rb +0 -0
  197. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/test/test_filters.rb +0 -0
  198. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/test/test_locale.rb +0 -0
  199. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/test/test_logger.rb +54 -0
  200. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/test/test_mounter.rb +0 -0
  201. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/test/test_reloader_complex.rb +0 -0
  202. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/test/test_reloader_simple.rb +0 -0
  203. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/test/test_rendering.rb +0 -0
  204. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/test/test_restful_routing.rb +0 -0
  205. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/test/test_router.rb +0 -0
  206. data/lib/middleman-core/vendor/{padrino-core-0.10.5 → padrino-core-0.10.6}/test/test_routing.rb +7 -0
  207. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/.document +0 -0
  208. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/.gitignore +0 -0
  209. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/.yardopts +0 -0
  210. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/LICENSE.txt +0 -0
  211. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/README.rdoc +0 -0
  212. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/Rakefile +0 -0
  213. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/asset_tag_helpers.rb +76 -79
  214. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/form_builder/abstract_form_builder.rb +31 -0
  215. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/form_builder/standard_form_builder.rb +0 -0
  216. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/form_helpers.rb +211 -26
  217. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/format_helpers.rb +2 -2
  218. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/locale/cs.yml +0 -0
  219. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/locale/da.yml +0 -0
  220. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/locale/de.yml +0 -0
  221. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/locale/en.yml +0 -0
  222. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/locale/es.yml +0 -0
  223. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/locale/fr.yml +0 -0
  224. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/locale/hu.yml +0 -0
  225. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/locale/it.yml +0 -0
  226. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/locale/ja.yml +0 -0
  227. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/locale/lv.yml +0 -0
  228. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/locale/nl.yml +0 -0
  229. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/locale/no.yml +0 -0
  230. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/locale/pl.yml +0 -0
  231. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/locale/pt_br.yml +0 -0
  232. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/locale/ru.yml +0 -0
  233. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/locale/tr.yml +0 -0
  234. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/locale/uk.yml +0 -0
  235. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/locale/zh_cn.yml +0 -0
  236. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/locale/zh_tw.yml +0 -0
  237. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/number_helpers.rb +0 -0
  238. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/output_helpers/abstract_handler.rb +0 -0
  239. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/output_helpers/erb_handler.rb +0 -0
  240. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/output_helpers/haml_handler.rb +0 -0
  241. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/output_helpers/slim_handler.rb +0 -0
  242. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/output_helpers.rb +0 -0
  243. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/render_helpers.rb +0 -0
  244. data/lib/middleman-core/vendor/padrino-helpers-0.10.6/lib/padrino-helpers/tag_helpers.rb +260 -0
  245. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers/translation_helpers.rb +0 -0
  246. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/lib/padrino-helpers.rb +4 -3
  247. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/padrino-helpers.gemspec +0 -0
  248. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/app.rb +0 -0
  249. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/capture_concat.erb +0 -0
  250. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/capture_concat.haml +0 -0
  251. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/capture_concat.slim +0 -0
  252. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/content_for.erb +0 -0
  253. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/content_for.haml +0 -0
  254. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/content_for.slim +0 -0
  255. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/content_tag.erb +0 -0
  256. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/content_tag.haml +0 -0
  257. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/content_tag.slim +0 -0
  258. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/current_engine.erb +0 -0
  259. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/current_engine.haml +0 -0
  260. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/current_engine.slim +0 -0
  261. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/fields_for.erb +0 -0
  262. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/fields_for.haml +0 -0
  263. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/fields_for.slim +0 -0
  264. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/form_for.erb +20 -4
  265. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/form_for.haml +15 -3
  266. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/form_for.slim +15 -3
  267. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/form_tag.erb +30 -0
  268. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/form_tag.haml +25 -0
  269. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/form_tag.slim +25 -0
  270. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/link_to.erb +0 -0
  271. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/link_to.haml +0 -0
  272. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/link_to.slim +0 -0
  273. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/mail_to.erb +0 -0
  274. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/mail_to.haml +0 -0
  275. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/mail_to.slim +0 -0
  276. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/meta_tag.erb +0 -0
  277. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/meta_tag.haml +0 -0
  278. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/meta_tag.slim +0 -0
  279. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/partials/_erb.erb +0 -0
  280. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/partials/_haml.haml +0 -0
  281. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/partials/_slim.slim +0 -0
  282. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/simple_partial.erb +0 -0
  283. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/simple_partial.haml +0 -0
  284. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/markup_app/views/simple_partial.slim +0 -0
  285. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/render_app/app.rb +0 -0
  286. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/render_app/views/current_engine.haml +0 -0
  287. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/render_app/views/current_engines/_erb.erb +0 -0
  288. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/render_app/views/current_engines/_haml.haml +0 -0
  289. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/render_app/views/current_engines/_slim.slim +0 -0
  290. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/render_app/views/erb/test.erb +0 -0
  291. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/render_app/views/explicit_engine.haml +0 -0
  292. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/render_app/views/haml/test.haml +0 -0
  293. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/render_app/views/template/_user.haml +0 -0
  294. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/render_app/views/template/haml_template.haml +0 -0
  295. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/fixtures/render_app/views/template/some_template.haml +0 -0
  296. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/helper.rb +0 -0
  297. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/test_asset_tag_helpers.rb +14 -6
  298. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/test_form_builder.rb +116 -6
  299. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/test_form_helpers.rb +134 -9
  300. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/test_format_helpers.rb +0 -0
  301. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/test_locale.rb +0 -0
  302. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/test_number_helpers.rb +3 -0
  303. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/test_output_helpers.rb +0 -0
  304. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/test_render_helpers.rb +0 -0
  305. data/lib/middleman-core/vendor/{padrino-helpers-0.10.5 → padrino-helpers-0.10.6}/test/test_tag_helpers.rb +7 -6
  306. data/lib/middleman-core/version.rb +2 -2
  307. data/lib/middleman-core/watcher.rb +75 -36
  308. data/lib/middleman-core.rb +7 -252
  309. data/middleman-core.gemspec +14 -11
  310. metadata +396 -348
  311. data/bin/fsevent_watch_guard +0 -0
  312. data/ext/extconf.rb +0 -61
  313. data/ext/fsevent/fsevent_watch.c +0 -226
  314. data/fixtures/3rd-party-command/config.rb +0 -10
  315. data/fixtures/ignore-app/config.rb +0 -2
  316. data/fixtures/ignore-app/source/articles/template.html.erb +0 -1
  317. data/fixtures/ignore-app/source/template.html.erb +0 -1
  318. data/lib/middleman-core/base.rb +0 -494
  319. data/lib/middleman-core/cache.rb +0 -57
  320. data/lib/middleman-core/core_extensions/sitemap.rb +0 -72
  321. data/lib/middleman-core/sitemap/page.rb +0 -186
  322. data/lib/middleman-core/sitemap/template.rb +0 -82
  323. data/lib/middleman-core/templates/html5/source/js/libs/jquery-1.6.2.min.js +0 -18
  324. data/lib/middleman-core/templates/html5/source/js/libs/modernizr-2.0.6.min.js +0 -4
  325. data/lib/middleman-core/templates/html5/source/js/mylibs/.gitignore +0 -2
  326. data/lib/middleman-core/templates/html5/source/test/index.html +0 -31
  327. data/lib/middleman-core/templates/html5/source/test/qunit/qunit.css +0 -148
  328. data/lib/middleman-core/templates/html5/source/test/qunit/qunit.js +0 -1265
  329. data/lib/middleman-core/templates/html5/source/test/tests.js +0 -24
  330. data/lib/middleman-core/vendor/darwin/.gitignore +0 -18
  331. data/lib/middleman-core/vendor/darwin/Gemfile +0 -6
  332. data/lib/middleman-core/vendor/darwin/Guardfile +0 -8
  333. data/lib/middleman-core/vendor/darwin/LICENSE +0 -20
  334. data/lib/middleman-core/vendor/darwin/README.rdoc +0 -254
  335. data/lib/middleman-core/vendor/darwin/Rakefile +0 -21
  336. data/lib/middleman-core/vendor/darwin/ext/extconf.rb +0 -61
  337. data/lib/middleman-core/vendor/darwin/ext/fsevent/fsevent_watch.c +0 -226
  338. data/lib/middleman-core/vendor/darwin/lib/rb-fsevent/fsevent.rb +0 -105
  339. data/lib/middleman-core/vendor/darwin/lib/rb-fsevent/version.rb +0 -3
  340. data/lib/middleman-core/vendor/darwin/lib/rb-fsevent.rb +0 -2
  341. data/lib/middleman-core/vendor/darwin/rb-fsevent.gemspec +0 -24
  342. data/lib/middleman-core/vendor/darwin/spec/rb-fsevent/fsevent_spec.rb +0 -75
  343. data/lib/middleman-core/vendor/darwin/spec/spec_helper.rb +0 -24
  344. data/lib/middleman-core/vendor/linux/.gitignore +0 -3
  345. data/lib/middleman-core/vendor/linux/.yardopts +0 -4
  346. data/lib/middleman-core/vendor/linux/MIT-LICENSE +0 -20
  347. data/lib/middleman-core/vendor/linux/README.md +0 -66
  348. data/lib/middleman-core/vendor/linux/Rakefile +0 -54
  349. data/lib/middleman-core/vendor/linux/VERSION +0 -1
  350. data/lib/middleman-core/vendor/linux/lib/rb-inotify/event.rb +0 -139
  351. data/lib/middleman-core/vendor/linux/lib/rb-inotify/native/flags.rb +0 -89
  352. data/lib/middleman-core/vendor/linux/lib/rb-inotify/native.rb +0 -31
  353. data/lib/middleman-core/vendor/linux/lib/rb-inotify/notifier.rb +0 -308
  354. data/lib/middleman-core/vendor/linux/lib/rb-inotify/watcher.rb +0 -83
  355. data/lib/middleman-core/vendor/linux/lib/rb-inotify.rb +0 -17
  356. data/lib/middleman-core/vendor/linux/rb-inotify.gemspec +0 -53
  357. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/application.rb +0 -270
  358. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/tag_helpers.rb +0 -103
@@ -1,17 +1,30 @@
1
+ # Routing extension
1
2
  module Middleman::CoreExtensions::Routing
3
+
4
+ # Setup extension
2
5
  class << self
6
+
7
+ # Once registered
3
8
  def registered(app)
9
+ # Include methods
4
10
  app.send :include, InstanceMethods
5
11
  end
12
+
6
13
  alias :included :registered
7
14
  end
8
15
 
16
+ # Routing instance methods
9
17
  module InstanceMethods
18
+
10
19
  # Takes a block which allows many pages to have the same layout
11
- # with_layout :admin do
12
- # page "/admin/"
13
- # page "/admin/login.html"
14
- # end
20
+ #
21
+ # with_layout :admin do
22
+ # page "/admin/"
23
+ # page "/admin/login.html"
24
+ # end
25
+ #
26
+ # @param [String, Symbol] layout_name
27
+ # @return [void]
15
28
  def with_layout(layout_name, &block)
16
29
  old_layout = layout
17
30
 
@@ -22,27 +35,36 @@ module Middleman::CoreExtensions::Routing
22
35
  end
23
36
 
24
37
  # The page method allows the layout to be set on a specific path
25
- # page "/about.html", :layout => false
26
- # page "/", :layout => :homepage_layout
38
+ #
39
+ # page "/about.html", :layout => false
40
+ # page "/", :layout => :homepage_layout
41
+ #
42
+ # @param [String] url
43
+ # @param [Hash] opts
44
+ # @return [void]
27
45
  def page(url, opts={}, &block)
28
- if url.include?("*")
29
- url = Regexp.new(url.gsub("*", "(.*)").gsub(/^\//, "^"))
30
- end
46
+ a_block = block_given? ? block : nil
31
47
 
32
- if url.is_a?(Regexp) && !opts.empty?
33
- provides_metadata_for_path url do |url|
34
- { :options => opts }
48
+ # Default layout
49
+ opts[:layout] = layout if opts[:layout].nil?
50
+
51
+ # If the url is a regexp
52
+ if url.is_a?(Regexp) || url.include?("*")
53
+
54
+ # Use the metadata loop for matching against paths at runtime
55
+ sitemap.provides_metadata_for_path url do |url|
56
+ { :options => opts, :blocks => [a_block] }
35
57
  end
36
58
 
37
59
  return
38
60
  end
39
61
 
40
- opts[:layout] = layout if opts[:layout].nil?
41
-
62
+ # Normalized path
42
63
  url = full_path(url)
43
64
 
65
+ # Setup proxy
44
66
  if opts.has_key?(:proxy)
45
- reroute(url, opts[:proxy])
67
+ proxy(url, opts[:proxy])
46
68
 
47
69
  if opts.has_key?(:ignore) && opts[:ignore]
48
70
  ignore(opts[:proxy])
@@ -56,14 +78,11 @@ module Middleman::CoreExtensions::Routing
56
78
  opts.delete(:ignore)
57
79
  end
58
80
  end
59
-
60
- a_block = block_given? ? block : nil
61
- if a_block || !opts.empty?
62
- sitemap.page(url) do
63
- template.options = opts
64
- template.blocks = [a_block]
65
- end
81
+
82
+ # Setup a metadata matcher for rendering those options
83
+ sitemap.provides_metadata_for_path url do |url|
84
+ { :options => opts, :blocks => [a_block] }
66
85
  end
67
86
  end
68
87
  end
69
- end
88
+ end
@@ -1,9 +1,17 @@
1
- require 'rack/showexceptions'
2
-
1
+ # Support rack/showexceptions during development
3
2
  module Middleman::CoreExtensions::ShowExceptions
3
+
4
+ # Setup extension
4
5
  class << self
6
+
7
+ # Once registered
5
8
  def registered(app)
9
+ # Require lib
10
+ require 'rack/showexceptions'
11
+
12
+ # When in dev
6
13
  app.configure :development do
14
+ # Include middlemare
7
15
  if show_exceptions
8
16
  use ::Middleman::CoreExtensions::ShowExceptions::Middleware
9
17
  end
@@ -11,6 +19,8 @@ module Middleman::CoreExtensions::ShowExceptions
11
19
  end
12
20
  end
13
21
 
22
+ # Custom exception class
23
+ # TODO: Style this ourselves
14
24
  class Middleware < ::Rack::ShowExceptions
15
25
  end
16
- end
26
+ end
@@ -1,21 +1,36 @@
1
+ # Extensions namespace
1
2
  module Middleman::Extensions
3
+
4
+ # Asset Host module
2
5
  module AssetHost
6
+
7
+ # Setup extension
3
8
  class << self
9
+
10
+ # Once registered
4
11
  def registered(app)
12
+ # Default to no host
5
13
  app.set :asset_host, false
6
14
 
15
+ # Include methods
7
16
  app.send :include, InstanceMethods
8
17
  end
18
+
9
19
  alias :included :registered
10
20
  end
11
21
 
22
+ # Asset Host Instance Methods
12
23
  module InstanceMethods
24
+
25
+ # Override default asset url helper to include asset hosts
26
+ #
27
+ # @param [String] path
28
+ # @param [String] prefix
29
+ # @return [String]
13
30
  def asset_url(path, prefix="")
14
31
  original_output = super
15
32
  return original_output unless asset_host
16
33
 
17
- # valid_extensions = %w(.png .gif .jpg .jpeg .svg .svgz .js .css)
18
-
19
34
  asset_prefix = if asset_host.is_a?(Proc)
20
35
  asset_host.call(original_output)
21
36
  elsif asset_host.is_a?(String)
@@ -26,4 +41,7 @@ module Middleman::Extensions
26
41
  end
27
42
  end
28
43
  end
29
- end
44
+
45
+ # Register the extension
46
+ register :asset_host, AssetHost
47
+ end
@@ -1,15 +1,33 @@
1
+ # Extensions namespace
1
2
  module Middleman::Extensions
3
+
4
+ # Automatic Image Sizes extension
2
5
  module AutomaticImageSizes
6
+
7
+ # Setup extension
3
8
  class << self
9
+
10
+ # Once registered
4
11
  def registered(app)
12
+ # Include 3rd-party fastimage library
5
13
  require "middleman-core/extensions/automatic_image_sizes/fastimage"
6
14
 
15
+ # Include methods
7
16
  app.send :include, InstanceMethods
8
17
  end
18
+
9
19
  alias :included :registered
10
20
  end
11
21
 
22
+ # Automatic Image Sizes Instance Methods
12
23
  module InstanceMethods
24
+
25
+ # Override default image_tag helper to automatically calculate and include
26
+ # image dimensions.
27
+ #
28
+ # @param [String] path
29
+ # @param [Hash] params
30
+ # @return [String]
13
31
  def image_tag(path, params={})
14
32
  if !params.has_key?(:width) && !params.has_key?(:height) && !path.include?("://")
15
33
  params[:alt] ||= ""
@@ -34,5 +52,6 @@ module Middleman::Extensions
34
52
  end
35
53
  end
36
54
 
55
+ # Register the extension
37
56
  register :automatic_image_sizes, AutomaticImageSizes
38
- end
57
+ end
@@ -1,62 +1,57 @@
1
+ # Extensions namespace
1
2
  module Middleman::Extensions
3
+
4
+ # Directory Indexes extension
2
5
  module DirectoryIndexes
6
+
7
+ # Setup extension
3
8
  class << self
4
- def registered(app)
5
- app.send :include, InstanceMethods
6
- app.before do
7
- next if sitemap.exists?(@original_path)
8
-
9
- prefix = @original_path.sub(/\/$/, "")
10
- indexed_path = prefix + "/" + index_file
11
-
12
- extensioned_path = prefix + File.extname(index_file)
13
- is_ignored = ignored_directory_indexes.include?(extensioned_path)
14
-
15
- if !sitemap.exists?(indexed_path) && !is_ignored
16
- parts = @original_path.split("/")
17
- last_part = parts.last
18
- last_part_ext = File.extname(last_part)
19
-
20
- if last_part_ext.blank?
21
- # This is a folder, redirect to index
22
- @request_path = extensioned_path
23
- end
24
- end
25
- end
26
9
 
27
- app.build_reroute do |destination, request_path|
28
- index_ext = File.extname(index_file)
29
- new_index_path = "/#{index_file}"
30
-
31
- if ignored_directory_indexes.include?(request_path)
32
- false
33
- elsif request_path =~ /#{new_index_path}$/
34
- false
35
- else
36
- [
37
- destination.sub(/#{index_ext.gsub(".", "\\.")}$/, new_index_path),
38
- request_path
39
- ]
40
- end
10
+ # Once registered
11
+ def registered(app)
12
+ app.ready do
13
+ sitemap.register_resource_list_manipulator(
14
+ :directory_indexes,
15
+ DirectoryIndexManager.new(self)
16
+ )
41
17
  end
42
18
  end
19
+
43
20
  alias :included :registered
44
21
  end
45
-
46
- module InstanceMethods
47
- def ignored_directory_indexes
48
- @_ignored_directory_indexes ||= []
49
- end
50
22
 
51
- def page(url, options={}, &block)
52
- if options.has_key?(:directory_index) && !options["directory_index"]
53
- ignored_directory_indexes << url
54
- else
55
- super
23
+ class DirectoryIndexManager
24
+ def initialize(app)
25
+ @app = app
26
+ end
27
+
28
+ # Update the main sitemap resource list
29
+ # @return [void]
30
+ def manipulate_resource_list(resources)
31
+ index_file = @app.index_file
32
+ new_index_path = "/#{index_file}"
33
+
34
+ resources.each do |resource|
35
+ # Check if it would be pointless to reroute
36
+ next if resource.path == index_file ||
37
+ resource.path.end_with?(new_index_path) ||
38
+ File.extname(index_file) != resource.ext
39
+
40
+ # Check if frontmatter turns directory_index off
41
+ d = resource.data
42
+ next if d && d["directory_index"] == false
43
+
44
+ # Check if file metadata (options set by "page" in config.rb) turns directory_index off
45
+ if resource.metadata[:options] && resource.metadata[:options][:directory_index] == false
46
+ next
47
+ end
48
+
49
+ resource.destination_path = resource.path.chomp(File.extname(index_file)) + new_index_path
56
50
  end
57
51
  end
58
52
  end
59
53
  end
60
54
 
55
+ # Register the extension
61
56
  register :directory_indexes, DirectoryIndexes
62
- end
57
+ end
@@ -1,17 +1,34 @@
1
+ # Extension namespace
1
2
  module Middleman::Extensions
3
+
4
+ # Lorem helper
2
5
  module Lorem
6
+
7
+ # Setup extension
3
8
  class << self
9
+
10
+ # Once registered
4
11
  def registered(app)
12
+ # Include methods
5
13
  app.send :include, InstanceMethods
6
14
  end
15
+
7
16
  alias :included :registered
8
17
  end
9
18
 
19
+ # Lorem extension instance methods
10
20
  module InstanceMethods
21
+ # Access to the Lorem object
22
+ # @return [Middleman::Extensions::Lorem::LoremObject]
11
23
  def lorem
12
- @_lorem ||= LoremObject.new(self)
24
+ @_lorem ||= LoremObject.new
13
25
  end
14
26
 
27
+ # Return a placeholder image using placekitten.com
28
+ #
29
+ # @param [String] size
30
+ # @param [Hash] options
31
+ # @return [String]
15
32
  def placekitten(size, options={})
16
33
  options[:domain] = "http://placekitten.com"
17
34
  lorem.image(size, options)
@@ -43,42 +60,57 @@ module Middleman::Extensions
43
60
  # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
44
61
  # OTHER DEALINGS IN THE SOFTWARE.
45
62
  class LoremObject
63
+ # Words for use in lorem text
46
64
  WORDS = %w(alias consequatur aut perferendis sit voluptatem accusantium doloremque aperiam eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo aspernatur aut odit aut fugit sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt neque dolorem ipsum quia dolor sit amet consectetur adipisci velit sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem ut enim ad minima veniam quis nostrum exercitationem ullam corporis nemo enim ipsam voluptatem quia voluptas sit suscipit laboriosam nisi ut aliquid ex ea commodi consequatur quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae et iusto odio dignissimos ducimus qui blanditiis praesentium laudantium totam rem voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident sed ut perspiciatis unde omnis iste natus error similique sunt in culpa qui officia deserunt mollitia animi id est laborum et dolorum fuga et harum quidem rerum facilis est et expedita distinctio nam libero tempore cum soluta nobis est eligendi optio cumque nihil impedit quo porro quisquam est qui minus id quod maxime placeat facere possimus omnis voluptas assumenda est omnis dolor repellendus temporibus autem quibusdam et aut consequatur vel illum qui dolorem eum fugiat quo voluptas nulla pariatur at vero eos et accusamus officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae itaque earum rerum hic tenetur a sapiente delectus ut aut reiciendis voluptatibus maiores doloribus asperiores repellat)
47
65
 
48
- def initialize(app)
49
- @app = app
50
- end
51
-
66
+ # Get one placeholder word
67
+ # @return [String]
52
68
  def word
53
69
  words(1)
54
70
  end
55
71
 
72
+ # Get some number of placeholder words
73
+ # @param [Fixnum] total
74
+ # @return [String]
56
75
  def words(total)
57
76
  (1..total).map do
58
77
  randm(WORDS)
59
78
  end.join(' ')
60
79
  end
61
80
 
81
+ # Get one placeholder sentence
82
+ # @return [String]
62
83
  def sentence
63
84
  sentences(1)
64
85
  end
65
86
 
87
+ # Get some number of placeholder sentences
88
+ # @param [Fixnum] total
89
+ # @return [String]
66
90
  def sentences(total)
67
91
  (1..total).map do
68
92
  words(randm(4..15)).capitalize
69
93
  end.join('. ')
70
94
  end
71
95
 
96
+ # Get one placeholder paragraph
97
+ # @return [String]
72
98
  def paragraph
73
99
  paragraphs(1)
74
100
  end
75
101
 
102
+ # Get some number of placeholder paragraphs
103
+ # @param [Fixnum] total
104
+ # @return [String]
76
105
  def paragraphs(total)
77
106
  (1..total).map do
78
107
  sentences(randm(3..7)).capitalize
79
108
  end.join("\n\n")
80
109
  end
81
110
 
111
+ # Get a placeholder date
112
+ # @param [String] fmt
113
+ # @return [String]
82
114
  def date(fmt = '%a %b %d, %Y')
83
115
  y = rand(20) + 1990
84
116
  m = rand(12) + 1
@@ -86,20 +118,28 @@ module Middleman::Extensions
86
118
  Time.local(y,m,d).strftime(fmt)
87
119
  end
88
120
 
121
+ # Get a placeholder name
122
+ # @return [String]
89
123
  def name
90
124
  "#{first_name} #{last_name}"
91
125
  end
92
126
 
127
+ # Get a placeholder first name
128
+ # @return [String]
93
129
  def first_name
94
130
  names = "Judith Angelo Margarita Kerry Elaine Lorenzo Justice Doris Raul Liliana Kerry Elise Ciaran Johnny Moses Davion Penny Mohammed Harvey Sheryl Hudson Brendan Brooklynn Denis Sadie Trisha Jacquelyn Virgil Cindy Alexa Marianne Giselle Casey Alondra Angela Katherine Skyler Kyleigh Carly Abel Adrianna Luis Dominick Eoin Noel Ciara Roberto Skylar Brock Earl Dwayne Jackie Hamish Sienna Nolan Daren Jean Shirley Connor Geraldine Niall Kristi Monty Yvonne Tammie Zachariah Fatima Ruby Nadia Anahi Calum Peggy Alfredo Marybeth Bonnie Gordon Cara John Staci Samuel Carmen Rylee Yehudi Colm Beth Dulce Darius inley Javon Jason Perla Wayne Laila Kaleigh Maggie Don Quinn Collin Aniya Zoe Isabel Clint Leland Esmeralda Emma Madeline Byron Courtney Vanessa Terry Antoinette George Constance Preston Rolando Caleb Kenneth Lynette Carley Francesca Johnnie Jordyn Arturo Camila Skye Guy Ana Kaylin Nia Colton Bart Brendon Alvin Daryl Dirk Mya Pete Joann Uriel Alonzo Agnes Chris Alyson Paola Dora Elias Allen Jackie Eric Bonita Kelvin Emiliano Ashton Kyra Kailey Sonja Alberto Ty Summer Brayden Lori Kelly Tomas Joey Billie Katie Stephanie Danielle Alexis Jamal Kieran Lucinda Eliza Allyson Melinda Alma Piper Deana Harriet Bryce Eli Jadyn Rogelio Orlaith Janet Randal Toby Carla Lorie Caitlyn Annika Isabelle inn Ewan Maisie Michelle Grady Ida Reid Emely Tricia Beau Reese Vance Dalton Lexi Rafael Makenzie Mitzi Clinton Xena Angelina Kendrick Leslie Teddy Jerald Noelle Neil Marsha Gayle Omar Abigail Alexandra Phil Andre Billy Brenden Bianca Jared Gretchen Patrick Antonio Josephine Kyla Manuel Freya Kellie Tonia Jamie Sydney Andres Ruben Harrison Hector Clyde Wendell Kaden Ian Tracy Cathleen Shawn".split(" ")
95
131
  names[rand(names.size)]
96
132
  end
97
133
 
134
+ # Get a placeholder last name
135
+ # @return [String]
98
136
  def last_name
99
137
  names = "Chung Chen Melton Hill Puckett Song Hamilton Bender Wagner McLaughlin McNamara Raynor Moon Woodard Desai Wallace Lawrence Griffin Dougherty Powers May Steele Teague Vick Gallagher Solomon Walsh Monroe Connolly Hawkins Middleton Goldstein Watts Johnston Weeks Wilkerson Barton Walton Hall Ross Chung Bender Woods Mangum Joseph Rosenthal Bowden Barton Underwood Jones Baker Merritt Cross Cooper Holmes Sharpe Morgan Hoyle Allen Rich Rich Grant Proctor Diaz Graham Watkins Hinton Marsh Hewitt Branch Walton O'Brien Case Watts Christensen Parks Hardin Lucas Eason Davidson Whitehead Rose Sparks Moore Pearson Rodgers Graves Scarborough Sutton Sinclair Bowman Olsen Love McLean Christian Lamb James Chandler Stout Cowan Golden Bowling Beasley Clapp Abrams Tilley Morse Boykin Sumner Cassidy Davidson Heath Blanchard McAllister McKenzie Byrne Schroeder Griffin Gross Perkins Robertson Palmer Brady Rowe Zhang Hodge Li Bowling Justice Glass Willis Hester Floyd Graves Fischer Norman Chan Hunt Byrd Lane Kaplan Heller May Jennings Hanna Locklear Holloway Jones Glover Vick O'Donnell Goldman McKenna Starr Stone McClure Watson Monroe Abbott Singer Hall Farrell Lucas Norman Atkins Monroe Robertson Sykes Reid Chandler Finch Hobbs Adkins Kinney Whitaker Alexander Conner Waters Becker Rollins Love Adkins Black Fox Hatcher Wu Lloyd Joyce Welch Matthews Chappell MacDonald Kane Butler Pickett Bowman Barton Kennedy Branch Thornton McNeill Weinstein Middleton Moss Lucas Rich Carlton Brady Schultz Nichols Harvey Stevenson Houston Dunn West O'Brien Barr Snyder Cain Heath Boswell Olsen Pittman Weiner Petersen Davis Coleman Terrell Norman Burch Weiner Parrott Henry Gray Chang McLean Eason Weeks Siegel Puckett Heath Hoyle Garrett Neal Baker Goldman Shaffer Choi Carver".split(" ")
100
138
  names[rand(names.size)]
101
139
  end
102
140
 
141
+ # Get a placeholder email address
142
+ # @return [String]
103
143
  def email
104
144
  delimiters = [ '_', '-', '' ]
105
145
  domains = %w(gmail.com yahoo.com hotmail.com email.com live.com me.com mac.com aol.com fastmail.com mail.com)
@@ -107,6 +147,10 @@ module Middleman::Extensions
107
147
  "#{username}@#{domains[rand(domains.size)]}".downcase
108
148
  end
109
149
 
150
+ # Get a placeholder image, using placehold.it by default
151
+ # @param [String] size
152
+ # @param [Hash] options
153
+ # @return [String]
110
154
  def image(size, options={})
111
155
  domain = options[:domain] || "http://placehold.it"
112
156
  src = "#{domain}/#{size}"
@@ -129,12 +173,16 @@ module Middleman::Extensions
129
173
 
130
174
  private
131
175
 
176
+ # Pick a random item from a given range
177
+ # @param [Range] range
178
+ # @return [Object]
132
179
  def randm(range)
133
180
  a = range.to_a
134
181
  a[rand(a.length)]
135
182
  end
136
183
  end
137
184
  end
138
-
185
+
186
+ # Register the extension
139
187
  register :lorem, Lorem
140
188
  end
@@ -0,0 +1,179 @@
1
+ module Middleman
2
+
3
+ # Backwards compatibility namespace
4
+ module Features
5
+ end
6
+
7
+ module CoreExtensions
8
+ # File Change Notifier
9
+ autoload :FileWatcher, "middleman-core/core_extensions/file_watcher"
10
+
11
+ # In-memory Sitemap
12
+ autoload :Sitemap, "middleman-core/core_extensions/sitemap"
13
+
14
+ # Add Builder callbacks
15
+ autoload :Builder, "middleman-core/core_extensions/builder"
16
+
17
+ # Custom Feature API
18
+ autoload :Extensions, "middleman-core/core_extensions/extensions"
19
+
20
+ # Asset Path Pipeline
21
+ autoload :Assets, "middleman-core/core_extensions/assets"
22
+
23
+ # Data looks at the data/ folder for YAML files and makes them available
24
+ # to dynamic requests.
25
+ autoload :Data, "middleman-core/core_extensions/data"
26
+
27
+ # Parse YAML from templates
28
+ autoload :FrontMatter, "middleman-core/core_extensions/front_matter"
29
+
30
+ # External helpers looks in the helpers/ folder for helper modules
31
+ autoload :ExternalHelpers, "middleman-core/core_extensions/external_helpers"
32
+
33
+ # DefaultHelpers are the built-in dynamic template helpers.
34
+ autoload :DefaultHelpers, "middleman-core/core_extensions/default_helpers"
35
+
36
+ # Extended version of Padrino's rendering
37
+ autoload :Rendering, "middleman-core/core_extensions/rendering"
38
+
39
+ # Pass custom options to views
40
+ autoload :Routing, "middleman-core/core_extensions/routing"
41
+
42
+ # Catch and show exceptions at the Rack level
43
+ autoload :ShowExceptions, "middleman-core/core_extensions/show_exceptions"
44
+
45
+ # i18n
46
+ autoload :I18n, "middleman-core/core_extensions/i18n"
47
+ end
48
+
49
+ module Extensions
50
+ # Provide Apache-style index.html files for directories
51
+ autoload :DirectoryIndexes, "middleman-core/extensions/directory_indexes"
52
+
53
+ # Lorem provides a handful of helpful prototyping methods to generate
54
+ # words, paragraphs, fake images, names and email addresses.
55
+ autoload :Lorem, "middleman-core/extensions/lorem"
56
+
57
+ # AutomaticImageSizes inspects the images used in your dynamic templates
58
+ # and automatically adds width and height attributes to their HTML
59
+ # elements.
60
+ autoload :AutomaticImageSizes, "middleman-core/extensions/automatic_image_sizes"
61
+
62
+ # AssetHost allows you to setup multiple domains to host your static
63
+ # assets. Calls to asset paths in dynamic templates will then rotate
64
+ # through each of the asset servers to better spread the load.
65
+ autoload :AssetHost, "middleman-core/extensions/asset_host"
66
+
67
+ class << self
68
+ def registered
69
+ @_registered ||= {}
70
+ end
71
+
72
+ # Register a new extension. Choose a name which will be
73
+ # used to activate the extension in config.rb, like this:
74
+ #
75
+ # activate :my_extension
76
+ #
77
+ # Provide your extension module either as the namespace
78
+ # parameter, or return it from the block:
79
+ #
80
+ # @param [Symbol] name The name of the extension
81
+ # @param [Module] namespace The extension module
82
+ # @param [String] version A RubyGems-style version string stating
83
+ # the versions of middleman this extension
84
+ # is compatible with.
85
+ # @yield Instead of passing a module in namespace, you can provide
86
+ # a block which returns your extension module. This gives
87
+ # you the ability to require other files only when the
88
+ # extension is activated.
89
+ def register(name, namespace=nil, version=nil, &block)
90
+ # If we've already got a matching extension that passed the
91
+ # version check, bail out.
92
+ return if registered.has_key?(name.to_sym) &&
93
+ !registered[name.to_sym].is_a?(String)
94
+
95
+ if block_given?
96
+ version = namespace
97
+ end
98
+
99
+ passed_version_check = true
100
+ if !version.nil?
101
+ requirement = ::Gem::Requirement.create(version)
102
+ if !requirement.satisfied_by?(Middleman::GEM_VERSION)
103
+ passed_version_check = false
104
+ end
105
+ end
106
+
107
+ registered[name.to_sym] = if !passed_version_check
108
+ "== #{name} failed version check. Requested #{version}, got #{Middleman::VERSION}"
109
+ elsif block_given?
110
+ block
111
+ elsif namespace
112
+ namespace
113
+ end
114
+ end
115
+
116
+ def load(name)
117
+ name = name.to_sym
118
+ return nil unless registered.has_key?(name)
119
+
120
+ extension = registered[name]
121
+ if extension.is_a?(Proc)
122
+ extension = extension.call() || nil
123
+ registered[name] = extension
124
+ end
125
+
126
+ extension
127
+ end
128
+ end
129
+ end
130
+
131
+ # Where to look in gems for extensions to auto-register
132
+ EXTENSION_FILE = File.join("lib", "middleman_extension.rb") unless const_defined?(:EXTENSION_FILE)
133
+
134
+ class << self
135
+ # Automatically load extensions from available RubyGems
136
+ # which contain the EXTENSION_FILE
137
+ #
138
+ # @private
139
+ def load_extensions_in_path
140
+ if defined?(Bundler)
141
+ Bundler.require
142
+ else
143
+ extensions = rubygems_latest_specs.select do |spec|
144
+ spec_has_file?(spec, EXTENSION_FILE)
145
+ end
146
+
147
+ extensions.each do |spec|
148
+ require spec.name
149
+ end
150
+ end
151
+ end
152
+
153
+ # Backwards compatible means of finding all the latest gemspecs
154
+ # available on the system
155
+ #
156
+ # @private
157
+ # @return [Array] Array of latest Gem::Specification
158
+ def rubygems_latest_specs
159
+ # If newer Rubygems
160
+ if ::Gem::Specification.respond_to? :latest_specs
161
+ ::Gem::Specification.latest_specs
162
+ else
163
+ ::Gem.source_index.latest_specs
164
+ end
165
+ end
166
+
167
+ # Where a given Gem::Specification has a specific file. Used
168
+ # to discover extensions and Sprockets-supporting gems.
169
+ #
170
+ # @private
171
+ # @param [Gem::Specification]
172
+ # @param [String] Path to look for
173
+ # @return [Boolean] Whether the file exists
174
+ def spec_has_file?(spec, path)
175
+ full_path = File.join(spec.full_gem_path, path)
176
+ File.exists?(full_path)
177
+ end
178
+ end
179
+ end