middleman 2.0.16.1 → 3.0.0.alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. data/.gitignore +2 -1
  2. data/CHANGELOG +16 -8
  3. data/features/builder.feature +2 -5
  4. data/features/cache_buster.feature +1 -1
  5. data/features/clean_build.feature +0 -1
  6. data/features/coffee-script.feature +3 -3
  7. data/features/custom_layout_engines.feature +10 -0
  8. data/features/directory_index.feature +0 -1
  9. data/features/dynamic_pages.feature +0 -1
  10. data/features/fonts.feature +0 -1
  11. data/features/{padrino_helpers.feature → former_padrino_helpers.feature} +1 -1
  12. data/features/sprockets.feature +34 -5
  13. data/features/sprockets_gems.feature +7 -4
  14. data/features/step_definitions/asset_host_steps.rb +7 -6
  15. data/features/step_definitions/builder_steps.rb +4 -0
  16. data/features/step_definitions/middleman_steps.rb +22 -16
  17. data/features/step_definitions/page_layout_steps.rb +10 -8
  18. data/fixtures/custom-layout-app/config.rb +1 -0
  19. data/fixtures/custom-layout-app/source/index.html.erb +1 -0
  20. data/fixtures/custom-layout-app/source/layout.haml +6 -0
  21. data/fixtures/sprockets-app/config.rb +2 -1
  22. data/fixtures/sprockets-app/source/library/css/bootstrap_include.css.scss +1 -0
  23. data/fixtures/sprockets-app/source/library/css/plain.css +3 -0
  24. data/fixtures/sprockets-app/source/library/css/sprockets_base1.css.scss +1 -0
  25. data/fixtures/sprockets-app/source/library/css/sprockets_base2.css.scss +1 -0
  26. data/fixtures/sprockets-app/source/library/css/sprockets_sub.css.scss +1 -0
  27. data/fixtures/sprockets-app/source/{jquery_include.js → library/js/jquery_include.js} +0 -0
  28. data/fixtures/sprockets-app/source/library/js/plain.js +3 -0
  29. data/fixtures/sprockets-app/source/library/{javascripts → js}/sprockets_base.js +0 -0
  30. data/fixtures/sprockets-app/source/library/{javascripts → js}/sprockets_sub.js +0 -0
  31. data/fixtures/test-app/config.rb +5 -4
  32. data/fixtures/test-app/source/{padrino_test.html.haml → former_padrino_test.html.haml} +0 -0
  33. data/fixtures/test-app/source/stylesheets/sprockets_base1.css.scss +1 -0
  34. data/fixtures/test-app/source/stylesheets/sprockets_base2.css.scss +1 -0
  35. data/fixtures/test-app/source/stylesheets/sprockets_sub.css.scss +1 -0
  36. data/lib/middleman.rb +27 -25
  37. data/lib/middleman/base.rb +408 -166
  38. data/lib/middleman/builder.rb +78 -162
  39. data/lib/middleman/cli.rb +61 -32
  40. data/lib/middleman/core_extensions/assets.rb +4 -44
  41. data/lib/middleman/core_extensions/builder.rb +12 -16
  42. data/lib/middleman/core_extensions/compass.rb +28 -57
  43. data/lib/middleman/core_extensions/data.rb +65 -49
  44. data/lib/middleman/core_extensions/default_helpers.rb +33 -18
  45. data/lib/middleman/core_extensions/features.rb +48 -26
  46. data/lib/middleman/core_extensions/file_watcher.rb +66 -0
  47. data/lib/middleman/core_extensions/front_matter.rb +91 -86
  48. data/lib/middleman/core_extensions/rendering.rb +9 -8
  49. data/lib/middleman/core_extensions/routing.rb +19 -53
  50. data/lib/middleman/core_extensions/sitemap.rb +229 -0
  51. data/lib/middleman/core_extensions/sprockets.rb +53 -37
  52. data/lib/middleman/features/asset_host.rb +20 -10
  53. data/lib/middleman/features/automatic_image_sizes.rb +12 -9
  54. data/lib/middleman/features/cache_buster.rb +38 -25
  55. data/lib/middleman/features/directory_indexes.rb +31 -28
  56. data/lib/middleman/features/minify_css.rb +3 -2
  57. data/lib/middleman/features/minify_css/cssmin.rb +55 -0
  58. data/lib/middleman/features/minify_javascript.rb +12 -5
  59. data/lib/middleman/features/relative_assets.rb +28 -25
  60. data/lib/middleman/features/sitemap_tree.rb +34 -0
  61. data/lib/middleman/guard.rb +57 -23
  62. data/lib/middleman/renderers/erb.rb +29 -0
  63. data/lib/middleman/renderers/liquid.rb +3 -12
  64. data/lib/middleman/renderers/markdown.rb +16 -15
  65. data/lib/middleman/renderers/sass.rb +34 -38
  66. data/lib/middleman/vendor/hooks-0.2.0/CHANGES.textile +9 -0
  67. data/lib/middleman/vendor/hooks-0.2.0/Gemfile +3 -0
  68. data/lib/middleman/vendor/hooks-0.2.0/README.rdoc +107 -0
  69. data/lib/middleman/vendor/hooks-0.2.0/Rakefile +12 -0
  70. data/lib/middleman/vendor/hooks-0.2.0/hooks.gemspec +22 -0
  71. data/lib/middleman/vendor/hooks-0.2.0/lib/hooks.rb +109 -0
  72. data/lib/middleman/vendor/hooks-0.2.0/lib/hooks/inheritable_attribute.rb +33 -0
  73. data/lib/middleman/vendor/hooks-0.2.0/test/hooks_test.rb +141 -0
  74. data/lib/middleman/vendor/hooks-0.2.0/test/inheritable_attribute_test.rb +55 -0
  75. data/lib/middleman/vendor/hooks-0.2.0/test/test_helper.rb +10 -0
  76. data/lib/middleman/vendor/padrino-core-0.10.5/.document +5 -0
  77. data/lib/middleman/vendor/padrino-core-0.10.5/.gitignore +22 -0
  78. data/lib/middleman/vendor/padrino-core-0.10.5/.yardopts +1 -0
  79. data/lib/middleman/vendor/padrino-core-0.10.5/LICENSE.txt +20 -0
  80. data/lib/middleman/vendor/padrino-core-0.10.5/README.rdoc +294 -0
  81. data/lib/middleman/vendor/padrino-core-0.10.5/Rakefile +5 -0
  82. data/lib/middleman/vendor/padrino-core-0.10.5/bin/padrino +9 -0
  83. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core.rb +167 -0
  84. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/application.rb +270 -0
  85. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/application/rendering.rb +292 -0
  86. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/application/routing.rb +934 -0
  87. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/application/showexceptions.rb +20 -0
  88. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/caller.rb +53 -0
  89. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/cli/adapter.rb +24 -0
  90. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/cli/base.rb +151 -0
  91. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/cli/console.rb +20 -0
  92. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/cli/rake.rb +24 -0
  93. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/cli/rake_tasks.rb +59 -0
  94. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/command.rb +38 -0
  95. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/images/404.png +0 -0
  96. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/images/500.png +0 -0
  97. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/loader.rb +210 -0
  98. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/cs.yml +34 -0
  99. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/da.yml +34 -0
  100. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/de.yml +34 -0
  101. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/en.yml +34 -0
  102. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/es.yml +34 -0
  103. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/fr.yml +34 -0
  104. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/hu.yml +34 -0
  105. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/it.yml +40 -0
  106. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/ja.yml +34 -0
  107. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/lv.yml +34 -0
  108. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/nl.yml +34 -0
  109. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/no.yml +35 -0
  110. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/pl.yml +34 -0
  111. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/pt_br.yml +40 -0
  112. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/ru.yml +35 -0
  113. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/tr.yml +34 -0
  114. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/uk.yml +34 -0
  115. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/zh_cn.yml +34 -0
  116. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/zh_tw.yml +34 -0
  117. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/logger.rb +345 -0
  118. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/mounter.rb +224 -0
  119. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/reloader.rb +254 -0
  120. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/router.rb +98 -0
  121. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/server.rb +79 -0
  122. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/support_lite.rb +199 -0
  123. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/tasks.rb +21 -0
  124. data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/version.rb +20 -0
  125. data/lib/middleman/vendor/padrino-core-0.10.5/padrino-core.gemspec +38 -0
  126. data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/apps/.components +6 -0
  127. data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/apps/.gitignore +7 -0
  128. data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/apps/complex.rb +32 -0
  129. data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/apps/simple.rb +33 -0
  130. data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/dependencies/a.rb +9 -0
  131. data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/dependencies/b.rb +4 -0
  132. data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/dependencies/c.rb +1 -0
  133. data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/dependencies/circular/e.rb +13 -0
  134. data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/dependencies/circular/f.rb +2 -0
  135. data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/dependencies/circular/g.rb +2 -0
  136. data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/dependencies/d.rb +4 -0
  137. data/lib/middleman/vendor/padrino-core-0.10.5/test/helper.rb +81 -0
  138. data/lib/middleman/vendor/padrino-core-0.10.5/test/mini_shoulda.rb +45 -0
  139. data/lib/middleman/vendor/padrino-core-0.10.5/test/test_application.rb +108 -0
  140. data/lib/middleman/vendor/padrino-core-0.10.5/test/test_core.rb +79 -0
  141. data/lib/middleman/vendor/padrino-core-0.10.5/test/test_dependencies.rb +44 -0
  142. data/lib/middleman/vendor/padrino-core-0.10.5/test/test_filters.rb +278 -0
  143. data/lib/middleman/vendor/padrino-core-0.10.5/test/test_locale.rb +21 -0
  144. data/lib/middleman/vendor/padrino-core-0.10.5/test/test_logger.rb +100 -0
  145. data/lib/middleman/vendor/padrino-core-0.10.5/test/test_mounter.rb +177 -0
  146. data/lib/middleman/vendor/padrino-core-0.10.5/test/test_reloader_complex.rb +75 -0
  147. data/lib/middleman/vendor/padrino-core-0.10.5/test/test_reloader_simple.rb +98 -0
  148. data/lib/middleman/vendor/padrino-core-0.10.5/test/test_rendering.rb +461 -0
  149. data/lib/middleman/vendor/padrino-core-0.10.5/test/test_restful_routing.rb +33 -0
  150. data/lib/middleman/vendor/padrino-core-0.10.5/test/test_router.rb +146 -0
  151. data/lib/middleman/vendor/padrino-core-0.10.5/test/test_routing.rb +1673 -0
  152. data/lib/middleman/vendor/padrino-helpers-0.10.5/.document +5 -0
  153. data/lib/middleman/vendor/padrino-helpers-0.10.5/.gitignore +21 -0
  154. data/lib/middleman/vendor/padrino-helpers-0.10.5/.yardopts +1 -0
  155. data/lib/middleman/vendor/padrino-helpers-0.10.5/LICENSE.txt +20 -0
  156. data/lib/middleman/vendor/padrino-helpers-0.10.5/README.rdoc +239 -0
  157. data/lib/middleman/vendor/padrino-helpers-0.10.5/Rakefile +5 -0
  158. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers.rb +58 -0
  159. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/asset_tag_helpers.rb +420 -0
  160. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/form_builder/abstract_form_builder.rb +220 -0
  161. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/form_builder/standard_form_builder.rb +43 -0
  162. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/form_helpers.rb +602 -0
  163. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/format_helpers.rb +381 -0
  164. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/cs.yml +103 -0
  165. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/da.yml +91 -0
  166. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/de.yml +81 -0
  167. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/en.yml +103 -0
  168. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/es.yml +103 -0
  169. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/fr.yml +80 -0
  170. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/hu.yml +103 -0
  171. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/it.yml +89 -0
  172. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/ja.yml +103 -0
  173. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/lv.yml +103 -0
  174. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/nl.yml +82 -0
  175. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/no.yml +91 -0
  176. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/pl.yml +95 -0
  177. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/pt_br.yml +103 -0
  178. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/ru.yml +103 -0
  179. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/tr.yml +103 -0
  180. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/uk.yml +103 -0
  181. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/zh_cn.yml +104 -0
  182. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/zh_tw.yml +103 -0
  183. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/number_helpers.rb +288 -0
  184. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/output_helpers.rb +175 -0
  185. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/output_helpers/abstract_handler.rb +98 -0
  186. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/output_helpers/erb_handler.rb +79 -0
  187. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/output_helpers/haml_handler.rb +63 -0
  188. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/output_helpers/slim_handler.rb +81 -0
  189. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/render_helpers.rb +60 -0
  190. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/tag_helpers.rb +103 -0
  191. data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/translation_helpers.rb +38 -0
  192. data/lib/middleman/vendor/padrino-helpers-0.10.5/padrino-helpers.gemspec +27 -0
  193. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/app.rb +73 -0
  194. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/capture_concat.erb +14 -0
  195. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/capture_concat.haml +12 -0
  196. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/capture_concat.slim +13 -0
  197. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_for.erb +14 -0
  198. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_for.haml +12 -0
  199. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_for.slim +12 -0
  200. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_tag.erb +11 -0
  201. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_tag.haml +9 -0
  202. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_tag.slim +9 -0
  203. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/current_engine.erb +5 -0
  204. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/current_engine.haml +5 -0
  205. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/current_engine.slim +5 -0
  206. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/fields_for.erb +20 -0
  207. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/fields_for.haml +15 -0
  208. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/fields_for.slim +15 -0
  209. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_for.erb +56 -0
  210. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_for.haml +47 -0
  211. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_for.slim +47 -0
  212. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_tag.erb +56 -0
  213. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_tag.haml +45 -0
  214. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_tag.slim +45 -0
  215. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/link_to.erb +5 -0
  216. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/link_to.haml +4 -0
  217. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/link_to.slim +4 -0
  218. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/mail_to.erb +3 -0
  219. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/mail_to.haml +3 -0
  220. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/mail_to.slim +3 -0
  221. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/meta_tag.erb +3 -0
  222. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/meta_tag.haml +3 -0
  223. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/meta_tag.slim +3 -0
  224. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/partials/_erb.erb +1 -0
  225. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/partials/_haml.haml +1 -0
  226. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/partials/_slim.slim +1 -0
  227. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/simple_partial.erb +1 -0
  228. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/simple_partial.haml +1 -0
  229. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/simple_partial.slim +1 -0
  230. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/app.rb +50 -0
  231. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/current_engine.haml +5 -0
  232. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/current_engines/_erb.erb +1 -0
  233. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/current_engines/_haml.haml +1 -0
  234. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/current_engines/_slim.slim +1 -0
  235. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/erb/test.erb +1 -0
  236. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/explicit_engine.haml +5 -0
  237. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/haml/test.haml +1 -0
  238. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/template/_user.haml +7 -0
  239. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/template/haml_template.haml +1 -0
  240. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/template/some_template.haml +2 -0
  241. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/helper.rb +66 -0
  242. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/test_asset_tag_helpers.rb +320 -0
  243. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/test_form_builder.rb +996 -0
  244. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/test_form_helpers.rb +645 -0
  245. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/test_format_helpers.rb +227 -0
  246. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/test_locale.rb +20 -0
  247. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/test_number_helpers.rb +136 -0
  248. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/test_output_helpers.rb +153 -0
  249. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/test_render_helpers.rb +76 -0
  250. data/lib/middleman/vendor/padrino-helpers-0.10.5/test/test_tag_helpers.rb +105 -0
  251. data/lib/middleman/version.rb +1 -1
  252. data/middleman-x86-mingw32.gemspec +16 -33
  253. data/middleman.gemspec +16 -31
  254. metadata +590 -349
  255. data/features/sinatra.feature +0 -6
  256. data/lib/middleman/core_extensions/rack_map.rb +0 -35
  257. data/lib/middleman/renderers/coffee_script.rb +0 -8
  258. data/lib/middleman/renderers/haml.rb +0 -31
  259. data/lib/middleman/renderers/slim.rb +0 -8
@@ -0,0 +1,40 @@
1
+ pt_br:
2
+ date:
3
+ formats:
4
+ # Use the strftime parameters for formats.
5
+ # When no format has been given, it uses default.
6
+ # You can provide other formats here if you like!
7
+ default: "%d-%m-%Y"
8
+ short: "%d %b"
9
+ long: "%d %B %Y"
10
+ only_day: "%e"
11
+
12
+ day_names: [Domingo, Segunda-feira, Terça-feira, Quarta-feira, Quinta-feira, Sexta-feira, Sábado]
13
+ abbr_day_names: [Dom, Seg, Ter, Qua, Qui, Sex, Sab]
14
+ month_names: [~, Janeiro, Fevereiro, Março, Abril, Maio, Junho, Julho, Agosto, Setembro, Outubro, Novembro, Dezembro]
15
+ abbr_month_names: [~, Jan, Fev, Mar, Abr, Maio, Jun, Jul, Ago, Set, Out, Nov, Dez]
16
+ order:
17
+ - day
18
+ - month
19
+ - year
20
+
21
+ time:
22
+ formats:
23
+ default: "%a %d %b %Y, %H:%M:%S %z"
24
+ time: "%H:%M"
25
+ short: "%d %b %H:%M"
26
+ long: "%d %B %Y %H:%M"
27
+ only_second: "%S"
28
+
29
+ datetime:
30
+ formats:
31
+ default: "%d-%m-%YT%H:%M:%S%Z"
32
+
33
+ am: 'am'
34
+ pm: 'pm'
35
+
36
+ # Used in array.to_sentence.
37
+ support:
38
+ array:
39
+ sentence_connector: "e"
40
+ skip_last_comma: false
@@ -0,0 +1,35 @@
1
+ ru:
2
+ date:
3
+ formats:
4
+ # Use the strftime parameters for formats.
5
+ # When no format has been given, it uses default.
6
+ # You can provide other formats here if you like!
7
+ default: "%d.%m.%Y"
8
+ short: "%d %b"
9
+ long: "%e %B, %Y"
10
+ only_day: "%e"
11
+
12
+ day_names: [Воскресенье, Понедельник, Вторник, Среда, Четверг, Пятница, Суббота]
13
+ abbr_day_names: [Вс, Пн, Вт, Ср, Чт, Пт, Сб]
14
+ month_names: [~, Январь, Февраль, Март, Апрель, Май, Июнь, Июль, Август, Сентябрь, Октябрь, Ноябрь, Декабрь]
15
+ abbr_month_names: [~, Янв, Феб, Мар, Апр, Май, Июн, Июл, Авг, Сен, Окт, Ноя, Дек]
16
+ order:
17
+ - year
18
+ - month
19
+ - day
20
+
21
+ time:
22
+ formats:
23
+ default: "%a, %d %b %Y %H:%M:%S %z"
24
+ short: "%d %b %H:%M"
25
+ long: "%e %B, %Y %H:%M"
26
+ am: "д.п."
27
+ pm: "п.п."
28
+
29
+ # Used in array.to_sentence.
30
+ support:
31
+ array:
32
+ words_connector: ", "
33
+ two_words_connector: " и "
34
+ last_word_connector: " и "
35
+
@@ -0,0 +1,34 @@
1
+ tr:
2
+ date:
3
+ formats:
4
+ # Use the strftime parameters for formats.
5
+ # When no format has been given, it uses default.
6
+ # You can provide other formats here if you like!
7
+ default: "%d/%m/%Y"
8
+ short: "%d %b"
9
+ long: "%d %B %Y"
10
+ only_day: "%e"
11
+
12
+ day_names: [Pazar, Pazartesi, Salı, Çarşamba, Perşembe, Cuma, Cumartesi]
13
+ abbr_day_names: [Paz, Pts, Sal, Çar, Per, Cum, Cts]
14
+ month_names: [~, Ocak, Şubat, Mart, Nisan, Mayıs, Haziran, Temmuz, Ağustos, Eylül, Ekim, Kasım, Aralık]
15
+ abbr_month_names: [~, Oca, Şub, Mar, Nis, May, Haz, Tem, Ağu, Eyl, Eki, Kas, Ara]
16
+ order:
17
+ - day
18
+ - month
19
+ - year
20
+
21
+ time:
22
+ formats:
23
+ default: "%a, %b %b %Y %H:%M:%S %z"
24
+ short: "%b %d %H:%M"
25
+ long: "%d %B, %Y %H:%M"
26
+ am: "öö"
27
+ pm: "ös"
28
+
29
+ # Used in array.to_sentence.
30
+ support:
31
+ array:
32
+ words_connector: ", "
33
+ two_words_connector: " ve "
34
+ last_word_connector: " ve "
@@ -0,0 +1,34 @@
1
+ uk:
2
+ date:
3
+ formats:
4
+ # Use the strftime parameters for formats.
5
+ # When no format has been given, it uses default.
6
+ # You can provide other formats here if you like!
7
+ default: "%d.%m.%Y"
8
+ short: "%d %b"
9
+ long: "%e %B, %Y"
10
+ only_day: "%e"
11
+
12
+ day_names: [Неділя, Понеділок, Вівторок, Середа, Четвер, Пятница, Субота]
13
+ abbr_day_names: [Нд, Пн, Вт, Ср, Чт, Пт, Сб]
14
+ month_names: [~, Січено, Лютий, Березень, Квітень, Травень, Червень, Липень, Серпень, Вересень, Жовтень, Листопад, Грудень]
15
+ abbr_month_names: [~, Січ, Лют, Бер, Кві, Тра, Чер, Лип, Сер, Вер, Жов, Лис, Гру]
16
+ order:
17
+ - year
18
+ - month
19
+ - day
20
+
21
+ time:
22
+ formats:
23
+ default: "%a, %d %b %Y %H:%M:%S %z"
24
+ short: "%d %b %H:%M"
25
+ long: "%e %B, %Y %H:%M"
26
+ am: "д.п."
27
+ pm: "п.п"
28
+
29
+ # Used in array.to_sentence.
30
+ support:
31
+ array:
32
+ words_connector: ", "
33
+ two_words_connector: " і "
34
+ last_word_connector: ", і "
@@ -0,0 +1,34 @@
1
+ zh_cn:
2
+ date:
3
+ formats:
4
+ # Use the strftime parameters for formats.
5
+ # When no format has been given, it uses default.
6
+ # You can provide other formats here if you like!
7
+ default: "%Y-%m-%d"
8
+ short: "%b%d日"
9
+ long: "%Y年%b%d日"
10
+ only_day: "%e"
11
+
12
+ day_names: [星期日, 星期一, 星期二, 星期三, 星期四, 星期五, 星期六]
13
+ abbr_day_names: [日, 一, 二, 三, 四, 五, 六]
14
+ month_names: [~, 一月, 二月, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月]
15
+ abbr_month_names: [~, 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月]
16
+ order:
17
+ - year
18
+ - month
19
+ - day
20
+
21
+ time:
22
+ formats:
23
+ default: "%Y年%b%d日 %A %H:%M:%S %Z"
24
+ short: "%b%d日 %H:%M"
25
+ long: "%Y年%b%d日 %H:%M"
26
+ am: "上午"
27
+ pm: "下午"
28
+
29
+ # Used in array.to_sentence.
30
+ support:
31
+ array:
32
+ words_connector: ", "
33
+ two_words_connector: " 和 "
34
+ last_word_connector: ", 和 "
@@ -0,0 +1,34 @@
1
+ zh_tw:
2
+ date:
3
+ formats:
4
+ # Use the strftime parameters for formats.
5
+ # When no format has been given, it uses default.
6
+ # You can provide other formats here if you like!
7
+ default: "%Y-%m-%d"
8
+ short: "%b%d日"
9
+ long: "%Y年%b%d日"
10
+ only_day: "%e"
11
+
12
+ day_names: [星期日, 星期一, 星期二, 星期三, 星期四, 星期五, 星期六]
13
+ abbr_day_names: [日, 一, 二, 三, 四, 五, 六]
14
+ month_names: [~, 一月, 二月, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月]
15
+ abbr_month_names: [~, 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月]
16
+ order:
17
+ - year
18
+ - month
19
+ - day
20
+
21
+ time:
22
+ formats:
23
+ default: "%Y年%b%d日 %A %H:%M:%S %Z"
24
+ short: "%b%d日 %H:%M"
25
+ long: "%Y年%b%d日 %H:%M"
26
+ am: "上午"
27
+ pm: "下午"
28
+
29
+ # Used in array.to_sentence.
30
+ support:
31
+ array:
32
+ words_connector: ", "
33
+ two_words_connector: " 和 "
34
+ last_word_connector: ", 和 "
@@ -0,0 +1,345 @@
1
+ # Defines the log level for a Padrino project.
2
+ PADRINO_LOG_LEVEL = ENV['PADRINO_LOG_LEVEL'] unless defined?(PADRINO_LOG_LEVEL)
3
+ # Defines the logger used for a Padrino project.
4
+ PADRINO_LOGGER = ENV['PADRINO_LOGGER'] unless defined?(PADRINO_LOGGER)
5
+
6
+ module Padrino
7
+
8
+ ##
9
+ # @return [Padrino::Logger]
10
+ #
11
+ # @example
12
+ # logger.debug "foo"
13
+ # logger.warn "bar"
14
+ #
15
+ def self.logger
16
+ Padrino::Logger.setup! if Thread.current[:padrino_logger].nil?
17
+ Thread.current[:padrino_logger]
18
+ end
19
+
20
+ ##
21
+ # Set the padrino logger
22
+ #
23
+ # @param [Object] value
24
+ # an object that respond to <<, write, puts, debug, warn etc..
25
+ #
26
+ # @return [Object]
27
+ # the given value
28
+ #
29
+ # @example using ruby default logger
30
+ # require 'logger'
31
+ # Padrino.logger = Logger.new(STDOUT)
32
+ #
33
+ # @example using ActiveSupport
34
+ # require 'active_support/buffered_logger'
35
+ # Padrino.logger = Buffered.new(STDOUT)
36
+ #
37
+ def self.logger=(value)
38
+ Thread.current[:padrino_logger] = value
39
+ end
40
+
41
+ ##
42
+ # Extensions to the built in Ruby logger.
43
+ #
44
+ class Logger
45
+
46
+ attr_accessor :level
47
+ attr_accessor :auto_flush
48
+ attr_reader :buffer
49
+ attr_reader :log
50
+ attr_reader :init_args
51
+ attr_accessor :log_static
52
+
53
+ ##
54
+ # Ruby (standard) logger levels:
55
+ #
56
+ # :fatal:: An unhandleable error that results in a program crash
57
+ # :error:: A handleable error condition
58
+ # :warn:: A warning
59
+ # :info:: generic (useful) information about system operation
60
+ # :debug:: low-level information for developers
61
+ #
62
+ Levels = {
63
+ :fatal => 7,
64
+ :error => 6,
65
+ :warn => 4,
66
+ :info => 3,
67
+ :debug => 0,
68
+ :devel => -1,
69
+ } unless const_defined?(:Levels)
70
+
71
+ @@mutex = {}
72
+
73
+ ##
74
+ # Configuration for a given environment, possible options are:
75
+ #
76
+ # :log_level:: Once of [:fatal, :error, :warn, :info, :debug]
77
+ # :stream:: Once of [:to_file, :null, :stdout, :stderr] our your custom stream
78
+ # :log_level::
79
+ # The log level from, e.g. :fatal or :info. Defaults to :warn in the
80
+ # production environment and :debug otherwise.
81
+ # :auto_flush::
82
+ # Whether the log should automatically flush after new messages are
83
+ # added. Defaults to true.
84
+ # :format_datetime:: Format of datetime. Defaults to: "%d/%b/%Y %H:%M:%S"
85
+ # :format_message:: Format of message. Defaults to: ""%s - - [%s] \"%s\"""
86
+ # :log_static:: Whether or not to show log messages for static files. Defaults to: false
87
+ #
88
+ # @example
89
+ # Padrino::Logger::Config[:development] = { :log_level => :debug, :stream => :to_file }
90
+ # # or you can edit our defaults
91
+ # Padrino::Logger::Config[:development][:log_level] = :error
92
+ # # or you can use your stream
93
+ # Padrino::Logger::Config[:development][:stream] = StringIO.new
94
+ #
95
+ # Defaults are:
96
+ #
97
+ # :production => { :log_level => :warn, :stream => :to_file }
98
+ # :development => { :log_level => :debug, :stream => :stdout }
99
+ # :test => { :log_level => :fatal, :stream => :null }
100
+ #
101
+ # In some cases, configuring the loggers before loading the framework is necessary.
102
+ # You can do so by setting PADRINO_LOGGER:
103
+ #
104
+ # PADRINO_LOGGER = { :staging => { :log_level => :debug, :stream => :to_file }}
105
+ #
106
+ Config = {
107
+ :production => { :log_level => :warn, :stream => :to_file },
108
+ :development => { :log_level => :debug, :stream => :stdout, :format_datetime => ' ' },
109
+ :test => { :log_level => :debug, :stream => :null }
110
+ }
111
+ Config.merge!(PADRINO_LOGGER) if PADRINO_LOGGER
112
+
113
+ # Colors for levels
114
+ ColoredLevels = {
115
+ :fatal => [:bold, :red],
116
+ :error => [:red],
117
+ :warn => [:yellow],
118
+ :info => [:green],
119
+ :debug => [:cyan],
120
+ :devel => [:magenta]
121
+ } unless defined?(ColoredLevels)
122
+
123
+ ##
124
+ # Setup a new logger
125
+ #
126
+ # @return [Padrino::Logger]
127
+ # A {Padrino::Logger} instance
128
+ #
129
+ def self.setup!
130
+ config_level = (PADRINO_LOG_LEVEL || Padrino.env || :test).to_sym # need this for PADRINO_LOG_LEVEL
131
+ config = Config[config_level]
132
+
133
+ unless config
134
+ warn("No logging configuration for :#{config_level} found, falling back to :production")
135
+ config = Config[:production]
136
+ end
137
+
138
+ stream = case config[:stream]
139
+ when :to_file
140
+ FileUtils.mkdir_p(Padrino.root("log")) unless File.exists?(Padrino.root("log"))
141
+ File.new(Padrino.root("log", "#{Padrino.env}.log"), "a+")
142
+ when :null then StringIO.new
143
+ when :stdout then $stdout
144
+ when :stderr then $stderr
145
+ else config[:stream] # return itself, probabilly is a custom stream.
146
+ end
147
+ Thread.current[:padrino_logger] = Padrino::Logger.new(config.merge(:stream => stream))
148
+ end
149
+
150
+ ##
151
+ # To initialize the logger you create a new object, proxies to set_log.
152
+ #
153
+ # @param [Hash] options
154
+ #
155
+ # @option options [Symbol] :stream ($stdout)
156
+ # Either an IO object or a name of a logfile. Defaults to $stdout
157
+ #
158
+ # @option options [Symbol] :log_level (:production in the production environment and :debug otherwise)
159
+ # The log level from, e.g. :fatal or :info.
160
+ #
161
+ # @option options [Symbol] :auto_flush (true)
162
+ # Whether the log should automatically flush after new messages are
163
+ # added. Defaults to true.
164
+ #
165
+ # @option options [Symbol] :format_datetime (" [%d/%b/%Y %H:%M:%S] ")
166
+ # Format of datetime
167
+ #
168
+ # @option options [Symbol] :format_message ("%s -%s%s")
169
+ # Format of message
170
+ #
171
+ # @option options [Symbol] :log_static (false)
172
+ # Whether or not to show log messages for static files.
173
+ #
174
+ def initialize(options={})
175
+ @buffer = []
176
+ @auto_flush = options.has_key?(:auto_flush) ? options[:auto_flush] : true
177
+ @level = options[:log_level] ? Levels[options[:log_level]] : Levels[:debug]
178
+ @log = options[:stream] || $stdout
179
+ @log.sync = true
180
+ @mutex = @@mutex[@log] ||= Mutex.new
181
+ @format_datetime = options[:format_datetime] || "%d/%b/%Y %H:%M:%S"
182
+ @format_message = options[:format_message] || "%s -%s%s"
183
+ @log_static = options.has_key?(:log_static) ? options[:log_static] : false
184
+ end
185
+
186
+ ##
187
+ # Colorize our level
188
+ #
189
+ # @param [String, Symbol] level
190
+ #
191
+ # @see Padrino::Logger::ColoredLevels
192
+ #
193
+ def colored_level(level)
194
+ style = ColoredLevels[level].map { |c| "\e[%dm" % String.colors[c] } * ''
195
+ [style, level.to_s.upcase.rjust(7), "\e[0m"] * ''
196
+ end
197
+
198
+ ##
199
+ # Flush the entire buffer to the log object.
200
+ #
201
+ def flush
202
+ return unless @buffer.size > 0
203
+ @mutex.synchronize do
204
+ @log.write(@buffer.slice!(0..-1).join(''))
205
+ end
206
+ end
207
+
208
+ ##
209
+ # Close and remove the current log object.
210
+ #
211
+ # @return [NilClass]
212
+ #
213
+ def close
214
+ flush
215
+ @log.close if @log.respond_to?(:close) && !@log.tty?
216
+ @log = nil
217
+ end
218
+
219
+ ##
220
+ # Appends a message to the log. The methods yield to an optional block and
221
+ # the output of this block will be appended to the message.
222
+ #
223
+ # @param [String] message
224
+ # The message that you want write to your stream
225
+ #
226
+ # @param [String] level
227
+ # The level one of :debug, :warn etc...
228
+ #
229
+ #
230
+ def push(message = nil, level = nil)
231
+ write @format_message % [colored_level(level), Time.now.strftime(@format_datetime).yellow, message.to_s.strip]
232
+ end
233
+
234
+ ##
235
+ # Append a to development logger a given action with time
236
+ #
237
+ # @param [string] action
238
+ # The action
239
+ #
240
+ # @param [float] time
241
+ # Time duration for the given action
242
+ #
243
+ # @param [message] string
244
+ # The message that you want to log
245
+ #
246
+ # @example
247
+ # logger.bench 'GET', started_at, '/blog/categories'
248
+ # # => DEBUG - GET (0.056ms) - /blog/categories
249
+ #
250
+ def bench(action, began_at, message, level=:debug, color=:yellow)
251
+ @_pad ||= 8
252
+ @_pad = action.to_s.size if action.to_s.size > @_pad
253
+ duration = Time.now - began_at
254
+ color = :red if duration > 1
255
+ push "%s (" % action.to_s.upcase.rjust(@_pad).send(color) + "%0.4fms".bold.send(color) % duration + ") %s" % message.to_s, level
256
+ end
257
+
258
+ ##
259
+ # Directly append message to the log.
260
+ #
261
+ # @param [String] message
262
+ # The message
263
+ #
264
+ def <<(message = nil)
265
+ message << "\n" unless message[-1] == ?\n
266
+ @buffer << message
267
+ flush if @auto_flush
268
+ message
269
+ end
270
+ alias :write :<<
271
+
272
+ ##
273
+ # Generate the logging methods for {Padrino.logger} for each log level.
274
+ #
275
+ Levels.each_pair do |name, number|
276
+ define_method(name) do |*args|
277
+ return if number < level
278
+ if args.size > 1
279
+ bench(*args)
280
+ else
281
+ push(args * '', name)
282
+ end
283
+ end
284
+
285
+ define_method(:"#{name}?") do
286
+ number >= level
287
+ end
288
+ end
289
+
290
+ ##
291
+ # Padrino::Loggger::Rack forwards every request to an +app+ given, and
292
+ # logs a line in the Apache common log format to the +logger+, or
293
+ # rack.errors by default.
294
+ #
295
+ class Rack
296
+
297
+ def initialize(app, uri_root) # @private
298
+ @app = app
299
+ @uri_root = uri_root.sub(/\/$/,"")
300
+ end
301
+
302
+ def call(env) # @private
303
+ env['rack.logger'] = Padrino.logger
304
+ env['rack.errors'] = Padrino.logger.log
305
+ began_at = Time.now
306
+ status, header, body = @app.call(env)
307
+ log(env, status, header, began_at)
308
+ [status, header, body]
309
+ end
310
+
311
+ private
312
+ def log(env, status, header, began_at)
313
+ return if env['sinatra.static_file'] and !logger.log_static
314
+ logger.bench(
315
+ env["REQUEST_METHOD"],
316
+ began_at,
317
+ [
318
+ @uri_root.to_s,
319
+ env["PATH_INFO"],
320
+ env["QUERY_STRING"].empty? ? "" : "?" + env["QUERY_STRING"],
321
+ ' - ',
322
+ status.to_s[0..3].bold,
323
+ ' ',
324
+ code_to_name(status)
325
+ ] * '',
326
+ :debug,
327
+ :magenta
328
+ )
329
+ end
330
+
331
+ def code_to_name(status)
332
+ ::Rack::Utils::HTTP_STATUS_CODES[status.to_i] || ''
333
+ end
334
+ end # Rack
335
+ end # Logger
336
+ end # Padrino
337
+
338
+ module Kernel # @private
339
+ ##
340
+ # Define a logger available every where in our app
341
+ #
342
+ def logger
343
+ Padrino.logger
344
+ end
345
+ end # Kernel